Magento: Add configuration menu item in the admin configrations

To add a configuration menu for a custom module in the admin configurations, you create or modify 4 files, adminhtml.xml, system.xml, config.xml and Data.php.
For demonstration, we will add a configuration menu item for an existing helloworld module and you can use the configuration page
in the admin panel to set the greeting text.

1. app/local/MyExtensions/Helloworld/etc/adminhtml.xml
[code language=”xml”]
<?xml version="1.0" encoding="UTF-8"?>
<config>
<acl>
<resources>
<admin>
<children>
<system>
<children>
<config>
<children>
<helloworld_setting>
<title>Hello World</title>
</helloworld_setting>
</children>
</config>
</children>
</system>
</children>
</admin>
</resources>
</acl>
</config>
[/code]

2. app/local/MyExtensions/Helloworld/etc/system.xml
[code language=”xml”]
<?xml version="1.0" encoding="UTF-8"?>
<config>
<tabs>
<helloworld translate="label" module="helloworld">
<label>Hello World</label>
<sort_order>99999</sort_order>
</helloworld>
</tabs>
<sections>
<helloworld_setting translate="label" module="helloworld">
<label>Settings</label>
<tab>helloworld</tab>
<frontend_type>text</frontend_type>
<sort_order>99</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<groups>
<greeting_settings translate="label">
<label>Greeting Settings</label>
<frontend_type>text</frontend_type>
<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>
<fields>
<enabled translate="label">
<label>Enabled</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<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>
</enabled>
<greeting translate="label,comment">
<label>Greeting</label>
<frontend_type>text</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>
<comment>Greeting text.</comment>
</greeting>
</fields>
</greeting_settings>
</groups>
</helloworld_setting>
</sections>
</config>
[/code]

3. app/local/MyExtensions/Helloworld/etc/config.xml, you need to add the below in the global tag to specify the helper class
[code language=”xml”]
<helpers>
<helloworld>
<class>MyExtensions_Helloworld_Helper</class>
</helloworld>
</helpers>
[/code]

4. app/local/MyExtensions/Helloworld/Helper/Data.php, this file can be empty but it just have to be there in order to be able to navigate to the helloworld configration page.
[code language=”php”]
<?php
class MyExtensions_Helloworld_Helper_Data extends Mage_Core_Helper_Abstract {

}
?>
[/code]

5. Clear the cache if you haven’t done so.

6. With the above 4 files in place and the cache cleared. We can now go to the helloworld configuration page by
Login to Admin Panel as an adminstrator -> System -> Configuration -> Settings under Hello World in the left Configuration menu -> Greeting Settings -> Enter some greeting text -> Save Config

7. To get the text we set in step 6.
[code language=”php”]
//sectionName/groupName/fieldName
echo Mage::getStoreConfig(‘helloworld_setting/greeting_settings/enabled’);
echo Mage::getStoreConfig(‘helloworld_setting/greeting_settings/greeting’);
[/code]

Search within Codexpedia

Custom Search

Search the entire web

Custom Search