我正在使用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;配置...
那么大家可以帮我在管理面板中创建一个新标签吗?
提前致谢!
答案 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;从您的模块加载类前缀,您的模块配置不完整,有错误或使用旧版本缓存,并且必须清除配置缓存。