モジュール出力の無効化とモジュールのアクティブ化= trueの違いは何ですか


16

magentoでは、2つの方法でモジュールを無効化できることを知りました。

  1. Magentoバックエンドで[システム]> [構成]> [詳細]> [モジュールの出力を無効にする]に移動すると、特定のモジュールを簡単に無効にできます。
  2. ディレクトリapp / etc / modulesで、active-tagをtrueからfalseに変更します。

これらの2つのテクニックの正確な違いは何ですか?誰もがより詳細な回答をする場合、それは非常に役立ちます。


1
良い質問..
アミットベラ

@AmitBera、ありがとう
チャーリー

回答:


17
  1. System > Configuration > Advanced > Disableモジュール出力は、実際にはそのモジュールを無効にしません。名前が示すように機能し、モジュール出力を無効にします。

    見るとき

    abstract class Mage_Core_Block_Abstract

    final public function toHtml()
    {
        Mage::dispatchEvent('core_block_abstract_to_html_before', array('block' => $this));
        if (Mage::getStoreConfig('advanced/modules_disable_output/' . $this->getModuleName())) {
            return '';
        } 
    
    // It is checking If its in disabled mode then just return blank output
    .......
    }
  2. app/etc/modulesモジュールを完全に無効にしている間


完璧な答え...
Kartik Asodariya

3
  1. Magentoバックエンドで[システム]> [構成]> [詳細]> [モジュールの出力を無効にする]に移動すると、特定のモジュールを簡単に無効にできます。

    -つまり、モジュールはレンダリングされず、画面に出力を送信しませんが、モジュールは実行されます。見てくださいapp / code / core / Mage / Core / Block / Abstract.php- > toHtml

    if(Mage :: getStoreConfig( 'advanced / modules_disable_output /'。$ this-> getModuleName())){return ''; }

  2. ディレクトリapp / etc / modulesで、active-tagをtrueからfalseに変更します。

    ----モジュールのロードまたはスキップを定義するtrue / false。ご覧くださいapp/code/core/Mage/Core/Model/Config.php->loadModulesConfiguration

foreach($ modules as $ modName => $ module){if($ module-> is( 'active')){-------}}


2

ちょうどの場合Disable Modules Output、モジュールはプログラミング用語で画面上に何もレンダリングしないことを意味します_toHtml()。関数は何も返しません。他のすべて(オブザーバー、リライト、コントローラー)は引き続き実行されます。

理想的には、モジュールを適切に無効にする場合は、「アクティブ」をに設定しfalse、他のモジュールがそれを拡張していないことを確認します。


2

Configuration > Current Configuration Scope > Advanced > Advanced > Disable Module Output.このアクションは、モジュールの出力のみを無効にします。モジュールが使用する場合、システムの一部にフックするいくつかのオブザーバー機能とオーバーライドを行うと、それらのアクションは無効になりません。

モジュールを完全に無効にするには、などのモジュール設定ファイルに移動して、次のよう/etc/NAMESPACE_MyModule.xmlにアクティブなパラメーターをfalseに設定する必要があります。

< ?xml version="1.0"?>
<config>
<modules>
<NAMESPACE_mymodule>
<active>false</active>
<codepool>local</codepool>
</NAMESPACE_mymodule>
</modules>
</config>

アクティブタグをfalseに変更すると、モジュールがロードされますか?Magentoはこれをどのように処理しますか?
チャーリー

システム>構成>詳細に表示されるモジュールをロードします。etc / config.xmlのようなモジュールファイルをロードしないでください。
カイザーサッティ

0

「モジュール出力を無効にする」は、拡張機能で定義されたブロック出力のみを無効にします。たとえば、オブザーバーが定義されている場合、モジュールのコードの実行をスキップしません。


どのファイルがロードされ、どのファイルがどちらの場合もありませんか?
チャーリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.