martedì 2 settembre 2014

Verificare in Magento se un modulo è installato e attivo

Come verificare su Magento la presenza di un modulo?

In alcuni casi può essere utile, su Magento, controllare se è stato installato oppure no un modulo.

Ad esempio potrebbe essere utile far comportare il proprio tema in un modo o in un altro nel caso sia installato un modulo.

Immaginate di avere installato un modulo aggiuntivo che sostituisce il checkout, ma quando viene aggiunto un prodotto al carrello, il redirect di default rimanda l'utente al checkout normale.

Naturalmente potreste modificare il comportamente del tasto ADDTOCART, ma potrebbero esserci in giro dei link che avete creato in precedenza. Con questo codice è possibile intercettare l'installazione del modulo Magestore_onestepcheckout e redirezionare l'utente alla giusta pagina.

Il codice da usare a questo scopo è questo:

$modules = Mage::getConfig()->getNode('modules')->children();
$modulesArray = (array)$modules;

if(isset($modulesArray['Magestore_onestepcheckout '])) {
    $url=$this->getCheckoutUrl();
    Mage::app()->getFrontController()->getResponse()->setRedirect($url);

}   
Oppure:
if( $modules->Magestore_Onestepcheckout->active==true ) {
    $url=$this->getCheckoutUrl();
    Mage::app()->getFrontController()->getResponse()->setRedirect($url);
}   
Sostanzialmente la stessa cosa.

Verifica del modulo installato attraverso il framework di Magento

In realtà è anche disponibile una soluzione migliore, usando però il metodo isModuleEnabled dell'helper della classe Mage:

Mage::helper('core')->isModuleEnabled('Magestore_onestepcheckout ');

In questo questo post di Stackoverflow potete trovare ulteriori alternative:

http://stackoverflow.com/questions/4307407/magento-checking-if-a-module-is-installed


1 commento: