Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

404 error in Custom Magento configuration in admin

I'm developing a custom SMS module in Magento 1.6.

I've setup the system.xml file to manage the related custom configuration fields.

The menu entry shows up, but when I click it, a 404 error page is shown instead of the expected configuration fields list.

Can you see any errors in my code?

<config>
<tabs>
    <mynew_tab translate="label">
        <label>SMS Gateway Integration</label>
        <sort_order>100</sort_order>
    </mynew_tab>
</tabs>
<sections>
    <smsconfig  translate="label">
        <label>SMS Gateway Integration</label>
        <sort_order>200</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
        <tab>mynew_tab</tab>
        <groups>
            <sms_group translate="label">
                <label>My Custom Configurations</label>
                <comment>This is example of custom configuration.</comment>
                <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>
                <fields>
                    <sms_enabled translate="label tooltip comment">
                        <label>Is Enabled</label>
                        <frontend_type>select</frontend_type>
                        <source_model>adminhtml/system_config_source_yesno</source_model>
                        <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>
                        <comment>Enable this module.</comment>
                    </sms_enabled>
                    <sms_username translate="label tooltip comment">
                        <label>Sender Email</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>
                        <comment>Username of the SMS gateway.</comment>
                    </sms_username>
                    <sms_password translate="label tooltip comment">
                        <label>Sender Email</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>
                        <comment>Password of the SMS gateway.</comment>
                    </sms_password>
                </fields>
            </sms_group>
        </groups>
    </smsconfig>
</sections>

After ben's request, we placed the adminhtml.xml file. I placed the content of the XML file.

<config>
<acl>   
    <resources>
        <admin>
            <children>
                <system>
                    <children>
                        <config>
                            <children>
                                <sms translate="title" module="sms">
                                    <title>SMS Gateway Section</title>
                                </sms>
                            </children>
                        </config>
                    </children>
                </system>
           </children>
       </admin>
   </resources>
</acl>

But till the 404 error comes...

like image 971
Sankar Subburaj Avatar asked Dec 06 '11 10:12

Sankar Subburaj


People also ask

How do I find my Magento admin URL?

Default Base URL: http://yourdomain.com/magento/ Default Admin URL and Path: http://yourdomain.com/magento/admin.


3 Answers

A 404 error in system configuration often means that there is an issue with ACL. You are likely missing the appropriate acl node in your module's adminhtml.xml file:

<acl>
    <resources>
        <admin>
            <children>
                <system>
                    <children>
                        <config>
                            <children>
                                <smsconfig> <!-- translate="title" module="sms_config" if appropriate and depending on config -->
                                    <title>Your Section</title>
</...>

After adding the above you will need to log out and log back in for full admin role users and explicitly add this role to custom admin user roles.

like image 164
benmarks Avatar answered Oct 26 '22 00:10

benmarks


Do what @benmarks said plus be sure to add the right children (in your case) smsconfig

(@benmarks used sms_config instead of smsconfig)

<!-- namespace/modulename/etc/adminhtml.xml -->
<acl>
    <resources>
        <admin>
            <children>
                <system>
                    <children>
                        <config>
                            <children>
                                <smsconfig> <!-- translate="title" module="sms_config" if appropriate and depending on config -->
                                    <title>Your Section</title>
</...>

clear cache, admin logout, admin login == works

Hint: If you get 404 look at the url (when you clicked on your tab):

/index.php/admin/system_config/edit/section/mymodulename_something/...

This url seems to point to mymodulename_something:

<!-- namespace/modulename/etc/system.xml -->
<?xml version="1.0"?>
<config>
    <tabs>
        <mymodulename translate="label" module="mymodulename">
            <label>MyModuleName Awesome Label</label>
            <sort_order>1</sort_order>
        </mymodulename>
    </tabs>
    <sections>
        <mymodulename_something translate="label" module="mymodulename">
<!-- ... -->

so your adminhtml.xml would look like:

<!-- namespace/modulename/etc/adminhtml.xml -->
<?xml version="1.0"?>
<config>
    <acl>
        <resources>
            <admin>
                <children>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <mymodulename_something translate="title" module="mymodulename">
                                        <title>have no idea where this is showing up btw</title>
                                    </mymodulename_something>
                                </children>
                            </config>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>
</config>
like image 21
cottton Avatar answered Oct 25 '22 23:10

cottton


Don't underestimate the need to log out and then log back in after making ACL changes. Even if you clear your cache, you will still 404 until you log out and log back in.

like image 34
Jimmy Pelton Avatar answered Oct 25 '22 23:10

Jimmy Pelton