Как получить макет области интерфейса на стороне администратора?


Я задал вопрос, но не получил ответа на на него. Теперь я понимаю, как получить все блоки на страницах, но я получаю только текущие блоки страниц. Например:

  $layout = Mage::app()->loadArea(Mage_Core_Model_App_Area::AREA_FRONTEND)->getLayout();
  /* then i get all blocks from that page*/

Как получить область интерфейса, когда я в бэкэнде?? Я знаю, что это должно быть просто, но когда я хочу получить AREA_FRONTEND, я получаю свою текущую страницу, но мне нужна область внешнего интерфейса.

Author: Community, 2013-11-04

1 answers

Старый вопрос, но вот он.

Сам этого не пробовал, но может помочь в правильном направлении. $selectedStoreId будет идентификатором темы sore, к которой вы хотите перейти. Вот как это делает предварительный просмотр в magento EE.

Mage::app()->getLocale()->emulate($selectedStoreId);
Mage::app()->setCurrentStore(Mage::app()->getStore($selectedStoreId));

Mage::getDesign()->setArea('frontend')
        ->setStore($selectedStoreId);

$designChange = Mage::getSingleton('core/design')
        ->loadChange($selectedStoreId);

if ($designChange->getData()) {
    Mage::getDesign()->setPackageName($designChange->getPackage())
            ->setTheme($designChange->getTheme());
}

И используйте Mage::app()->getLocale()->revert();, чтобы вернуться к теме администратора.

 5
Author: ProxiBlue, 2014-02-11 14:47:56