10 – COMMENT AJOUTER DES OPTIONS DE CONFIGURATION À VOTRE MODULE MAGENTO 1 ?

Comme vous le voyez ci-dessus, nous allons aborder dans ce tutoriel la création d’un écran d’administration ou plutôt l’ajout d’entrées et de menu dans le panneau system configuration déjà en place.

!!! Attention ce tutoriel n’est pas réalisé avec les informations des leçons 1 à 8, ici le namespace est toujours « Valibus » et le nom du module est en revanche « Compar » et non pas Gestion. je vous laisse donc l’adapter à votre guise.

Pour ce faire nous allons réaliser 3 étapes à travers 3 fichiers xml.

1. CRÉONS LES ZONES DE SAISIES DE NOS INFORMATIONS

Pour ajouter des zones, un onglet, une section etc, nous allons editer le fichier ./etc/adminhtml.xml ainsi (attention le bloc est long).

On aborde ici plusieurs clé xml intéressantes, dont voici une breve description.

La clé tabs correspond à l’en tête du groupe d’élément dans la colonne config, comme general, catalog ou customer le sont nativement. Elle est rappelé dans la section pour indiquer l’emplacement de celle-ci.

La clé sections qui est un sous élément de tabs, comme rappelé précèdement.

les clés, show_in_default, show_in_website, show_in_store, permettent tout simplement d’activer la présence de l’option suivant que l’on se trouve au niveau de configuration default website et store comme leurs noms l’indiquent.

Enfin la clé frontend_type permet de préciser que la saisie se fera dans un champ text. Nous verrons plus tard comment utiliser d’autres champs. 

<?xml version="1.0"?>
<config>
<tabs>
<valibus translate="label" module="compar">
<label>Valib.us Module</label>
<sort_order>350</sort_order>
</valibus>
</tabs>
<sections>
<compar translate="label" module="compar">
<class>separator-top</class>
<label>Compar Configuration</label>
<tab>valibus</tab>
<sort_order>100</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<groups>
<export translate="label">
<label>Export Options</label>
<frontend_type>text</frontend_type>
<sort_order>10</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
<fields>
<separator translate="label">
<label>CSV separator caracter</label>
<frontend_type>text</frontend_type>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
</separator>
<destinationfile translate="label">
<label>Url for destination file</label>
<frontend_type>text</frontend_type>
<sort_order>2</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
</destinationfile>
<executiontime translate="label">
<label>Cron Expression execution</label>
<frontend_type>text</frontend_type>
<sort_order>3</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
</executiontime>
</fields>
</export>
</groups>
</compar>
</sections>
</config>

2. ATTRIBUONS DES VALEURS PAR DÉFAUT.

Ces valeurs s’ajoutent elles dans le fichier .etc/config.xml

<config>
<default>
<compar>
<export>
<separator>;</separator>
<destinationfile>export.csv</destinationfile>
<executiontime>0 12 * * *</executiontime>
</export>
</compar>
</default>
</config>

3. DONNONS LES DROITS ACL D’ADMINISTRATION DU MODULE

Nous intervenons dans ./etc/system.xml de notre module et devons obtenir une structure équivalente à celle-ci;

<config>
<acl>
<resources>
<admin>
<children>
<system>
<children>
<config>
<children>
<compar>
<title>Permission's tabs for configuration</title>
</compar>
</children>
</config>
</children>
</system>
</children>
</admin>
</resources>
</acl>
</config>

On observe bien ici le schéma: aminhtml -> acl -> admin -> system -> config -> compar

La gestion des droits se faisant dans: system -> permission -> roles

CONCLUSION

Il ne vous reste plus qu’à vider les caches , vous déconnecter / reconnecter au back office, et tout s’installera comme il faut.

Et si vous faisiez plutôt appel à notre  développeur magento pour réaliser toutes les mises à jours de votre boutique en ligne magento ?