Интересно, как проверить, что конкретный блок CMS активен или нет.
До сих пор я нашел, что блок CMS Mage_Cms_Block_Block
класс, который наследовался Mage_Cms_Block_Abstract
класс
Волшебник:: журнал (get_class (Волшебник:: приложение ()-> getLayout ()-> createBlock ('cms/block')-> setBlockId ('promo_space')
Ни один из этих двух классов не имеет методы, которые проверили бы, активен ли блок или нет. Как я делаю это?
Получил сам
Я создал метод isActive (Identifiere, Value) в помощнике "Block" в локальном модуле Mage / Cms.
Так выглядит метод
public function isActive($attribute, $value){
$col = Mage::getModel('cms/block')->getCollection();
$col->addFieldToFilter($attribute, $value);
$item = $col->getFirstItem();
$id = $item->getData('is_active');
if($id == 1){
return true;
}else{
return false;
}
}
параметр $ attribute - это поле таблицы (cms-block), такое как 'идентификатор' или 'заголовок', а значением может быть имя статического блока или сам идентификатор. Оба используются для фильтрации конкретного статического блока, который вас интересует
Вот как я вызываю помощник
if(Mage::helper('cms/block')->isActive('identifier','promo_space')){
//do that
}
Я также обновил файл config.xml для блока Cms, чтобы прочитать мой новый помощник и метод.
Надеюсь, это будет полезно.