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.


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


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


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.


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>

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.


Welche Datei wird geladen und welche Dateien sind nicht in beiden Fällen?
Charlie
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.