1

に「myblock.phtml」というファイルを作成しましたfrontend\default\default\layout\mytemplate。「チェック」ボタンが表示され、カスタムモジュールのコントローラーURLが呼び出されます。問題は、そのボタン(つまり、myblock.htmlテンプレート)の表示を停止したいということです。 )モジュールを有効にしないと意味がないため、そのカスタムモジュールが無効になっている場合は常に、モジュールのconfig.xml内で微調整する方法はありますか?

4

3 に答える 3

0

すべてのテンプレートはブロックを通過する必要があり、ブロック内で追加のチェックを行うか、拡張機能が管理ページから無効になっているときにデフォルトのMagento機能でブロック出力を無効にすることができます

于 2011-02-08T13:32:44.600 に答える
0

アントンの答えを拡張するには、次のようなことを行うカスタムブロッククラスを作成します。

class Mypackage_Myextension_Block_Checkbox extends Mage_Core_Block_Template {

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

お役に立てば幸いです。

ありがとう、ジョー

于 2011-02-08T14:11:13.020 に答える
0

//これは私のモジュールのブロック「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.";
        }
    }
}

?>

したがって、モジュールを無効にすると([システム]->[詳細設定]->[モジュールの無効化])、ブロックの内容は表示されません。

于 2011-02-08T20:21:35.727 に答える