Skip to content

Commit eee63de

Browse files
committed
Merge pull request #264 from magento-south/MAGETWO-41241
[South] CMS Staging. Adaptation
2 parents b37999c + 854c816 commit eee63de

File tree

26 files changed

+1355
-288
lines changed

26 files changed

+1355
-288
lines changed

app/code/Magento/Cms/Model/Block.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,19 @@
66
namespace Magento\Cms\Model;
77

88
use Magento\Cms\Api\Data\BlockInterface;
9+
use Magento\Cms\Model\ResourceModel\Block as ResourceCmsBlock;
910
use Magento\Framework\DataObject\IdentityInterface;
11+
use Magento\Framework\Model\AbstractModel;
1012

1113
/**
1214
* CMS block model
1315
*
14-
* @method \Magento\Cms\Model\ResourceModel\Block _getResource()
15-
* @method \Magento\Cms\Model\ResourceModel\Block getResource()
16+
* @method ResourceCmsBlock _getResource()
17+
* @method ResourceCmsBlock getResource()
18+
* @method Block setStoreId(array $storeId)
19+
* @method array getStoreId()
1620
*/
17-
class Block extends \Magento\Framework\Model\AbstractModel implements BlockInterface, IdentityInterface
21+
class Block extends AbstractModel implements BlockInterface, IdentityInterface
1822
{
1923
/**
2024
* CMS block cache tag
@@ -51,7 +55,7 @@ protected function _construct()
5155
/**
5256
* Prevent blocks recursion
5357
*
54-
* @return \Magento\Framework\Model\AbstractModel
58+
* @return AbstractModel
5559
* @throws \Magento\Framework\Exception\LocalizedException
5660
*/
5761
public function beforeSave()

app/code/Magento/Cms/Model/Page.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,19 @@
66
namespace Magento\Cms\Model;
77

88
use Magento\Cms\Api\Data\PageInterface;
9+
use Magento\Cms\Model\ResourceModel\Page as ResourceCmsPage;
910
use Magento\Framework\DataObject\IdentityInterface;
11+
use Magento\Framework\Model\AbstractModel;
1012

1113
/**
1214
* Cms Page Model
1315
*
14-
* @method \Magento\Cms\Model\ResourceModel\Page _getResource()
15-
* @method \Magento\Cms\Model\ResourceModel\Page getResource()
16+
* @method ResourceCmsPage _getResource()
17+
* @method ResourceCmsPage getResource()
18+
* @method Page setStoreId(array $storeId)
19+
* @method array getStoreId()
1620
*/
17-
class Page extends \Magento\Framework\Model\AbstractModel implements PageInterface, IdentityInterface
21+
class Page extends AbstractModel implements PageInterface, IdentityInterface
1822
{
1923
/**
2024
* No route page id

app/code/Magento/Cms/Model/ResourceModel/AbstractCollection.php

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,18 @@ abstract class AbstractCollection extends \Magento\Framework\Model\ResourceModel
1717
*/
1818
protected $storeManager;
1919

20+
/**
21+
* @var \Magento\Framework\Model\Entity\MetadataPool
22+
*/
23+
protected $metadataPool;
24+
2025
/**
2126
* @param \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory
2227
* @param \Psr\Log\LoggerInterface $logger
2328
* @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy
2429
* @param \Magento\Framework\Event\ManagerInterface $eventManager
2530
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
31+
* @param \Magento\Framework\Model\Entity\MetadataPool $metadataPool
2632
* @param \Magento\Framework\DB\Adapter\AdapterInterface|null $connection
2733
* @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb|null $resource
2834
*/
@@ -32,45 +38,47 @@ public function __construct(
3238
\Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy,
3339
\Magento\Framework\Event\ManagerInterface $eventManager,
3440
\Magento\Store\Model\StoreManagerInterface $storeManager,
41+
\Magento\Framework\Model\Entity\MetadataPool $metadataPool,
3542
\Magento\Framework\DB\Adapter\AdapterInterface $connection = null,
3643
\Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null
3744
) {
38-
parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource);
3945
$this->storeManager = $storeManager;
46+
$this->metadataPool = $metadataPool;
47+
parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource);
4048
}
4149

4250
/**
4351
* Perform operations after collection load
4452
*
4553
* @param string $tableName
46-
* @param string $columnName
54+
* @param string|null $linkField
4755
* @return void
4856
*/
49-
protected function performAfterLoad($tableName, $columnName)
57+
protected function performAfterLoad($tableName, $linkField)
5058
{
51-
$items = $this->getColumnValues($columnName);
52-
if (count($items)) {
59+
$linkedIds = $this->getColumnValues($linkField);
60+
if (count($linkedIds)) {
5361
$connection = $this->getConnection();
5462
$select = $connection->select()->from(['cms_entity_store' => $this->getTable($tableName)])
55-
->where('cms_entity_store.' . $columnName . ' IN (?)', $items);
63+
->where('cms_entity_store.' . $linkField . ' IN (?)', $linkedIds);
5664
$result = $connection->fetchPairs($select);
5765
if ($result) {
5866
foreach ($this as $item) {
59-
$entityId = $item->getData($columnName);
60-
if (!isset($result[$entityId])) {
67+
$linkedId = $item->getData($linkField);
68+
if (!isset($result[$linkedId])) {
6169
continue;
6270
}
63-
if ($result[$entityId] == 0) {
71+
if ($result[$linkedId] == 0) {
6472
$stores = $this->storeManager->getStores(false, true);
6573
$storeId = current($stores)->getId();
6674
$storeCode = key($stores);
6775
} else {
68-
$storeId = $result[$item->getData($columnName)];
76+
$storeId = $result[$linkedId];
6977
$storeCode = $this->storeManager->getStore($storeId)->getCode();
7078
}
7179
$item->setData('_first_store_id', $storeId);
7280
$item->setData('store_code', $storeCode);
73-
$item->setData('store_id', [$result[$entityId]]);
81+
$item->setData('store_id', [$result[$linkedId]]);
7482
}
7583
}
7684
}
@@ -129,18 +137,18 @@ protected function performAddStoreFilter($store, $withAdmin = true)
129137
* Join store relation table if there is store filter
130138
*
131139
* @param string $tableName
132-
* @param string $columnName
140+
* @param string|null $linkField
133141
* @return void
134142
*/
135-
protected function joinStoreRelationTable($tableName, $columnName)
143+
protected function joinStoreRelationTable($tableName, $linkField)
136144
{
137145
if ($this->getFilter('store')) {
138146
$this->getSelect()->join(
139147
['store_table' => $this->getTable($tableName)],
140-
'main_table.' . $columnName . ' = store_table.' . $columnName,
148+
'main_table.' . $linkField . ' = store_table.' . $linkField,
141149
[]
142150
)->group(
143-
'main_table.' . $columnName
151+
'main_table.' . $linkField
144152
);
145153
}
146154
parent::_renderFiltersBefore();

0 commit comments

Comments
 (0)