Как проверить, что блок CMS активен?

Интересно, как проверить, что конкретный блок CMS активен или нет.

До сих пор я нашел, что блок CMS Mage_Cms_Block_Block класс, который наследовался Mage_Cms_Block_Abstract класс

Волшебник:: журнал (get_class (Волшебник:: приложение ()-> getLayout ()-> createBlock ('cms/block')-> setBlockId ('promo_space')

Ни один из этих двух классов не имеет методы, которые проверили бы, активен ли блок или нет. Как я делаю это?

9
задан Arnaud 13 September 2017 в 07:43
поделиться

1 ответ

Получил сам

Я создал метод 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, чтобы прочитать мой новый помощник и метод.

Надеюсь, это будет полезно.

5
ответ дан 4 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: