Was ist der Unterschied zwischen Modulausgang deaktivieren und Modul aktiv = wahr?

16

In Magento wurde mir klar, dass wir unser Modul auf zwei Arten deaktivieren können

  1. Durch Navigieren im Magento-Backend zu System> Konfiguration> Erweitert> Modulausgabe deaktivieren können wir bestimmte Module einfach deaktivieren.
  2. Im Verzeichnis app / etc / modules durch Ändern des Active-Tags von true in false.

Darf ich wissen, was genau der Unterschied zwischen diesen beiden Techniken ist? Es ist sehr hilfreich, wenn jemand eine detailliertere Antwort gibt.

Charlie
quelle
1
Gute Frage ..
Amit Bera
@AmitBera, danke
Charlie

Antworten:

17
  1. System > Configuration > Advanced > DisableDer Modulausgang deaktiviert dieses Modul nicht. Es funktioniert wie der Name schon sagt, deaktivieren Sie die Modulausgabe.

    Wenn du siehst

    abstract class Mage_Core_Block_Abstract

    Im

    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. Während app/etc/modulesvollständig deaktiviert Modul

Keyur Shah
quelle
Perfekte Antwort ...
Kartik Asodariya
3
  1. Durch Navigieren im Magento-Backend zu System> Konfiguration> Erweitert> Modulausgabe deaktivieren können wir bestimmte Module einfach deaktivieren.

    - Das bedeutet, dass das Modul nicht gerendert wird, keine Ausgabe auf den Bildschirm sendet, sondern dass das Modul ausgeführt wird. Schauen Sie sich app / code / core / Mage / Core / Block / Abstract.php -> toHtml an

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

  2. Im Verzeichnis app / etc / modules durch Ändern des Active-Tags von true in false.

    ---- true / false definieren, dass Ihr Modul geladen oder übersprungen wird. Schau mal app/code/core/Mage/Core/Model/Config.php->loadModulesConfiguration

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

Sohel Rana
quelle
2

Wenn Sie das so machen Disable Modules Output, bedeutet dies, dass das Modul programmtechnisch nichts auf dem Bildschirm rendert: Die _toHtml()Funktion gibt nichts zurück. Alles andere (Beobachter, Umschreibungen, Controller) wird weiterhin ausgeführt.

Wenn Sie ein Modul ordnungsgemäß deaktivieren möchten, setzen Sie im Idealfall "Aktiv" auf falseund stellen Sie sicher, dass es von keinem anderen Modul erweitert wird.

Mayers
quelle
2

Configuration > Current Configuration Scope > Advanced > Advanced > Disable Module Output.Diese Aktion deaktiviert nur die Modulausgabe, wie es heißt. Wenn Ihr Modul verwendet, lassen Sie uns einige Observer-Funktionen zum Einbinden in einen Teil des Systems und zum Überschreiben verwenden, dann werden diese Aktionen nicht deaktiviert.

Um das Modul vollständig zu deaktivieren, müssen Sie in die Modulkonfigurationsdatei /etc/NAMESPACE_MyModule.xmlwechseln und den aktiven Parameter auf false setzen, wie zum Beispiel:

< ?xml version="1.0"?>
<config>
<modules>
<NAMESPACE_mymodule>
<active>false</active>
<codepool>local</codepool>
</NAMESPACE_mymodule>
</modules>
</config>
Qaisar Satti
quelle
Wenn wir das aktive Tag in false ändern, wird das Modul geladen? Wie geht Magento damit um?
Charlie
Es lädt immer noch das Modul, das unter system> configuration> advanced angezeigt wird. nicht Moduldatei wie etc / config.xml nicht laden.
Qaisar Satti
0

"Modulausgang deaktivieren" deaktiviert nur den von der Erweiterung definierten Bausteinausgang. Die Ausführung des Moduls mit seinem Code wird nicht übersprungen, wenn beispielsweise Beobachter definiert sind.

Elias
quelle
Welche Datei wird geladen und welche Dateien sind nicht in beiden Fällen?
Charlie