[英]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.