Magento Expert Forum - Improve your Magento experience

Results 1 to 3 of 3

Magento system settings overview

  1. #1
    Administrator david's Avatar
    Join Date
    Nov 2012
    Posts
    261
    Thanks
    22
    Thanked 42 Times in 34 Posts

    Cool Magento system settings overview

    From time to time Magento developers face with a need to add settings for their extensions. As it’s hard to remember all necessary details for each setting, so we would like to share our snippets which contain xml code of the most recent settings used in Magento admin.

    First of all, we would recommend you always place everything, that refers to Magento system settings, in the system.xml file, since it’s the main and the only role of this file.
    If you need to create your own tab in the admin system settings, you should simply add the following lines to the file:

    HTML Code:
    <config>
        <tabs>
            <atwix translate="label">
                <label>MEF Extensions</label>
                <sort_order>150</sort_order>
            </atwix>
        </tabs>    
    </config>
    As a result, you’ll get the new group (tab) in the admin settings. When you need to complete the procedure of adding settings you should add the following items: section, settings groups and the settings (fields) themselves:

    HTML Code:
    <config>
        <sections>
            <atwix_shoppingbar translate="label" module="atwix_shoppingbar">
                <class>separator-top</class>
                <label>Shopping Bar</label>
                <tab>atwix</tab>
                <sort_order>130</sort_order>
                <show_in_default>1</show_in_default>
                <show_in_website>1</show_in_website>
                <show_in_store>1</show_in_store>
                <groups>
                    <quicksearch>
                        <label>Quick search</label>
                        <frontend_type>text</frontend_type>
                        <sort_order>20</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>0</show_in_website>
                        <show_in_store>1</show_in_store>
                        <fields>
                            <quicksearch_enabled translate="label comment">
                                <label>Enable Quick Search</label>
                                <comment><!&#91;CDATA&#91;Enable quick search block&#93;&#93;></comment>
                                <frontend_type>select</frontend_type>
                                <source_model>adminhtml/system_config_source_yesno</source_model>
                                <sort_order>1</sort_order>
                                <show_in_default>1</show_in_default>
                                <show_in_website>0</show_in_website>
                                <show_in_store>1</show_in_store>
                            </quicksearch_enabled>
                            <results_count translate="label comment">
                                <label>Results count</label>
                                <comment><!&#91;CDATA&#91;Quick search results count (min 1, max 20)&#93;&#93;></comment>
                                <frontend_type>text</frontend_type>
                                <sort_order>5</sort_order>
                                <show_in_default>1</show_in_default>
                                <show_in_website>0</show_in_website>
                                <show_in_store>1</show_in_store>
                            </results_count>
                        </fields>
                    </quicksearch>
                </groups>
            </atwix_shoppingbar>
        </sections>
    </config>
    Here is an illustration what means each of these terms:



    Next question is how will the different settings in the xml config look like. As you already know, each setting is placed in the node, then follows the unique setting’s id and finally – setting’s attributes. Here is a small review of the most useful settings:

    Text field
    Simple input field for short text values:


    HTML Code:
    <text_field translate="label">
        <label>Text Field</label>
        <frontend_type>text</frontend_type>
        <sort_order>10</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
    </text_field>

    Textarea

    Wide input field for long text values:



    HTML Code:
    <textarea translate="label">
        <label>Textarea</label>
        <frontend_type>textarea</frontend_type>
        <sort_order>20</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
    </textarea>


    Drop down with Yes/No values

    Drop down menu with the values “Yes” and “No”. Commonly it is used as a flag for enabling/disabling something:




    HTML Code:
    <enabled translate="label">
        <label>Enabled</label>
        <frontend_type>select</frontend_type>
        <source_model>adminhtml/system_config_source_yesno</source_model>
        <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>
    </enabled>


    Drop down with Enable/Disable values
    Almost the same as previous one, but instead of “Yes” and “No” you will get “Enable” and “Disable”:


    HTML Code:
    <active translate="label">
        <label>Enable/Disable</label>
        <frontend_type>select</frontend_type>
        <sort_order>40</sort_order>
        <source_model>adminhtml/system_config_source_enabledisable</source_model>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
    </active>

    Multiselect with custom values

    Field with the ability to select few items at the same time:





    File

    Allows to choose a file for uploading. In this example the file will be saved in var/uploads directory:




    HTML Code:
    <default translate="label">
        <label>Select</label>
        <frontend_type>select</frontend_type>
        <!-- Source model for countries list. For custom list you need to use your own source model -->
        <source_model>adminhtml/system_config_source_country</source_model>
        <sort_order>50</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
    </default>

    Time

    Is used to create three drop down menus for setting up the hours, minutes and seconds respectively:




    HTML Code:
    <multiselect translate="label">
        <label>Multiselect</label>
        <frontend_type>multiselect</frontend_type>
        <!-- Source model for countries list. For custom list you need to use your own source model -->
        <source_model>adminhtml/system_config_source_country</source_model>
        <sort_order>60</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
        <can_be_empty>1</can_be_empty>
    </multiselect>

    Editable items list

    Allows to add/remove text values for the setting:




    HTML Code:
    <addresses>
        <label>Blocked Email Addresses</label>
        <frontend_model>atwix_emailblocker/adminhtml_addresses</frontend_model>
        <backend_model>adminhtml/system_config_backend_serialized</backend_model>
        <sort_order>90</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
        <can_be_empty>1</can_be_empty>
    </addresses>

    Heading

    Is used to entitle some settings inside the group:



    HTML Code:
    <heading translate="label">
        <label>Heading</label>
        <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
        <sort_order>90</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
    </heading>
    Dependent field

    It can be any field. The main purpose of this one – it’s to hide/show the field depending on the state of some other field. In the following example the field depends on the field’s enablemethod state. Ifenablemethod value is 1 – dependent_field will appear and vice versa:

    HTML Code:
    <dependent_field translate="label">
        <label>Dependent Field</label>
        <frontend_type>textarea</frontend_type>
        <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>
        <depends>
            <enablemethod>1</enablemethod>
        </depends>
    </dependent_field>
    There is also one interesting cheat. You are able to use javascript inside of the node:

    HTML Code:
    <specificerrmsg translate="label">
        <label>Displayed Error Message</label>
        <frontend_type>textarea</frontend_type>
        <comment>
        <!&#91;CDATA&#91;
            <script type="text/javascript">
                Event.observe('carriers_flatrate_active', 'change', function() {
                    alert('Be careful with this one');
                })
            </script>
        ]]>
        </comment>
        <sort_order>2013</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
    </specificerrmsg>
    It might be useful for changing field’s value depending on different credentials. We would not recommend you to use it very often there, especially for the big javascript code.

    Moreover, as you might have noticed, there are some attributes like source_model for the custom drop downs or, all the more so, frontend model for editable list which may disappoint a bit. We are going to describe how to operate with these models in our next article, which will see the light in the nearest future. Thank you for reading us

    View more threads in the same category:


  2. #2
    New member
    Join Date
    Sep 2024
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    The thread on MagentoExpertForum provides an overview of Magento system settings, detailing configuration options and best practices for optimizing the platform.

Similar Threads

  1. Magento Design and Content Overview
    By ccvv in forum Template, Design, HTML, CSS, Javascript
    Replies: 18
    Last Post: 03-10-2019, 12:54 PM
  2. Magento system settings overview
    By david in forum Webmaster & Administrator
    Replies: 0
    Last Post: 03-04-2013, 06:41 AM
  3. Source, frontend and backend models in Magento system settings
    By speed2x in forum Programming & Development
    Replies: 2
    Last Post: 02-04-2013, 01:43 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •