2013-02-04 21 views
0

我正在编写一个模块,我希望在其中包含另一个块(如果可用)的模块,但如果未安装包含该块的模块,则包含另一个块。这样的事情:如何检测块是否在magento中可用

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

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

回答

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; 
} 
相关问题