apa perbedaan antara menonaktifkan output modul dan modul active = true

16

Di Magento saya jadi tahu bahwa kita bisa melepaskan modul kita dengan dua cara

  1. Dengan menavigasi di backend Magento ke System> Configuration> Advanced> Disable output modules kita dapat dengan mudah menonaktifkan modul-modul tertentu.
  2. Di aplikasi direktori / etc / modules, dengan mengubah tag-aktif dari true ke false.

Bolehkah saya tahu apa perbedaan yang tepat dalam kedua teknik ini? Sangat membantu jika ada yang memberikan Jawaban yang lebih rinci.

Charlie
sumber
1
Pertanyaan bagus ..
Amit Bera
@AmitBera, Terima kasih
Charlie

Jawaban:

17
  1. System > Configuration > Advanced > DisableModul Output tidak akan benar-benar menonaktifkan modul itu. Ini berfungsi seperti namanya, menonaktifkan output modul.

    Ketika Anda melihat

    abstract class Mage_Core_Block_Abstract

    Di

    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. Sementara app/etc/modulesmodul sepenuhnya dinonaktifkan

Keyur Shah
sumber
Jawaban sempurna ...
Kartik Asodariya
3
  1. Dengan menavigasi di backend Magento ke System> Configuration> Advanced> Disable output modules kita dapat dengan mudah menonaktifkan modul-modul tertentu.

    - Itu artinya modul tidak akan me-render, tidak mengirim output ke layar tetapi modul Anda dieksekusi. Lihatlah aplikasi / kode / inti / Penyihir / Inti / Blok / Abstract.php -> toHtml

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

  2. Di aplikasi direktori / etc / modules , dengan mengubah tag-aktif dari true ke false.

    ---- true / false mendefinisikan modul Anda akan dimuat atau dilewati. Lihatlah app/code/core/Mage/Core/Model/Config.php->loadModulesConfiguration

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

Sohel Rana
sumber
2

Ketika Anda baru saja Disable Modules Output, itu berarti modul tidak akan membuat apa pun di layar, dalam istilah pemrograman: _toHtml()fungsi tidak akan mengembalikan apa pun. Segala sesuatu yang lain (pengamat, penulisan ulang, pengontrol) masih akan dieksekusi.

Idealnya, jika Anda ingin menonaktifkan modul dengan benar, atur "Aktif" ke false, dan pastikan tidak ada modul lain yang memperpanjangnya.

Mayers
sumber
2

Configuration > Current Configuration Scope > Advanced > Advanced > Disable Module Output.Tindakan ini hanya menonaktifkan output modul seperti yang dikatakan. Jika modul Anda menggunakan, katakanlah beberapa fungsi Pengamat untuk menghubungkan ke beberapa bagian dari sistem dan melakukan beberapa pengesampingan maka tindakan tersebut tidak akan dinonaktifkan.

Untuk sepenuhnya menonaktifkan modul, Anda harus pergi ke file konfigurasi modul, seperti /etc/NAMESPACE_MyModule.xml, dan mengatur parameter aktif ke false, seperti:

< ?xml version="1.0"?>
<config>
<modules>
<NAMESPACE_mymodule>
<active>false</active>
<codepool>local</codepool>
</NAMESPACE_mymodule>
</modules>
</config>
Qaisar Satti
sumber
Jika kita mengubah tag aktif menjadi false, apakah ia memuat modul? Bagaimana Magento menangani ini?
Charlie
masih memuat modul yang akan ditampilkan di sistem> konfigurasi> lanjutan. tidak tidak memuat file modul seperti etc / config.xml.
Qaisar Satti
0

"Nonaktifkan modul keluaran" hanya menonaktifkan keluaran blok yang ditentukan oleh ekstensi. Modul ini tidak melewatkan eksekusi kode, jika, misalnya, memiliki pengamat yang ditentukan.

Elias
sumber
File mana yang akan dimuat dan file mana yang tidak ada dalam kedua kasus ini?
Charlie