簡體   English   中英

如何基於自定義模塊狀態在magento中禁用自定義布局?

[英]How to disable custom layouts in magento based on a custom module state?

我在frontend\\default\\default\\layout\\mytemplate創建了一個名為“ myblock.phtml”的文件frontend\\default\\default\\layout\\mytemplate它只是顯示一個“ check”按鈕,該按鈕依次調用自定義模塊的控制器url。問題是,我想停止顯示該按鈕(即myblock.html模板)被禁用,因為如果不啟用該模塊就沒有意義。任何在模塊的config.xml中進行調整的方法?

所有模板都應經過一個塊,並且在塊中,您可以進行其他檢查,或者在從管理頁面禁用擴展時讓默認的magento功能禁用塊輸出

要擴展Anton的答案,請創建一個自定義塊類,該類執行以下操作:

class Mypackage_Myextension_Block_Checkbox extends Mage_Core_Block_Template {

    protected function _toHtml() {
        if(!$this->checkIfModuleIsEnabled()) {
            return "";
        }
        return parent::_toHtml();
    }
}

希望有幫助!

謝謝喬

//這是我模塊的塊“ Checkbox.php”中的代碼。可能對其他人有用。

<?php
class Mypackage_Myextension_Block_Checkbox extends Mage_Core_Block_Template {

    //echos a text based on module state
    protected function checkstate() {

        $modules = Mage::getConfig()->getNode('modules')->children();
        $modulesArray = (array)$modules;

                             //my module name
        if($modulesArray['Mypackage_Myextension']->is('active')) {
            echo "Mypackage_Myextension is active.";
        } 
        else {
            echo "Mypackage_Myextension is not active.";
        }
    }
}

?>

因此,當我禁用模塊(系統->高級->禁用模塊)時,塊內容不會顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM