2011-12-06 68 views
10

我正在開發Magento 1.6中的自定義SMS模塊。管理中的自定義Magento配置中的404錯誤

我已經設置了system.xml文件來管理相關的自定義配置字段。

菜單項出現,但是當我點擊它時,會顯示404錯誤頁面而不是預期的配置字段列表。

你能在我的代碼中看到任何錯誤嗎?

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

Ben的請求後,我們放在adminhtml.xml文件。我放置了XML文件的內容。

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

但直到404錯誤出現...

+0

To f ind確切的錯誤:這爲我工作http://pradhab.blogspot.com/2013/03/magento-404-error.html試試這個 –

+1

請不要提供「僅鏈接」的答案(如果頁面會發生什麼在遠程站點被取下?)。如果外部內容相關,請將步驟/代碼添加到您的答案中,並且可以引用該來源作爲額外的註釋。 – newfurniturey

回答

36

404錯誤在系統配置往往意味着有一個與ACL的問題。你很可能會丟失在你的模塊的adminhtml.xml文件中相應的ACL節點:

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

添加你上面後,將需要註銷併爲完整的管理角色的用戶重新登錄,並明確添加此角色的自定義管理員用戶角色。

+0

我放置了adminhtml.xml文件並按照您的指示操作。但直到它404錯誤。 –

+0

你可以在任何地方粘貼你的代碼嗎? – benmarks

+1

你是對的Ben,我的代碼中有一些錯誤。現在它正在工作。謝謝你的幫助。 –

2

不要低估需要註銷然後在進行ACL更改後重新登錄。即使你清除緩存,你仍然會404,直到註銷並重新登錄。

3

做什麼@benmarks說加上一定要添加正確的兒童(你的情況)smsconfig

(@benmarks使用sms_config代替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> 
</...> 

清除緩存,管理員註銷,管理員登陸==工作

提示:如果你看看404在t他URL(當你點擊你的選項卡上):

​​

此網址似乎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"> 
<!-- ... --> 

所以你adminhtml.xml將如下所示:

<!-- 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>