Example #1
0
 public function testSetThemeId()
 {
     \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\App\\State')->setAreaCode('frontend');
     $theme = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\DesignInterface')->setDefaultDesignTheme()->getDesignTheme();
     $this->_model->setThemeId($theme->getId());
     $this->assertEquals($theme->getId(), $this->_model->getThemeId());
 }
Example #2
0
 /**
  * Prepare and save layout updates data
  *
  * @param \Magento\Widget\Model\Widget\Instance $widgetInstance
  * @param array $pageGroupData
  * @return string[] of inserted layout updates ids
  */
 protected function _saveLayoutUpdates($widgetInstance, $pageGroupData)
 {
     $connection = $this->getConnection();
     $pageLayoutUpdateIds = [];
     $storeIds = $this->_prepareStoreIds($widgetInstance->getStoreIds());
     $layoutUpdateTable = $this->getTable('layout_update');
     $layoutUpdateLinkTable = $this->getTable('layout_link');
     foreach ($pageGroupData['layout_handle_updates'] as $handle) {
         $xml = $widgetInstance->generateLayoutUpdateXml($pageGroupData['block_reference'], $pageGroupData['template']);
         $insert = ['handle' => $handle, 'xml' => $xml];
         if (strlen($widgetInstance->getSortOrder())) {
             $insert['sort_order'] = $widgetInstance->getSortOrder();
         }
         $connection->insert($layoutUpdateTable, $insert);
         $layoutUpdateId = $connection->lastInsertId($layoutUpdateTable);
         $pageLayoutUpdateIds[] = $layoutUpdateId;
         $data = [];
         foreach ($storeIds as $storeId) {
             $data[] = ['store_id' => $storeId, 'theme_id' => $widgetInstance->getThemeId(), 'layout_update_id' => $layoutUpdateId];
         }
         $connection->insertMultiple($layoutUpdateLinkTable, $data);
     }
     return $pageLayoutUpdateIds;
 }