Magento – Modul Ausgabe für über XML Web deaktivieren

Sin nombreEs kann immer wieder mal vorkommen, dass es Probleme mit Extensiones gibt, por ejemplo, la. nur für eine Domain lizensiert sind. Über das Backend ist die Extensión zwar dann nur für eine diese Website / a una tienda con el dominio de activado y desactivado para todos los demás, pero la extensión afecta a las otras tiendas y dificulta o impide la pantalla en el extremo delantero.

Diferentes extensiones que también se activan y desactivan de casa y no hay opción de configuración, para definir en qué tienda o. sitio que la extensión no debe ser activado, y donde.

Pensé, dass es doch eine Möglichkeit geben muss direkt in der Modul XML im Ordner etc / modules in der jeweiligen extension.xml etwas einzubauen, que es “si el sitio X, entonces activa; Y si sitio entonces inactiva”.

Después de algún Buscar y pensé que encontré la solución:

1. Si el config.php copiado de la carpeta app / code / core / mago / Core / modelo en la carpeta app / code / local / mago / Core / modelo en el acto sobre. de la línea 850 A

        $módulos = $ this->GetNode("Módulos")->niños();
        foreach ($módulos como $ nombreDeMód =>$módulo) {
            si ($módulo->es("Activo")) {

AFECTADO.

Dort wird dann

            // Website Restriktion Start
            if((bool)$módulo->restringido) {
                $restringida = explotar(',', (cadena)$módulo->restringido);
                $EjecutarCódigo = (isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : 'Default');
                si(in_array($EjecutarCódigo, $restringido)) {
                    continuar;
                }
            }
            // Sitio web Restriktion Ende

ENCLAVADO, así dass der gesamte Código dann lo aussieht:

    loadModulesConfiguration función pública($fileName, $mergeToObject = null, $mergeModel = null)
    {
        $disableLocalModules = !$esta->_canUseLocalModules();

        si ($mergeToObject === nula) {
            $mergeToObject = clone $ this->_prototype;
            $mergeToObject->loadString('<config />');
        }
        si ($mergeModel === nula) {
            $mergeModel = clone $ this->_prototype;
        }
        $módulos = $ this->GetNode("Módulos")->niños();
        foreach ($módulos como $ nombreDeMód =>$módulo) {
            si ($módulo->es("Activo")) {
            // Website Restriktion Start
            if((bool)$módulo->restringido) {
                $restringida = explotar(',', (cadena)$módulo->restringido);
                $EjecutarCódigo = (isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : 'Default');
                si(in_array($EjecutarCódigo, $restringido)) {
                    continuar;
                }
            }
            // Website Restriktion Ende            
                if ($disableLocalModules && ('Local' === (cadena)$módulo->codePool)) {
                    continuar;
                }
                $archivoConfig = $ this->getModuleDir('Etc', $Nombre de módulo).DS. $ FileName;
                si ($mergeModel->loadFile($archivoConfig)) {
                    $mergeToObject->ampliar($mergeModel, verdadero);
                }
            }
        }
        return $ mergeToObject;
    }

Mit diesen Zeilen wird Magento angewiesen darauf zu achten, ob in der Modul XML eine Restriktion definiert wird nicht oder.

Um monja eine Solche zu setzen, öffnet hombre muere entsprechende [MÓDULO].xml fügt und vor den <codePool> la línea de

<restringido>[der code des auszuschließenden Tiendas, kann mit Komma getrennt werden wenn Tiendas mehrere]</restringido>

Dado que puede ser en todo el tema de, que es un multi-tienda, Así múltiples sitios web desde un backend de Magento, sigue siendo importante, que la distribución de las tiendas por la variable $ _SERVER “MAGE_RUN_CODE” definida. Esto le lleva, por ejemplo,. en el index.php en el directorio raíz.

cambiar($_SERVER['HTTP_HOST']) {

// Tienda 1

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

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

$_SERVER["MAGE_RUN_TYPE"] = "sitio web";

romper; 

// Shop2 (por defecto la tienda)

defecto:

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

$_SERVER["MAGE_RUN_TYPE"] = "sitio web";

romper;

Hombre würde también hier z.B. “shop1” del als restringido einsetzen, wenn das hier Modul nicht aktiv sein soll.

IMPORTANTE: Borrar la caché. El método más seguro y la carpeta de caché en el var renombrar y / o eliminar. Magento crea automáticamente una nueva.

Se utiliza en la versión de Magento 1.4.1.1 Comentarios? Adiciones? Notas? Con alegría!

Publicado por Covos

DESDE 2009 He estado trabajando intensamente con Magento. Empecé con la creación y el funcionamiento de las tiendas B2C. Esto se extendió a través de mi trabajo en el sector de la logística. Esto dio lugar a sistemas especializados primera B2E. Hoy trabajo del día a día con una emocionante B2C, B2B- y proyectos B2E e informes en este blog sobre los desafíos y dan consejos de expertos.

Deja un comentario

Su dirección de correo electrónico no será publicado. Los campos obligatorios están marcados *