quelle est la différence entre désactiver le module de sortie et module actif = vrai


16

Dans magento, j'en suis venu à savoir que nous pouvons désinstaller notre module de deux manières

  1. En naviguant dans le backend Magento vers Système> Configuration> Avancé> Désactiver la sortie des modules, nous pouvons facilement désactiver certains modules.
  2. Dans le répertoire app / etc / modules, en changeant la balise active de true à false.

Puis-je savoir quelle est la différence exacte entre ces deux techniques? C'est très utile si quelqu'un donne une réponse plus détaillée.


1
Bonne question ..
Amit Bera

@AmitBera, Merci
Charlie

Réponses:


17
  1. System > Configuration > Advanced > DisableLa sortie des modules ne désactivera pas réellement ce module. Cela fonctionne comme son nom l'indique, désactivez la sortie des modules.

    Quand on regarde

    abstract class Mage_Core_Block_Abstract

    Dans

    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. Bien que le app/etc/modulesmodule complètement désactivé


Réponse parfaite ...
Kartik Asodariya

3
  1. En naviguant dans le backend Magento vers Système> Configuration> Avancé> Désactiver la sortie des modules, nous pouvons facilement désactiver certains modules.

    - Cela signifie que le module ne sera pas rendu, n'envoie pas de sortie à l'écran mais que votre module s'exécute. Jetez un œil app / code / core / Mage / Core / Block / Abstract.php -> toHtml

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

  2. Dans le répertoire app / etc / modules , en changeant la balise active de true à false.

    ---- true / false définit que votre module sera chargé ou ignoré. Jetez un oeil app/code/core/Mage/Core/Model/Config.php->loadModulesConfiguration

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


2

Quand vous venez Disable Modules Output, cela signifie que le module ne rendra rien à l'écran, en termes de programmation: la _toHtml()fonction ne retournera rien. Tout le reste (observateurs, réécritures, contrôleurs) sera toujours exécuté.

Idéalement, si vous souhaitez désactiver un module correctement, définissez "Actif" sur falseet assurez-vous qu'aucun autre module ne l'étend.


2

Configuration > Current Configuration Scope > Advanced > Advanced > Disable Module Output.Cette action désactive uniquement la sortie du module comme indiqué. Si votre module utilise, disons que certaines fonctionnalités d'Observer se connectent à une partie du système et effectuent des remplacements, ces actions ne seront pas désactivées.

Pour désactiver complètement le module, vous devez aller dans le fichier de configuration du module, comme /etc/NAMESPACE_MyModule.xml, et définir son paramètre actif sur false, comme:

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

Si nous changeons la balise active en false, est-ce que cela charge le module? Comment Magento gère-t-il cela?
Charlie

il charge toujours le module qu'il affichera dans système> configuration> avancé. ne charge pas le fichier de module comme etc / config.xml.
Qaisar Satti,

0

"Désactiver la sortie des modules" désactive uniquement la sortie de bloc définie par l'extension. Il ne saute pas l'exécution du module de son code si, par exemple, il a des observateurs définis.


Quel fichier va charger et quels fichiers ne sont pas dans les deux cas?
Charlie
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.