共计 3553 个字符,预计需要花费 9 分钟才能阅读完成。
magento功能很强,但是对于大部分功能,我们基本上不用,比如很多国外的支付模块,运费模块.不要只是简单的在后台进行关闭.我使用magneto最新版的代码为基础,试图定制精简出一个精简的版本.下面是我的步骤:
1.从后台关闭如下模块,保存后清空缓存测试下各个功能,目前没有发现问题
Mage_AdminNotification
Mage_Api
Mage_Bundle
Mage_Centinel
Mage_Downloadable
Mage_GiftMessage
Mage_Tax
(上述两个模块,虽然catalog模块不依赖于这两个模块,也就是说前台没有问题,但是在编辑产品时会用到。所以可以考虑在产品上线后,关闭,当然如果你有耐心,可以修改后台的模板,删除掉对这两个模块的block及相关model的引用。)
Mage_GoogleBase
Mage_GoogleCheckout
Mage_GoogleOptimizer
Mage_Install
Mage_PaypalUk
Mage_Poll
Mage_Usa
Phoenix_Moneybookers
2.修改模块配置文件,彻底关闭模块,这样的作用可不只是说减少了对这些文件的分析,同时这些模块对应的layout文件,也不会被加载.
进入app/etc/modules目录,删除如下模块的配置文件
Mage_Api.xml,Mage_Bundle.xml,Mage_Centinel.xml,Mage_Downloadable.xml,Mage_Weee.xml,Phoenix_Moneybookers.xml
编辑Mage_All.xml,彻底关闭如此这些模块:
Mage_AdminNotification
Mage_Api
Mage_Bundle
Mage_Centinel
Mage_Downloadable
Mage_GiftMessage
Mage_GoogleBase
Mage_GoogleCheckout
Mage_GoogleOptimizer
Mage_Install
Mage_PaypalUk
Mage_Poll
Mage_Usa
修改app/etc/local.xml ,禁用local code pool中的模块.通常没用到.
清除缓存后,测试各项功能,正常.
3.清除page.xml,关于js文件,我删除了大部分,最后只保留了
<action method=”addJs”><script>prototype/prototype.js</script></action>
<action method=”addJs”><script>prototype/validation.js</script></action>
<action method=”addJs”><script>varien/js.js</script></action>
<action method=”addJs”><script>varien/form.js</script></action>
<action method=”addJs”><script>varien/menu.js</script></action>
<action method=”addJs”><script>mage/cookies.js</script></action>
清除了:
<action method=”addJs” ifconfig=”dev/js/deprecation”><script>prototype/deprecation.js</script></action>
<action method=”addJs”><script>lib/ccard.js</script></action>
<action method=”addJs”><script>scriptaculous/builder.js</script></action>
<action method=”addJs”><script>scriptaculous/effects.js</script></action>
<action method=”addJs”><script>scriptaculous/dragdrop.js</script></action>
<action method=”addJs”><script>scriptaculous/controls.js</script></action>
<action method=”addJs”><script>scriptaculous/slider.js</script></action>
<action method=”addJs”><script>mage/translate.js</script></action>
<block type=”page/html_notices” name=”global_notices” as=”global_notices” template=”page/html/notices.phtml” />
同时还需要在相应的模板文件(涉及到head.phtml,主模板文件[1column.pthml,2column- left.phtml…]),删除掉对traslate和global notice的调用。另外,由于magento的mini search form block的ajax search autocomplete依赖于scriptaculous的control.js,所以如果去除掉这个文件,则就没有了ajax search autocomplte功能,同时还需要清除其它对应的模板文件。我是觉得这个功能基本上不是很重要。注:根据自己的实际情况,清除相关的layout设置。另外,其实也可以考虑从CDN(如google)上加载prototype.js等相关文件。以获得更好的速度。比如,magento 1.4.1.1中,使用的prototype.js的版本是1.6.0.3。可以删除掉调用,而直接在head.phtml中加入:
<script type = “text/javascript” src = “http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js ” ></script>
其它的可清除BLOCK:
<block type=”page/switch” name=”store_language” as=”store_language” template=”page/switch/languages.phtml”/>
[header.phtml]
<?php echo $this->getChildHtml(‘store_language’) ?>
<block type=”page/switch” name=”store_switcher” as=”store_switcher” template=”page/switch/stores.phtml”/>
[footer.phtml]
<?php echo $this->getChildHtml(‘store_switcher’) ?>
4.清除catalog模块无用的block.当然这边是指大部分通常不会用到的功能.magento产品有几种类型,而通常我们用的是simple,所以,可以清除掉所有其它的产品类型相关的layout设置.(清除掉所有 configurable,grouped,virtul)
5.清除无用的支付模块。这个其它之前的步骤中有做了一些,比如清除google checkout模块。这个步骤在最新版中是不会有问题的,但是在从旧版升级上来的版本中就存在问题。如果只是单纯的关闭掉,则前台的onepage checkout会出现:
Fatal error : Call to a member function setStore() on a non-object in app/code/core/Mage/Payment/Helper/Data.php on line 72
解决这个问题倒也不难。进数据库中的core_config_data表删除掉相应的配置选项,清空缓存就可以了。
注:我是想到什么就测试实施,做到哪一步就记录
6.magento中最重要最核心用的最多的恐怕要数产品模块,其中包括分类列表页和产品查看页。列表页,我觉得可以根据实际考虑是否取消掉list/grid模式的一种,只保留一种,每页显示产品数只留两个选项,一个是每页N个,一个是显示全部。甚至可以不要提这个工具栏。我不知道减少一个block省掉的时间是不是肉眼能看的见,但是肯定会减少,至少会减少发多不必要的调用。何况是清除掉多个block