magento,很奇特,很虚无的开源系统,略带一点小孩子脾气,至于你信不信,反正,我是信了!!!
给magento做个功能吧,在phtml,block都是可以写php代码,调用magento函数的,所以,在phtml文件里使用
Mage::app()->getRequest()->getModuleName()
然后使用Mage::registry("")得到一些前面的数据,
$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
得到URL的地址。
关闭缓存一点问题没有,开启缓存,妈逼就是不行,registry就是不好用
产品详细页面使用Mage::app()->getRequest()->getModuleName()得到的不是catalog,而是cms,
$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];得到的不是当前的url,而是app/etc/local.xml,
清空缓存,session,关闭编译功能,还是不行!关闭缓存的话,一切正常
非常难以理解,所以把文件拷贝下来,测试,正常,上别的服务器测试,还是正常,难道是服务器的配置的原因嘛?
然后我在当前服务器建立一个子文件夹,数据库复制一份,测试,还是正常!!!
magento的核心代码让我改动不少,难道这里有问题?吧core/mage的文件,全部还原,还是不行,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
实在费解,难以理解,但是最后解决了
原来footer是做了缓存的一个block,所以去里面吧consturct方法,cachekey方法删除,然后
<block type="blockcache/blockcachehomefooter" name="footer" as="footer" template="page/html/footer.phtml">
改为:
<block type="page/html_footer" name="footer" as="footer" template="page/html/footer.phtml">
然后OK,好了,看来在缓存的block中,还是少写magento系统函数方法为妙,但是别的服务器为什么没有问题呢?
没有原因,找不出来,至于你信不信,反正,我是信了!!!