Magento fournit une API pour définir et récupérer les valeurs de configuration. J'ai écrit un article sur fetching data out of the config. Vous voudrez l'examiner si l'une des terminologies ci-dessous vous confond. En ce qui concerne la définition des variables, il n'est pas aussi simple que de dire "Je veux définir la variable design/header/logo_src" sur "this value". Vous devez également spécifier le site Web pour lequel vous enregistrez les valeurs et le magasin pour lequel vous enregistrez les valeurs.
Il est important d'être prudent ici. Je n'ai pas examiné en profondeur le système pour voir si Magento applique la granularité "show for website, show for site" des valeurs de configuration au niveau back-end/resource, ou seulement au niveau de l'interface utilisateur. Mes instincts disent que c'est le dernier, ce qui signifie que vous pourriez finir par enregistrer une valeur au niveau du site Web/magasin qui n'était pas destinée à être sauvable à ce niveau, et qui pourrait conduire à l'Undefined Behavior redouté.
Dans l'édition 1.4 de la communauté, vous pouvez voir où Magento est de sauvegarder les valeurs de configuration à l'emplacement suivant
File: app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php
//around line 126
Mage::getModel('adminhtml/config_data')
->setSection($section)
->setWebsite($website)
->setStore($store)
->setGroups($groups)
->save();
Mises en garde sur la route, le code pour vous mettre à jour uniquement le logo pour le magasin de haut niveau/Config site Web serait.
//create a groups array that has the value we want at the rigth location
$groups_value = array();
$groups_value['header']['fields']['logo_src']['value'] = 'images/logo.gif';
Mage::getModel('adminhtml/config_data')
->setSection('design')
->setWebsite(null)
->setStore(null)
->setGroups($groups_value)
->save();
La ligne
Mage::getModel('adminhtml/config_data')
instancie un modèle Magento.
Le 'design'
dans la méthode setSection
ainsi que la chaîne 'header'
et 'logo_src'
correspondent à l'URI config
design/header/logo_src
Je suis sûr que les null
s passés à setWebsite
et setStore
dire l'objet que vous enregistrez cette valeur au niveau supérieur. Vous pouvez également passer en magasin et les ID de site Web. (Je suis un peu fragile sur ce point, mais quand vous enregistrez le logo normalement, c'est ce que fait le système)
Les codes 'fields'
et 'values'
sont codés en dur. L'objectif de l'objet est de sauvegarder plusieurs valeurs de configuration à la fois de tous les groupes d'une section.
Vérifiez la méthode saveAction
dans le contrôleur ci-dessus si vous êtes curieux.
Merci, était très serviable pour moi. – Rakward