2013-02-04 48 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; 
} 
相關問題