繁体   English   中英

我如何检测magento中是否有块

[英]How do I detect if a block is avaialble in magento

我正在编写一个模块,如果有的话,我想在其中包含另一个块,但是如果未安装包含该块的模块,则包括另一个模块。 像这样:

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

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

答案可以在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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM