devre dışı bırakma modülü çıkışı ve etkin modül arasındaki fark nedir = true


16

Macenta'da modülümüzü iki şekilde devre dışı bırakabileceğimizi biliyordum

  1. Magento arka ucunda Sistem> Yapılandırma> Gelişmiş> Modül çıkışını devre dışı bırak seçeneğine giderek belirli modülleri kolayca devre dışı bırakabiliriz.
  2. App / etc / modülleri dizininde, aktif etiketi true yerine false olarak değiştirerek.

Bu iki teknikteki kesin farkın ne olduğunu öğrenebilir miyim? Herkes daha ayrıntılı cevap verirse çok yardımcı olur.


1
İyi soru ..
Amit Bera

@AmitBera, Teşekkür ederim
Charlie

Yanıtlar:


17
  1. System > Configuration > Advanced > DisableModüller Çıktı aslında bu modülü devre dışı bırakmaz. Ad önerdiği gibi çalışır, modül çıkışını devre dışı bırakır.

    Baktığın zaman

    abstract class Mage_Core_Block_Abstract

    İçinde

    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/modulesTamamen devre dışı bırakılmış modül iken


Mükemmel cevap ...
Kartik Asodariya

3
  1. Magento arka ucunda Sistem> Yapılandırma> Gelişmiş> Modül çıkışını devre dışı bırak seçeneğine giderek belirli modülleri kolayca devre dışı bırakabiliriz.

    - Bu, modülün görüntülenmeyeceği, ekrana çıktı göndermediği, ancak modülünüzün yürütüldüğü anlamına gelir. Bir göz at app / code / core / Mage / Core / Block / Abstract.php -> toHtml

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

  2. Dizinde App / etc / modülleri , aktif etiketi true yerine false olarak değiştirerek.

    ---- doğru / yanlış modülünüzün yükleneceğini veya atlanacağını tanımlar. Bir göz atın app/code/core/Mage/Core/Model/Config.php->loadModulesConfiguration

foreach ($ modülleri $ modName => $ module olarak) {eğer ($ module-> ('active') ise) {-------}}


2

Sadece Disable Modules Output, modülün programlama açısından ekranda hiçbir şey işlemeyeceği anlamına gelir:_toHtml() işlev hiçbir şey döndürmez. Diğer her şey (gözlemciler, yeniden yazma, denetleyiciler) yine de yürütülecektir.

İdeal olarak, bir modülü düzgün bir şekilde devre dışı bırakmak istiyorsanız, "Aktif" olarak ayarlayın falseve başka bir modülün genişletilmediğinden emin olun.


2

Configuration > Current Configuration Scope > Advanced > Advanced > Disable Module Output.Bu eylem , söylediği gibi yalnızca modül çıkışını devre dışı bırakır . Modülünüz kullanıyorsa, sistemin bazı bölümlerine takılmak için bazı Gözlemci işlevlerinin olduğunu ve bazı geçersiz kılmaların yapıldığını varsayalım, bu eylemler devre dışı bırakılmaz.

Modülü tamamen devre dışı bırakmak için, modül yapılandırma dosyasına gitmeniz /etc/NAMESPACE_MyModule.xmlve etkin parametarı false olarak ayarlamanız gerekir:

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

Etkin etiketi false olarak değiştirirsek, modül yüklenir mi? Magento bunu nasıl halleder?
Charlie

hala sistem> yapılandırma> gelişmiş içinde göstereceği modülü yükler. etc / config.xml gibi modül dosyasını yüklemez.
Qaisar Satti

0

"Modül çıkışını devre dışı bırak" yalnızca uzantı tarafından tanımlanan blok çıkışını devre dışı bırakır. Örneğin, gözlemcileri tanımlanmışsa, kodunun yürütülmesini atlamaz.


Hangi dosya yüklenecek ve her iki durumda da hangi dosyalar bulunmayacak?
Charlie
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.