Magento Local Module 会覆盖 Community Module
2015-06-10 02:21
471 查看
当magento的一个页面不存在时 会显示一个404页面,是在
System => Configure => Web => Default pages =>
Default No-route URL : cms/index/noRoute
CMS No Route Page : 404 page
1) 在 app/code/comunity下创建module
Voyageone
Cms
controllers
IndexController.php
etc
config.xml
IndexController.php
<?php
require_once Mage::getModuleDir('controllers', 'Mage_Cms').DS.'IndexController.php';
class Voyageone_Cms_IndexController extends Mage_Cms_IndexController
{
/**
* Render CMS 404 Not found page
*
* @param string $coreRoute
*/
public function noRouteAction($coreRoute = null)
{
mage :: log(Mage::helper('core/url')->getHomeUrl().' first');
Mage::app()->getFrontController()->getResponse()
->setRedirect(Mage::helper('core/url')->getHomeUrl())
->sendResponse();
}
}
config.xml
<?xml version="1.0"?>
<config>
<modules>
<Voyageone_Cms>
<version>0.1</version>
</Voyageone_Cms>
</modules>
<frontend>
<routers>
<cms>
<args>
<modules>
<Voyageone_Cms before="Mage_Cms">Voyageone_Cms</Voyageone_Cms>
</modules>
</args>
</cms>
</routers>
</frontend>
</config>
app/etc/module 创建Voyageone_Cms.xml
<?xml version="1.0"?>
<config>
<modules>
<Voyageone_Cms>
<active>true</active>
<codePool>community</codePool>
</Voyageone_Cms>
</modules>
</config>
当访问页面 http://localhost/magento/cms/index/noRoute时 会发现页面重定向到首页
2. 同样在
app/code/local 下新建module
app/code/local/Devicom
Cms
controllers
InderxController.php
etc
config.xml
InderController.php
<?php
require_once Mage::getModuleDir('controllers', 'Mage_Cms').DS.'IndexController.php';
class Devicom_Cms_IndexController extends Mage_Cms_IndexController
{
/**
* Render CMS 404 Not found page
*
* @param string $coreRoute
*/
public function noRouteAction($coreRoute = null)
{
mage :: log( Mage::getBaseUrl(). 'women/new-arrivals.html' ." second");
Mage::app()->getFrontController()->getResponse()
->setRedirect(Mage::getBaseUrl(). 'women/new-arrivals.html')
->sendResponse();
}
}
config.xml:
<?xml version="1.0"?>
<config>
<modules>
<Devicom_Cms>
<version>0.1</version>
</Devicom_Cms>
</modules>
<frontend>
<routers>
<cms>
<args>
<modules>
<Devicom_Cms before="Mage_Cms">Devicom_Cms</Devicom_Cms>
</modules>
</args>
</cms>
</routers>
</frontend>
</config>
app/etc/modules
Devicom_Cms.xml
<?xml version="1.0"?>
<config>
<modules>
<Devicom_Cms>
<active>true</active>
<codePool>local</codePool>
</Devicom_Cms>
</modules>
</config>
3. 当再次去访问页面http://localhost/magento/cms/index/noRoute时 显示的是 'women/new-arrivals.html‘
当查看system.log时 发现 first没有出现 而是second.
所以magento很聪明 知道哪个Module会被访问,而community下的CMS模块不在被执行。
System => Configure => Web => Default pages =>
Default No-route URL : cms/index/noRoute
CMS No Route Page : 404 page
1) 在 app/code/comunity下创建module
Voyageone
Cms
controllers
IndexController.php
etc
config.xml
IndexController.php
<?php
require_once Mage::getModuleDir('controllers', 'Mage_Cms').DS.'IndexController.php';
class Voyageone_Cms_IndexController extends Mage_Cms_IndexController
{
/**
* Render CMS 404 Not found page
*
* @param string $coreRoute
*/
public function noRouteAction($coreRoute = null)
{
mage :: log(Mage::helper('core/url')->getHomeUrl().' first');
Mage::app()->getFrontController()->getResponse()
->setRedirect(Mage::helper('core/url')->getHomeUrl())
->sendResponse();
}
}
config.xml
<?xml version="1.0"?>
<config>
<modules>
<Voyageone_Cms>
<version>0.1</version>
</Voyageone_Cms>
</modules>
<frontend>
<routers>
<cms>
<args>
<modules>
<Voyageone_Cms before="Mage_Cms">Voyageone_Cms</Voyageone_Cms>
</modules>
</args>
</cms>
</routers>
</frontend>
</config>
app/etc/module 创建Voyageone_Cms.xml
<?xml version="1.0"?>
<config>
<modules>
<Voyageone_Cms>
<active>true</active>
<codePool>community</codePool>
</Voyageone_Cms>
</modules>
</config>
当访问页面 http://localhost/magento/cms/index/noRoute时 会发现页面重定向到首页
2. 同样在
app/code/local 下新建module
app/code/local/Devicom
Cms
controllers
InderxController.php
etc
config.xml
InderController.php
<?php
require_once Mage::getModuleDir('controllers', 'Mage_Cms').DS.'IndexController.php';
class Devicom_Cms_IndexController extends Mage_Cms_IndexController
{
/**
* Render CMS 404 Not found page
*
* @param string $coreRoute
*/
public function noRouteAction($coreRoute = null)
{
mage :: log( Mage::getBaseUrl(). 'women/new-arrivals.html' ." second");
Mage::app()->getFrontController()->getResponse()
->setRedirect(Mage::getBaseUrl(). 'women/new-arrivals.html')
->sendResponse();
}
}
config.xml:
<?xml version="1.0"?>
<config>
<modules>
<Devicom_Cms>
<version>0.1</version>
</Devicom_Cms>
</modules>
<frontend>
<routers>
<cms>
<args>
<modules>
<Devicom_Cms before="Mage_Cms">Devicom_Cms</Devicom_Cms>
</modules>
</args>
</cms>
</routers>
</frontend>
</config>
app/etc/modules
Devicom_Cms.xml
<?xml version="1.0"?>
<config>
<modules>
<Devicom_Cms>
<active>true</active>
<codePool>local</codePool>
</Devicom_Cms>
</modules>
</config>
3. 当再次去访问页面http://localhost/magento/cms/index/noRoute时 显示的是 'women/new-arrivals.html‘
当查看system.log时 发现 first没有出现 而是second.
所以magento很聪明 知道哪个Module会被访问,而community下的CMS模块不在被执行。
相关文章推荐
- Unity开发者总结的5点工作经验
- Unity3D脚本中Start()和Awake()的区别
- Unity3D vuforia SDK 预制物体各组件功能说明
- unity5, import fbx注意事项
- Unity3D NGUI如何在UI上显示3D模型
- Unity教程之手把手教你Animator状态机如何切换状态
- Unity教程之手把手教你实现动画Animation
- unity3d所要知道的基础知识体系大纲
- unity3d中,数字转换成字符串的方法
- Unity3D游戏开发之使用Mecanim动画系统控制2D动画
- android Unity3D 游戏修改基础篇
- Unity协程(Coroutine)原理深入剖析
- Unity3D面试题
- unity 调用外部摄像机(c#)
- Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译。
- unity导出android studio工程方法
- 【Unity3D】与Android相互传递消息
- unity3d出镜率最高的面试题
- Unity3D脚本编程--基本概念
- Unity3D中的Coroutine详解