Champs de configuration du système personnalisés
-
30-10-2019 - |
Question
Je voudrais créer mon type de champ personnalisé pour l'utiliser dans les formulaires de configuration système (System -> Configuration). Par exemple, pour créer un champ de texte simple, nous devons utiliser <frontend_type>text</frontend_type>
dans System.xml qui dit à Magento d'utiliser le fichier lib/Varien/Data/Form/Element/Text.php
:
<config>
<!-- ... -->
<sections>
<mycustom_section translate="label">
<label>My Module</label>
<sort_order>0</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<groups>
<mycustom_group translate="label">
<label>My Custom Group</label>
<sort_order>0</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<fields>
<heading_sample translate="label">
<label>Sample heading</label>
<sort_order>0</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
</heading_sample>
<mycustom_field translate="label comment">
<label>My Custom Field</label>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<frontend_type>text</frontend_type> <!-- custom field type here -->
<frontend_model>mymodule/custom</frontend_model> <!-- or custom model here -->
</mycustom_field>
<!-- ...other fields here... -->
</fields>
</mycustom_group>
</groups>
</mycustom_section>
</sections>
</config>
Si je crée ma propre classe (qui étend Magento Varien_Data_Form_Element_Abstract
classe) qui rend mon champ personnalisé, où je devrais mettre ce fichier?
Cela fonctionnera probablement (le sera-t-il?) Si je le mets à l'intérieur du répertoire par défaut Magentolib/Varien/Data/Form/Element/Customized.php
:
<mycustom_group>
<!-- ... -->
<fields>
<mycustom_field translate="label comment">
<label>My Custom Field</label>
<comment>Some comment about my field</comment>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<frontend_type>customized</frontend_type> <!-- custom field type here -->
</mycustom_field>
</fields>
</mycustom_group>
Mais existe-t-il un moyen de garder mon fichier de champ personnalisé dans mon module personnalisé à la place dans
lib/Varien/Data/Form/Element/
? L'ajout de fichiers personnalisés aux répertoires principaux n'est probablement pas une très bonne idée.Sinon, puis-je créer un dossier personnalisé à l'intérieur
lib/
, par exemple:lib/Mycompany/Customized.php
? Mais dans ce cas, comment je peux informer Magento dans le<frontend_type>
étiqueter System.xml qu'il devrait utiliser mon fichier de champ personnalisé et dire à Magento où se trouve ce fichier?
Pas de solution correcte