Magento - 配置部分中的Adminhtml新自定义选项卡未显示

时间:2015-02-05 21:36:06

标签: magento admin adminhtml

我正在使用Magento 1.9.0.1,现在我正在开发一个新的扩展程序,我想在管理面板中添加带有标签的新模块。

以下是我迄今所做的事情:

/app/code/community/VivasIndustries/SmsNotification/etc/config.xml:

<?xml version="1.0"?>
<config>
  <modules>
    <VivasIndustries_SmsNotification>
      <version>0.1.0</version>
    </VivasIndustries_SmsNotification>
  </modules>
  <global>
    <models>
        <smsnotification>
            <class>VivasIndustries_SmsNotification_Model</class>
        </smsnotification>
    </models>  
    <events>
        <sales_order_save_after>
            <observers>
                <vivasindustries_smsnotification>
                    <class>smsnotification/observer</class>
                    <method>orderSaved</method>
                </vivasindustries_smsnotification>
            </observers>
        </sales_order_save_after>
    </events>
  </global>
  <adminhtml>
    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <vivas>
                                        <title>Vivas - All</title>
                                    </vivas>
                                </children>
                            </config>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>
</adminhtml>
</config>  

以下是我所拥有的: /app/code/community/VivasIndustries/SmsNotification/etc/system.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <tabs>
        <vivas translate="label" module="vivasindustries_smsnotification">
            <label>Vivas Extensions</label>
            <sort_order>100</sort_order>
        </vivas>
    </tabs>
    <sections>
        <vivas translate="label" module="vivasindustries_smsnotification">
            <label>Extension Options</label>
            <tab>vivas</tab>
            <sort_order>1000</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>

            <groups>
                <vivas_group translate="label" module="vivasindustries_smsnotification">
                    <label>My Extension Options</label>
                    <frontend_type>text</frontend_type>
                    <sort_order>1000</sort_order>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>

                    <fields>
                        <vivas_input translate="label">
                            <label>My Input Field: </label>
                            <comment>My Comment</comment>
                            <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>
                        </vivas_input>
                        <vivas_select translate="label">
                            <label>My Dropdown: </label>
                            <comment>Source model provider Magento's default Yes/No values</comment>
                            <frontend_type>select</frontend_type>
                            <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>
                            <source_model>adminhtml/system_config_source_yesno</source_model>
                        </vivas_select>
                    </fields>
                </vivas_group>
            </groups>
        </vivas>
    </sections>
</config>

以下是我所拥有的:/app/code/community/VivasIndustries/SmsNotification/Helper/Data.php:

<?php
class VivasIndustries_SmsNotification_Helper_Data extends Mage_Core_Helper_Abstract 
{

}

完成此操作后,当我打开管理面板时收到以下错误:

致命错误:Class&#39; Mage_Vivasindustries_Smsnotification_Helper_Data&#39;在第547行的/home/superweb/public_html/store/app/Mage.php中找不到

当我将文件夹SmsNotification的名称更改为Smsnotification时,此错误消失了,但系统中有任何新标签 - &gt;配置...

那么大家可以帮我在管理面板中创建一个新标签吗?

提前致谢!

1 个答案:

答案 0 :(得分:3)

您忘了在config.xml中为模块定义辅助别名。它应该与模型的形式相同:

  <global>
    <helpers>
        <smsnotification>
            <class>VivasIndustries_SmsNotification_Helper</class>
        </smsnotification>
    </helpers>
    ...

此外,在指定用于翻译的模块时,您必须在system.xml中使用相同的别名:

module="smsnotification"

要解释发生的事情: Magento找不到别名&#34; vivasindustries_smsnotification&#34;的助手,因此它会回退到Mage命名空间使用大写字母作为模块的给定别名(不,我从未见过这将是期望的行为的情况,但这是它的工作原理)。这导致Mage_Vivasindustries_Smsnotification_Helper_Data作为辅助类名,无法找到。

作为一般规则:如果Magento尝试使用&#34; Mage _&#34;从您的模块加载类前缀,您的模块配置不完整,有错误或使用旧版本缓存,并且必须清除配置缓存。