Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在magento中检测块是否可用_Php_Magento - Fatal编程技术网

Php 如何在magento中检测块是否可用

Php 如何在magento中检测块是否可用,php,magento,Php,Magento,我正在编写一个模块,其中我希望包含另一个块(如果可用),但如果未安装包含该块的模块,则包含另一个块。大概是这样的: if(block_exists($blockname)$this->getLayout()->createBlock($blockname); else $this->getLayout()->createBlock($otherblock); 那么,如何检测是否安装了特定的块或模块呢?答案可以在mage/core/model/layout.php中找到,

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

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