永发信息网

ecshop用的是什么模板引擎

答案:2  悬赏:30  手机版
解决时间 2021-01-20 13:18
ecshop用的是什么模板引擎
最佳答案
类似Smarty/ECShop这类模板的原理

1. 首先是编译模板
  ECShop/Smart是利用PHP引擎,所以编译的结果是一个PHP文件,其编译过程就是将分隔符{}替换成PHP的标准分隔符,将$var替换
成echo $var; 或者print $var;将其他的比如foreach和if等也替换成标准的PHP语法。将{include
file…}之类的则替换成标准的PHP的inlcude …其余都是等效替换。
2. 其次是生成编译结果
  编译结果是PHP文件,并且编译结果可以重用,所以这种文件会存到临时缓存目录里面。

3. 利用PHP引擎执行结果

ECShop的模板原理和上面基本类似,就是在编译的时候和Smarty模板有所修改,比较重要的有以下几点:

1. 模板的执行流程
  $smarty->display $smarty->fetch返回HTML结果(所有模板)
  $smarty->fetch_str (先编译成PHP、在给变量赋值、计算结果)
  $smarty->smarty_prefilter_preCompile(编译成PHP)
  $smarty->select(计 算每一个变量、表达式的结果,替换成标准PHP语法)
  这一步是通过正则 实现的,匹配每一个{},将结果传给 $smarty->select,改方法通过switch/case逐一分析,替换成对应的表达式。
  $smarty->get_para $smarty->select通过调用get_para来实现获取具体变量的值。
  $smarty->get_val而$smarty->get_para通过get_val来计算最终变量的值。
  $smarty->_eval替换成标准的PHP文件后通过eval来执行结果。

2. Lbi文件替换
  在dwt文件中,类似这样代码中间的所有的代码 被替换成一个 {include file /library/xx.lbi}

3. Editable的region替换
  在dwt文件中,类似中间的内容,都被动态替换。

替换原理
  首先是get_dyna_libs($theme $tmp)函数得到当前theme下$tmp文件的所有动态区域,该函数读取数据库中的记录,按照后台设置的顺序排序。
  返回的每个区块有三个参数,ID、Number、Type。
  ID是标识,Number表示插入的个数,Type有1、2、3、4,分别代表:分类的商品、品牌的商品、文章列表、广告位。
  然后把每个里面的内容全部替换。

4. 自定义函数等
  如上面所说,想增加自定义函数必须修改cls_template中的get_val方法(可以继承),添加一些模板的自定义标签,需要修改
cls_template 中的select方法,比如ECShop中自定 义的insert、insert_script等函数就在此处。
全部回答
没有用模板引擎,是自己开发的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
宾得K50已经发布接近两年,现在还值得购买吗
设置根目录下的config.php文件中连接数据库信
DJ_remix是什么意思?
电焊机的型号代表什么意思?
重庆天友奶业的奶源在哪?
闽清人为什么都喜欢把房子建在路边,原来是因
请教一些关于跃层装修的问题,户型是1跃2的
鱼鳞燕什么时候开口
本人现在很纠结,前两天看22号的从南昌到三亚
学会拒绝①溪流拒绝了湖泊的挽留,把活力送到
急求:EN10130 DC01和DC03进口材料的材质证明
沪渝高速341公里是什么地方
被售楼部忽悠虚报房价少交契税现在怎么办
湖南师范大学出版社小学英语5年级寒假作业答
海鸭蛋好在哪里,凭什么一个要三四块钱
推荐资讯
安卓哪个桌面软件好用
家里飞进红点颜鸟意味着什么
家装阳台浴缸上面可不可以做榻榻米
快手的小明哥 是谁
奥迪q7钢头上的进气孔上的卡板怎么装
美国东部访学一年大概要花费多少钱
女孩子裤子上为何也有拉链
想买个户外监控,监控果园的,面积很宽,买的
马豆尖能不能和虾一起吃
4.7英寸和5.0英寸差多少厘米
自已的床被别的男女睡了有什么不好
双性恋怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?