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>
  1. 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.

  2. 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

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top