如何检查CMS块是否有效?

lat*_*ian 9 magento

我想知道如何检查特定的CMS块是否有效.

到目前为止,我发现CMS块是Mage_Cms_Block_Block继承自Mage_Cms_Block_Abstract类的类

法师::日志(get_class(法师::应用程序() - > getLayout() - > createBlock( 'CMS /块') - > setBlockId( 'promo_space')

这两个类都没有方法可以检查块是否有效.我该怎么做?

Fia*_*abs 18

Mage::getModel('cms/block')->load('static_block_identifier')->getIsActive()

将static_block_identifier替换为您分配给CMS静态块的标识符.


lat*_*ian 5

自己搞定了

我在Mage/Cms本地模块的帮助器"Block"中创建了一个方法isActive(Identifiere,Value).

这是该方法的外观

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;
    }

}
Run Code Online (Sandbox Code Playgroud)

参数$ attribute是table(cms-block)字段,例如'identifier'或'title',value可以是静态块或标识符本身的名称.两者都用于过滤您感兴趣的特定静态块

以下是我如何称呼帮助者

if(Mage::helper('cms/block')->isActive('identifier','promo_space')){
//do that
}
Run Code Online (Sandbox Code Playgroud)

我还更新了Cms块的config.xml文件来读取我的新助手和方法.

我希望它有用.