Skip to content
Snippets Groups Projects
Commit 7e43513c authored by Oleksii Korshenko's avatar Oleksii Korshenko Committed by GitHub
Browse files

MAGETWO-86349: #12446: Add GetUtilityPageIdentifiers for Manage Custom Pages...

MAGETWO-86349: #12446: Add GetUtilityPageIdentifiers for Manage Custom Pages to be excluded … #12649
parents 87706340 e6a48feb
Branches
Tags
No related merge requests found
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Cms\Api;
/**
* Utility Cms Pages
*
* @api
*/
interface GetUtilityPageIdentifiersInterface
{
/**
* Get List Page Identifiers
* @return array
*/
public function execute();
}
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Cms\Model;
use Magento\Cms\Api\GetUtilityPageIdentifiersInterface;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Store\Model\ScopeInterface;
/**
* Utility Cms Pages
*/
class GetUtilityPageIdentifiers implements GetUtilityPageIdentifiersInterface
{
/**
* @var ScopeConfigInterface
*/
private $scopeConfig;
/**
* UtilityCmsPage constructor.
* @param ScopeConfigInterface $scopeConfig
*/
public function __construct(
ScopeConfigInterface $scopeConfig
) {
$this->scopeConfig = $scopeConfig;
}
/**
* Get List Page Identifiers
* @return array
*/
public function execute()
{
$homePageIdentifier = $this->scopeConfig->getValue(
'web/default/cms_home_page',
ScopeInterface::SCOPE_STORE
);
$noRouteIdentifier = $this->scopeConfig->getValue(
'web/default/cms_no_route',
ScopeInterface::SCOPE_STORE
);
$noCookieIdentifier = $this->scopeConfig->getValue(
'web/default/cms_no_cookies',
ScopeInterface::SCOPE_STORE
);
return [$homePageIdentifier, $noRouteIdentifier, $noCookieIdentifier];
}
}
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
<preference for="Magento\Cms\Api\Data\BlockInterface" type="Magento\Cms\Model\Block" /> <preference for="Magento\Cms\Api\Data\BlockInterface" type="Magento\Cms\Model\Block" />
<preference for="Magento\Cms\Api\BlockRepositoryInterface" type="Magento\Cms\Model\BlockRepository" /> <preference for="Magento\Cms\Api\BlockRepositoryInterface" type="Magento\Cms\Model\BlockRepository" />
<preference for="Magento\Cms\Api\PageRepositoryInterface" type="Magento\Cms\Model\PageRepository" /> <preference for="Magento\Cms\Api\PageRepositoryInterface" type="Magento\Cms\Model\PageRepository" />
<preference for="Magento\Cms\Api\GetUtilityPageIdentifiersInterface" type="Magento\Cms\Model\GetUtilityPageIdentifiers" />
<type name="Magento\Cms\Model\Wysiwyg\Config"> <type name="Magento\Cms\Model\Wysiwyg\Config">
<arguments> <arguments>
<argument name="windowSize" xsi:type="array"> <argument name="windowSize" xsi:type="array">
......
...@@ -6,12 +6,15 @@ ...@@ -6,12 +6,15 @@
namespace Magento\Sitemap\Model\ResourceModel\Cms; namespace Magento\Sitemap\Model\ResourceModel\Cms;
use Magento\Cms\Api\Data\PageInterface; use Magento\Cms\Api\Data\PageInterface;
use Magento\Framework\EntityManager\MetadataPool; use Magento\Cms\Api\GetUtilityPageIdentifiersInterface;
use Magento\Framework\Model\ResourceModel\Db\Context;
use Magento\Framework\Model\AbstractModel;
use Magento\Cms\Model\Page as CmsPage; use Magento\Cms\Model\Page as CmsPage;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\DB\Select; use Magento\Framework\DB\Select;
use Magento\Framework\EntityManager\EntityManager; use Magento\Framework\EntityManager\EntityManager;
use Magento\Framework\EntityManager\MetadataPool;
use Magento\Framework\Model\AbstractModel;
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
use Magento\Framework\Model\ResourceModel\Db\Context;
/** /**
* Sitemap cms page collection model * Sitemap cms page collection model
...@@ -19,7 +22,7 @@ use Magento\Framework\EntityManager\EntityManager; ...@@ -19,7 +22,7 @@ use Magento\Framework\EntityManager\EntityManager;
* @api * @api
* @since 100.0.2 * @since 100.0.2
*/ */
class Page extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb class Page extends AbstractDb
{ {
/** /**
* @var MetadataPool * @var MetadataPool
...@@ -34,19 +37,29 @@ class Page extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb ...@@ -34,19 +37,29 @@ class Page extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
protected $entityManager; protected $entityManager;
/** /**
* @param Context $context * @var GetUtilityPageIdentifiersInterface
* @param MetadataPool $metadataPool * @since 100.2.0
* @param EntityManager $entityManager */
* @param string $connectionName private $getUtilityPageIdentifiers;
/**
* @param Context $context
* @param MetadataPool $metadataPool
* @param EntityManager $entityManager
* @param string $connectionName
* @param GetUtilityPageIdentifiersInterface $getUtilityPageIdentifiers
*/ */
public function __construct( public function __construct(
Context $context, Context $context,
MetadataPool $metadataPool, MetadataPool $metadataPool,
EntityManager $entityManager, EntityManager $entityManager,
$connectionName = null $connectionName = null,
GetUtilityPageIdentifiersInterface $getUtilityPageIdentifiers = null
) { ) {
$this->metadataPool = $metadataPool; $this->metadataPool = $metadataPool;
$this->entityManager = $entityManager; $this->entityManager = $entityManager;
$this->getUtilityPageIdentifiers = $getUtilityPageIdentifiers ?:
ObjectManager::getInstance()->get(GetUtilityPageIdentifiersInterface::class);
parent::__construct($context, $connectionName); parent::__construct($context, $connectionName);
} }
...@@ -90,8 +103,8 @@ class Page extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb ...@@ -90,8 +103,8 @@ class Page extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
)->where( )->where(
'main_table.is_active = 1' 'main_table.is_active = 1'
)->where( )->where(
'main_table.identifier != ?', 'main_table.identifier NOT IN (?)',
\Magento\Cms\Model\Page::NOROUTE_PAGE_ID $this->getUtilityPageIdentifiers->execute()
)->where( )->where(
'store_table.store_id IN(?)', 'store_table.store_id IN(?)',
[0, $storeId] [0, $storeId]
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
<module name="Magento_Sitemap" setup_version="2.0.0"> <module name="Magento_Sitemap" setup_version="2.0.0">
<sequence> <sequence>
<module name="Magento_Robots"/> <module name="Magento_Robots"/>
<module name="Magento_Cms"/>
<module name="Magento_Catalog"/> <module name="Magento_Catalog"/>
</sequence> </sequence>
</module> </module>
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment