Es 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!