Guide Magento Developpeur (Leçon 14) – Faire une mise à jour de votre module
12 octobre 2011Ce tutoriel est le 14eme d’une longue série, si vous ne l’avez pas déjà fait je vous conseille de lire les tutoriels en commençant par le sommaire de cette série.
Aujourd’hui je vais vous apprendre à utiliser la mise à jour automatique de votre module via l’installeur. Comme vous le savez maintenant, dans le fichier etc/config.xml de votre module vous avez un numéro de version. Magento quand il est appelé, vérifie ce numéro de version et détecte si votre module est à jours. Il vérifie en fait la table core_resource le numéro de version installé sur votre site et si il ne correspond pas a celui de votre module actuel, il lance l’installeur.
Les installeurs de votre module seront dans le dossier /sql/test_setup/, le premier est un « install », il s’appelera mysql4-install-0.1.0.php
Ensuite les autres seront des « upgrade », ils s’apelleront mysql4-upgrade–.php exemple :
La premiere mise à jours de la version 0.1.0 vers la version 0.1.1 s’apellera:
mysql4-upgrade-0.1.0-0.1.1.php
Le suivant sera :
mysql4-upgrade-0.1.1-0.1.2.php
Etc..
On déclare notre dossier setup
Commencez déja par créer un dossier /sql/test_setup à la racine de votre module.
Allez ensuite dans votre fichier /etc/config.xml puis dans <global> <ressources> ajoutez :
<pfaytest_setup>
<setup>
<module>Pfay_Test</module>
<class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</pfaytest_setup>
Votre fichier est maintenant déclarez et vos fichier d’install et d’upgrade vont etre pris en compte des que vous afficherai une page magento.
Ajouter un attribut dans la page produit
On va maintenant voir a quoi ressemble notre installer en rajoutant un champs dans la fiche produit (qui sera automatiquement pris en compte dans l’admin).
Créer donc le fichier mysql4-install-0.1.0.php dans votre module, dans le dossier /sql/test_setup/
<?php
$this->startSetup();
$this->addAttribute('catalog_product', 'my_field', array(
'group' => 'My Field',
'type' => 'int',
'label' => 'My Field',
'input' => 'select',
'source' => 'eav/entity_attribute_source_boolean',
'backend' => '',
'frontend' => '',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
'required' => false,
'default' => '0',
'user_defined' => 0,
'apply_to' => 'simple',
'note' => '',
'visible' => true,
'is_filterable_in_search', '0',
'used_in_product_listing', '1',
));
$this->endSetup();
Vous l’aurez compris, vous faites ce que vous voulez dans votre installer tant qu’il commence par $this->startSetup(); et qu’il fini par $this->endSetup();
pour la fonction addAttribute, on ne va pas l’expliquer dans ce tutoriel ![]()
le fichier d’upgrade c’est pareil :
<?php $this->startSetup(); //ici mettez ce que vous souhaitez $this->endSetup();
Et voilà !! c’est la fin de ce tutoriel. J’espère qu’il aura pu en aider quelques uns d’entre vous et je vous invite à en parler autour de vous, à mettre un +1, un j’aime, et à laisser des messages en commentaire. Vous avez gagné du temps avec ce tutoriel ? Prenez donc 2min pour m’aider et faire un lien vers cet article sur votre blog, facebook, twitter ou google+…cela n’est pas grand chose pour vous mais pour moi c’est énorme ! Merci beaucoup de me suivre et de m’aider, c’est génial


BONUS:
Le code XML présenté ci-dessus se place dans :
config
–global
—-resources
—— ==>ICI<==
enjoy !!!