qual'è la differenza tra disable module output e module active = true


16

Nel magento sono arrivato a sapere che possiamo dissimulare il nostro modulo in due modi

  1. Navigando nel backend Magento su Sistema> Configurazione> Avanzate> Disabilita output moduli possiamo facilmente disabilitare determinati moduli.
  2. Nell'app directory / etc / modules, cambiando il tag attivo da vero a falso.

Posso sapere qual è la differenza esatta in queste due tecniche? È di grande aiuto se qualcuno dà una risposta più dettagliata.


1
Bella domanda ..
Amit Bera

@AmitBera, grazie
Charlie,

Risposte:


17
  1. System > Configuration > Advanced > DisableL'output dei moduli non disabiliterà effettivamente quel modulo. Funziona come suggerisce il nome, disabilita l'output dei moduli.

    Quando guardi

    abstract class Mage_Core_Block_Abstract

    Nel

    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. Mentre app/etc/modulescompletamente disattivato modulo


Risposta perfetta ...
Kartik Asodariya il

3
  1. Navigando nel backend Magento su Sistema> Configurazione> Avanzate> Disabilita output moduli possiamo facilmente disabilitare determinati moduli.

    - Ciò significa che il modulo non verrà visualizzato, non invia output sullo schermo ma il modulo viene eseguito. Dai un'occhiata all'app / code / core / Mage / Core / Block / Abstract.php -> toHtml

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

  2. Nella directory app / etc / modules , cambiando il tag attivo da vero a falso.

    ---- vero / falso definire che il modulo verrà caricato o ignorato. Dai un'occhiata app/code/core/Mage/Core/Model/Config.php->loadModulesConfiguration

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


2

Quando lo fai Disable Modules Output, significa che il modulo non visualizzerà nulla sullo schermo, in termini di programmazione: la _toHtml()funzione non restituirà nulla. Tutto il resto (osservatori, riscritture, controller) verrà comunque eseguito.

Idealmente, se si desidera disabilitare correttamente un modulo, impostare "Attivo" su falsee assicurarsi che nessun altro modulo lo stia estendendo.


2

Configuration > Current Configuration Scope > Advanced > Advanced > Disable Module Output.Questa azione disabilita l'output del modulo solo come dice. Se il modulo utilizza, supponiamo che alcune funzionalità di Observer si colleghino a una parte del sistema e eseguano alcune sostituzioni, quindi tali azioni non verranno disabilitate.

Per disabilitare completamente il modulo, devi andare al file di configurazione del modulo, come /etc/NAMESPACE_MyModule.xml, e impostare il suo parametro attivo su falso, come:

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

Se cambiamo il tag attivo in falso, carica il modulo? Come gestisce questo Magento?
Charlie,

carica ancora il modulo che mostrerà in system> configuration> advanced. non caricare il file del modulo come etc / config.xml.
Qaisar Satti,

0

"Disabilita uscita moduli" disabilita solo l'uscita del blocco definita dall'estensione. Non salta l'esecuzione del modulo del suo codice se, ad esempio, ha degli osservatori definiti.


Quale file verrà caricato e quali file non si trovano in entrambi i casi?
Charlie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.