如何检测块中是否有可用的magento

时间:2013-02-04 10:39:11

标签: php magento

我正在编写一个模块,我希望在其中包含另一个块(如果可用),但如果未安装包含该块的模块,则包含另一个块。像这样:

if(block_exists($blockname)$this->getLayout()->createBlock($blockname);
else $this->getLayout()->createBlock($otherblock);

那么,我如何检测是否安装了特定的块或模块?

1 个答案:

答案 0 :(得分:1)

答案可以在mage / core / model / layout.php中找到,其中_getBlockInstance检测块是否存在并且可以使用。对你来说,你的block_exists函数就是这样:

function block_exists($block){
    if(
        class_exists($block, false) || mageFindClassFile($block) ||
        ($block = Mage::getConfig()->getBlockClassName($block) &&
            (class_exists($block, false) || mageFindClassFile($block))
        )
    ) return true;
    return false;
}