2010-08-23 29 views
28

¿Cuál es la mejor manera de determinar si un módulo particular está habilitado/activo en Magento? Intenté usar class_exists para verificar si mi código ha sido cargado y analizado por PHP, pero últimamente me he dado cuenta de que es poco confiable (devuelve true incluso cuando elimino la configuración del módulo .xml).Determinar si el módulo Magento está habilitado

¿Existe una función central a la que pueda llamar?

Respuesta

54

Si desea utilizar una estructura en la función sólo tiene que utilizar

Mage::helper('core')->isModuleEnabled(<module name>); 

Se implementa en

Mage_Core_Helper_Abstract 
+4

en realidad debería mencionar que el nombre del módulo debería ser igual a: ** MyCompany_MyModule ** – Mohamed23gharbi

+0

Solo fyi, este método se introdujo en magento en CE 1.4.1.0, para compatibilidad de versiones más bajas utilice la solución '' 'getModuleConifg''' – augsteyer

36

Aquí hay otra opción que es una forma más elegante de averiguar el estado:

Mage::getConfig()->getModuleConfig('modulename')->is('active', 'true') 
+0

Me gusta mucho este método, es muy simple pero elegante. ¡Gracias! –

+0

donde puedo incluir este fragmento de código? – Chester

0

Aquí es un método rápido que yo uso mucho.

Mage::getStoreConfig('modulename/general/active') 

Esto se basa en su etc/system.xml configuración.

Cuestiones relacionadas