Magento – Désactiver la sortie du module en utilisant XML pour le site web

AnonymeIl peut arriver de temps en temps, qu'il ya des problèmes avec les extensions, ex.: le. ne sont autorisés pour un domaine. A propos du backend l'extension alors que dans le respect de ce site web est un / à un magasin avec le domaine activée et désactivée pour tous les autres, mais l'extension affecte les autres magasins et entrave ou empêche la visualisation à l'extrémité avant.

Différentes extensions qui sont également activées et désactivées à la maison et il n'y a pas d'option de configuration, de définir dans quel magasin ou. qui place l'extension ne doit pas être activée, et où.

Je pensais que, mais qu'il doit y avoir un moyen directement dans le module Certains contiennent XML dans le dossier etc / modules dans le extension.xml respective, qu'il est “si le site X, être actif; si Y place ensuite inactive”.

Après quelques Rechercher et j'ai pensé que j'ai trouvé la solution:

1. Si le fichier config.php copié à partir du dossier app / code / core / Mage / Core / Modèle dans le app / code dossier / local / Mage / Core / Modèle là et puis sur. de la ligne 850 après

        $modules = $ this->GetNode(«Modules»)->enfants();
        foreach ($modules que modname $ =>$Module) {
            si ($Module->est('Active')) {

rechercher.

Il est alors

            // Début de la restriction du site Web
            si((bool)$Module->limité) {
                $limité = explode(»,», (chaîne)$Module->limité);
                $ExécuterCode = (isset($_SERVER[«MAGE_RUN_CODE ']) ? $_SERVER[«MAGE_RUN_CODE '] : 'Default');
                si(in_array($ExécuterCode, $limité)) {
                    continuer;
                }
            }
            // Restriction fin du site

inséré, de sorte que tout le code ressemble à ceci:

    configuration du module de charge de la fonction publique($filename, $= Null mergeToObject, $mergeModel = null)
    {
        $disableLocalModules = !$ce->_canUseLocalModules();

        si ($mergeToObject === null) {
            $mergeToObject = clone $ this->_prototype;
            $mergeToObject>De charger la chaîne(»<config />»);
        }
        si ($mergeModel === null) {
            $mergeModel = clone $ this->_prototype;
        }
        $modules = $ this->GetNode(«Modules»)->enfants();
        foreach ($modules que modname $ =>$Module) {
            si ($Module->est('Active')) {
            // Début de la restriction du site Web
            si((bool)$Module->limité) {
                $limité = explode(»,», (chaîne)$Module->limité);
                $ExécuterCode = (isset($_SERVER[«MAGE_RUN_CODE ']) ? $_SERVER[«MAGE_RUN_CODE '] : 'Default');
                si(in_array($ExécuterCode, $limité)) {
                    continuer;
                }
            }
            // Fin de la restriction du site Web
                si ($disableLocalModules && ('Local' === (chaîne)$Module->Piscine de code)) {
                    continuer;
                }
                $configFile = $ this->getModuleDir(«Etc», $ModName).DS. $ Fichier;
                si ($mergeModel>fichier télécharger($configFile)) {
                    $mergeToObject>extendwatchlist($mergeModel, vrai);
                }
            }
        }
        return $ mergeToObject;
    }

Mit diesen Voile wird Magento angewiesen considérer zu darauf, si une restriction est définie dans le module XML ou.

Maintenant, pour définir un tel, pour ouvrir le correspondant [Module].xml, et ajouté avant le <Piscine de code> la ligne

<limité>[du Code des magasins exclus, peuvent être séparés par des virgules si d'autres magasins]</limité>

Comme il peut être à toute la question de, qu'il s'agit d'un multi-magasins, Ainsi plusieurs sites Web à partir d'un backend Magento, il est toujours important, que la répartition des magasins par la variable $ _SERVER “MAGE_RUN_CODE” défini. Cela vous prend par exemple. dans le index.php dans le répertoire racine.

commutateur($_SERVER['HTTP_HOST']) {

// Boutique 1

case 'shop1.de';
case 'www.shop1.de';

$_SERVER["MAGE_RUN_CODE"] = "shop1";

$_SERVER["MAGE_RUN_TYPE"] = "site Web";

briser; 

// Shop2 (magasin par défaut)

par défaut:

$_SERVER["MAGE_RUN_CODE"] = "shop2";

$_SERVER["MAGE_RUN_TYPE"] = "site Web";

briser;

Man würde également hier z.B. “shop1” als restreint einsetzen, wenn das Modul hier nicht aktiv sein soll.

Important: Vider le cache. La méthode la plus sûre et le dossier cache dans le var renommer et / ou supprimer. Magento crée automatiquement une nouvelle.

Utilisé dans la version Magento 1.4.1.1 Remarques? Ajouts? Remarques? Volontiers!

Publié par Covos

Depuis 2009 Je travaille intensément avec Magento. J'ai commencé avec la création et l'exploitation des magasins B2C. Cela a été prolongé par mon travail dans le secteur de la logistique. Il en est résulté premiers systèmes de B2E spécialisés. Aujourd'hui, je travaille jour par jour avec B2C passionnant, B2B- et les projets B2E et rapports dans ce blog sur les défis et donner des conseils d'initiés.

Laisser un commentaire

Votre adresse email ne sera pas publié. les champs requis sont indiqués *