Я використовую magento EE 1.13.1.0 із власною темою, яка встановлена в System-> Configuration-> Design-> Default.
Проблема з’являється, коли ми використовуємо Magento CMS Preview. Він відображається без спеціальних стилів тем, тому що за попереднім переглядом magento використовується base/default
тема.
Якщо я редагую вкладку «Дизайн» сторінки CMS і встановлю Custom Theme
атрибут для якоїсь власної теми, все буде працювати. Але не за замовчуванням.
Хтось мав цю проблему раніше? Можливо, я пропустив якусь конфігурацію?
У всякому разі, щоб виправити цю проблему, я створив спостерігач і додав його до cms_page_render
події, щоб перевірити, чи встановлений Custom Theme
атрибут сторінки CMS. Якщо ні, то використовуйте реальну тему за замовчуванням:
public function setDefaultThemeForCmsPreview(Varien_Event_Observer $oObserver)
{
$oRequest = $oObserver->getControllerAction()->getRequest();
if (
$oRequest->getControllerName() == 'cms_page_revision' &&
$oRequest->getActionName() == 'drop'
) {
$oCmsPage = $oObserver->getPage();
if ($oCmsPage->getCustomTheme()) {
list($sPackage, $sTheme) = explode('/', $oCmsPage->getCustomTheme());
} else {
$sPackage = Mage::getStoreConfig('design/package/name');
$sTheme = Mage::getStoreConfig('design/theme/default');
}
Mage::getSingleton('core/design_package')
->setPackageName($sPackage)
->setTheme($sTheme);
}
}