¿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.


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


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')) {-------}}


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.


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>

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.


¿Qué archivo se cargará y qué archivos no están en ambos casos?
Charlie
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.