第七天
一、 Magento后台功能定制化实例测试:注册一个后台controller
1. 创建模块/YEMA/Admindev;
2. 配置模块config.xml文件,添加如下内容:
1 <admin> 2 <routers> 3 <adminhtml> 4 <args> 5 <modules> 6 <admindev before="Mage_Adminhtml">YEMA_Admindev_Adminhtml</admindev> 7 </modules> 8 </args> 9 </adminhtml> 10 </routers> 11 </admin>
注:以上配置中,我们使用自建模块下/controllers/Adminhtml文件夹来拓展Mage_Adminhtml的controllers文件夹。另外,通过使用before选项,使得Magento系统会先寻找我们制定模块文件夹中的控制器,之后,才会去查询Mage_Adminhtml模块。
3. 创建控制器/controllers/Adminhtml/Admindev/IndexController.php
1 class YEMA_Admindev_Adminhtml_Admindev_IndexController extends Mage_Adminhtml_Controller_Action{ 2 public function indexAction() { 3 $this->loadLayout(); 4 $this->renderLayout(); 5 return $this; 6 } 7 }
完成后,前端访问/index.php/admin/admindev_index/,结果如下:
注意:当为模块创建后台控制器时,一定要确保在controllers文件夹中所添加的Adminhtml/Modulename文件夹与Mage_Adminhtml已存在的控制器不要冲突。
强烈关注:以下配置方法并不推荐,这种配置方式会造成问题,当一个模块中同时设置了前台和后台的控制器时。
1 <admin> 2 <routers> 3 <YEMA_Admindev> 4 <use>admin</use> 5 <args> 6 <module>YEMA_Admindev</module> 7 <frontName>admindev</frontName> 8 </args> 9 </YEMA_Admindev> 10 </routers> 11 </admin>
二、 Magento后台功能定制化实例测试:拓展菜单
1. 在模块目录下新建/etc/adminhtml.xml文件,增加menu相关配置
1 <config> 2 <menu> 3 <system> 4 <children> 5 <admindev translate="title" module="admindev"> 6 <title>AdminDev</title> 7 <sort_order>10</sort_order> 8 <action>adminhtml/admindev_index</action> 9 </admindev> 10 </children> 11 </system> 12 </menu> 13 </config>
注:在<admindev>标签中有translate和module属性,当这两个属性被设置后,标题会使用admindev的helper类(/admindev/helper/Data.php)来翻译。
最终显示结果如下: