0

Magento 内で複数のストアを実行しているサイトがあり、ストア レベルごとにモジュールを無効にする必要があります。

ここでの 2 番目の回答Magento: Disable module for any specific storeは機能しますが、レイアウト キャッシュをオフにする必要があります。これにより、サーバーの負荷が劇的に増加するようです。

私はこの記事をアラン・ストームによって見つけました.http://alanstorm.com/magento_config_a_critique_and_caching

キャッシュから読み込まれている場合でも、xml の特定の部分を取り除く方法はありますか?

これはどのように実装してもハックになるようですが、拡張機能の作成者の大半は、拡張機能を構築する際に複数の Web サイト/ストアを考慮していないようです。ストアごとにモジュールを完全に無効にして、レイアウト キャッシュを適切に機能させられると便利です。

4

1 に答える 1

0

わかりましたので、私はこれを理解したと思います。

/app/code/local/Mage/Core/Model/Config.php (オリジナルのコピー) にあります。

   public function loadModulesCache()
{
    if (Mage::isInstalled(array('etc_dir' => $this->getOptions()->getEtcDir()))) {
        if ($this->_canUseCacheForInit()) {
            Varien_Profiler::start('mage::app::init::config::load_cache');
            $loaded = $this->loadCache();
            Varien_Profiler::stop('mage::app::init::config::load_cache');
            if ($loaded) {


               ***PUT CODE HERE TO EDIT $this->_xml***
               Just remove the nodes which should be disabled.


                $this->_useCache = true;
                return true;
            }
        }
    }
    return false;
}

これが最善の方法なのか、これを行うべきなのかはわかりませんが、今すぐテストして、他のエラーが表示されるかどうかを確認します

于 2012-08-09T17:51:03.660 に答える