怎么把ECshop 做成英文版?
怎么把ECshop 做成英文版? ecshop的模板制作 最近给一个客户制作一个ecshop的英文模板,头都给弄大了,不是因为自己的鸟语没有学好,而是ecshop的模板制作方式实在让人有点不惬意。之前基本上没有怎么接触过php,不过对php还是蛮有好感的,打算下一步的程序开发转向php的,只是最近太忙了没有时间而已。这次做这个模板,本以为应该蛮简朴的,但是echsop偏偏把本来很简朴的东西做得很复杂,程序的代码也是,至少从我看到的那些代码来看是一点美感都没有。 首先,是要做一个英文的语言包,从网上下载了一个英文的语言包,不过版本是比较低的,而我肯定是要用最新版的程序,怎么办呢,手动一个一个检测区别,那是吃力不讨好的事情,所以我就写了个小程序,直接用旧的语言包当做数据源来翻译新的语言包,然后在手动修改一些新版本多出来的语言项目,很轻松就把语言包搞定了,然后就可以开始制作模板了,开始看到ecshop的模板,感觉蛮像那个Smarty的,因为以前有听说过Smarty这个东东,于是就先弄了个Smarty的手册看来下,手册上的东西还真不少,感觉就像是让你再学一门程序语言一样,不过还好,只是制作模板,只关注前台可能用到的东西就行了,Smarty模板引擎的有些地方还真不错的,可以借鉴一下,比如那个cycle函数我就很喜欢,相称于WTOX CMS的模板引擎中的 {['a','b'][$this.index%2]} 。一般模板引擎最重要的就是if和for语句的实现了,这点上Smarty的foreach我感觉功能太弱了点,还好它还有个section,原来是ecshop并不是使用的Smarty的模板引擎,而是修改过的或者说是简化过的Smarty,有很多的功能这里并没有得到支持。 哎,其实要做的那个模板功能很简朴,但是ecshop的结构导致它只能在他的模板基础框框里面做减法,比如想要在所有页面的左侧部分加一个随机显示产品的模块就没有办法了,因为ecshop的程序页面没有提供对应的变量输出,难道一个一个的就修改程序,好像太不人道了。WTOX CMS的模板 {loop variable="getNewGoods(3, 'best')"}的循环变量是可以用函数代替变量的,这里的foreach是不是也行了,这个手册里面没有提到过,试了下,发现有些情况下是行的,比如 {foreach from=get_new_goods(1) item=goods} 有些情况下又不行,会报错,比如: {foreach from=get_new_goods(1,'rnt') item=goods} 搞不明白,也没能找到对应的解释。为了适应这种不确定性,最后只好修改ecshop的一些原始的函数(这个是最不应该,不利于以后升级),最终才总是实现了要的效果。 最后说一下ecshop的缓存机制:ecshop在修改模板后,缓存会从新生成,通过判断缓存的修改时间和文件的最后修改时间来实现的,这样做模板的时候的确会方便一点,但是使用的时候觉得会多一层负担,所有后来改成了手动更新模板缓存,因为一般一个网站做好以后就不太会去修改模板了,每次都去判断有点浪费资源。
(责任编辑:admin) |
- 上一篇:ECShop模板制作详细文件结构图
- 下一篇:ecshop模板开发之系统框架结构

