Posted via email from Narno's microblog

Aujourd'hui, j'ai 30 ans ! Punaise...

Je partage ici une petite astuce pour télécharger simplement une extension Magento, sans utiliser le downloader.

L'idée est d'obtenir le code source d'une extension MagentoConnect, sans l'installer (afin d'étudier son code source par exemple).

Mise à jour du 01/12/2001 : Je me suis enfin décidé à mettre à jour ce tutoriel avec l'arrivé de MagentoConnect 2.0, dont le protocole à légèrement changé. Voir ci-dessous.

Pour rappel, il faut savoir que Magento utilise un serveur PEAR pour packager et distribuer ses extensions. De ce fait, une fois que l'on connait le chemin d'accès au serveur PEAR
de Magento et que l'on connais son arborcence il est très facile d’accédé à n'importe quel package.

MagentoConnect 2.0 : Ce n'est plus PEAR, mais les fondamentaux reste identiques !

Voici la procédure à suivre, en utilisant l'exemple du Modern Theme.


Pour rappel, Magento s'appuie sur des fichiers XML pour configurer ses modules (entre autre). Le soucis avec l’utilisation qu'en fait Magento, c'est qu'il ne vérifie pas l'intégrité des fichiers XML.

En effet, si vous faite une faute de frappe, qu'une balise est mal fermé ou tout être erreur dans la structure XML de votre fichier de configuration, Magento levera une erreur (ou plutôt un warning) du type :

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 19: parser error : expected '>' in magento\lib\Varien\Simplexml\Config.php on line 510

Notes :

  • ce message est loggué dans system.log (si les logs sont activés)
  • dans le cas où le DeveloperMode n'est pas activée, l'erreur sera silencieuse

Vous me direz, ça n'est pas bloquant : un coup d'oeil dans le fichier exception.log pour déterminer l'origine du problème et l'affaire est réglée ! Sauf que non, ce type d'erreur n'est pas "protégée" par un try/catch...
De ce fait, mise à part le fait de savoir qu'un fichier XML de configuration est en cause, vous n'êtes pas très avancé.

L'idée, pour se simplifier, est de connaitre le non (où plutôt le chemin) du fichier en cause et la ligne qui pose problème.

Pour cela, je vous propose un overlap de classe Varien en charge des fichiers de configuration XML : Varien_Simplexml_Config. Le code est simple et mériterait d'être retravaillé, mais il fonctionne bien en l'état.

Posté sur
|
share