¿Cuál es la diferencia entre deshabilitar la salida del módulo y el módulo activo = verdadero

16

En magento llegué a saber que podemos desconectar nuestro módulo de dos maneras

  1. Al navegar en el backend de Magento a Sistema> Configuración> Avanzado> Desactivar salida de módulos, podemos desactivar fácilmente ciertos módulos.
  2. En la aplicación de directorio / etc / modules, cambiando la etiqueta activa de verdadero a falso.

¿Puedo saber cuál es la diferencia exacta en estas dos técnicas? Es de gran ayuda si alguien da una respuesta más detallada.

Charlie
fuente
1
Buena pregunta ..
Amit Bera
@AmitBera, gracias
Charlie

Respuestas:

17
  1. System > Configuration > Advanced > DisableLa salida de módulos en realidad no desactivará ese módulo. Funciona como el nombre sugiere, deshabilita la salida de los módulos.

    Cuando miras

    abstract class Mage_Core_Block_Abstract

    En

    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. Mientras está app/etc/modulescompletamente deshabilitado el módulo

Keyur Shah
fuente
Respuesta perfecta ...
Kartik Asodariya
3
  1. Al navegar en el backend de Magento a Sistema> Configuración> Avanzado> Desactivar salida de módulos, podemos desactivar fácilmente ciertos módulos.

    - Eso significa que el módulo no se renderizará, no enviará salida a la pantalla pero su módulo se ejecutará. Echa un vistazo a app / code / core / Mage / Core / Block / Abstract.php -> toHtml

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

  2. En la aplicación de directorio / etc / modules , cambiando la etiqueta activa de verdadero a falso.

    ---- verdadero / falso define que su módulo se cargará o saltará. Echa un vistazo app/code/core/Mage/Core/Model/Config.php->loadModulesConfiguration

foreach ($ módulos como $ modName => $ module) {if ($ module-> is ('active')) {-------}}

Sohel Rana
fuente
2

Cuando simplemente Disable Modules Output, significa que el módulo no mostrará nada en la pantalla, en términos de programación: la _toHtml()función no devolverá nada. Todo lo demás (observadores, reescrituras, controladores) aún se ejecutará.

Idealmente, si desea deshabilitar un módulo correctamente, establezca "Activo" falsey asegúrese de que ningún otro módulo lo extienda.

Mayers
fuente
2

Configuration > Current Configuration Scope > Advanced > Advanced > Disable Module Output.Esta acción solo deshabilita la salida del módulo como dice. Si su módulo usa, digamos algunas funcionalidades de Observer para engancharse en alguna parte del sistema y anula algo, entonces esas acciones no se deshabilitarán.

Para deshabilitar completamente el módulo, debe ir al archivo de configuración del módulo, como /etc/NAMESPACE_MyModule.xml, y establecer su parámetro activo en falso, como:

< ?xml version="1.0"?>
<config>
<modules>
<NAMESPACE_mymodule>
<active>false</active>
<codepool>local</codepool>
</NAMESPACE_mymodule>
</modules>
</config>
Qaisar Satti
fuente
Si cambiamos la etiqueta activa a falsa, ¿se carga el módulo? ¿Cómo maneja Magento esto?
Charlie
todavía carga el módulo que mostrará en sistema> configuración> avanzado. No cargar el archivo de módulo como etc / config.xml.
Qaisar Satti
0

"Deshabilitar salida de módulos" solo deshabilita la salida de bloque definida por la extensión. No omite la ejecución del módulo de su código si, por ejemplo, tiene observadores definidos.

Elias
fuente
¿Qué archivo se cargará y qué archivos no están en ambos casos?
Charlie