您现在的位置是:首页 > cms教程 > ecshop商城教程ecshop商城教程
ecshop模板原理介绍
张枫震2025-01-10 13:59:00ecshop商城教程已有5人查阅
导读首先是编译模板 ECShop/Smart是利用PHP引擎,所以编译的结果是一个PHP文件,其编译过程就是将分隔符{}替换成PHP的标准分隔符<?PHP ?>
类似Smarty/ECShop这类模板的原理。
1.首先是编译模板 ECShop/Smart是利用PHP引擎,所以编译的结果是一个PHP文件,其编译过程就是将分隔符{}替换成PHP的标准分隔符<?PHP ?>,将$var替换成 echo $var; 或者print $var; 将其他的比如foreach和if等也替换成标准的PHP语法。 将{include file…}之类的则替换成标准的PHP的inlcude … 其余都是等效替换。
2.其次是生成编译结果
编译结果是PHP文件,并且编译结果可以重用,所以这种文件会存到临时缓存目录里面。
3.利用PHP引擎执行结果
输出HTML结果。
ECShop模板的原理ECShop的模板原理和上面基本类似,就是在编译的时候和Smarty模板有所修改,比较重要的有一下几点:
1. 模板的执行流程 2)$smarty->select (计 算每一个变量、表达式的结果,替换成标准PHP语法) 这一步是通过正则实现的,匹配每一个{},将结果传给 $smarty->select,改方法通过switch/case逐一分析,替换成对应的表达式。 【所以添加自定义标签、自定义表达式可以修改此处。】
3)$smarty->get_para $smarty->select通过调用get_para来实现获取具体变量的值。
4)$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等函数就在此处。
1.首先是编译模板 ECShop/Smart是利用PHP引擎,所以编译的结果是一个PHP文件,其编译过程就是将分隔符{}替换成PHP的标准分隔符<?PHP ?>,将$var替换成 echo $var; 或者print $var; 将其他的比如foreach和if等也替换成标准的PHP语法。 将{include file…}之类的则替换成标准的PHP的inlcude … 其余都是等效替换。
2.其次是生成编译结果
编译结果是PHP文件,并且编译结果可以重用,所以这种文件会存到临时缓存目录里面。
3.利用PHP引擎执行结果
输出HTML结果。
ECShop模板的原理ECShop的模板原理和上面基本类似,就是在编译的时候和Smarty模板有所修改,比较重要的有一下几点:
1. 模板的执行流程 2)$smarty->select (计 算每一个变量、表达式的结果,替换成标准PHP语法) 这一步是通过正则实现的,匹配每一个{},将结果传给 $smarty->select,改方法通过switch/case逐一分析,替换成对应的表达式。 【所以添加自定义标签、自定义表达式可以修改此处。】
3)$smarty->get_para $smarty->select通过调用get_para来实现获取具体变量的值。
4)$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等函数就在此处。
本文标签:
很赞哦! (0)
暂无内容 |
暂无内容 |
相关文章
暂无内容 |
暂无内容 |
随机图文
ecshop商品批发多属性多规格多库存怎么批量购买
原创ecshop商品批发多属性多规格多库存批量快速购买仿168*商品批发,适合专门做批发商城朋友,方便客户选择多属性多规格的商品批量购买快速购买。ecshop漏洞修复/flow.php SQL Injection Vul
ECSHOP的配送地址页面网页没有验证地区参数的有效性,存在sql注入漏洞,攻击者可利用火狐tamper data等插件修改提交到配送地址页面的post数据,造成未授权的数据库操作甚至执行任意代码ecshop前台英文后台中文怎么设置
通过后台设置实现前台英文。进入 后台 》系统设置 》商店设置 》基本设置,将系统语言选项设为 en_us ,确定保存。ecshop首页商品下怎么显示商品货号
ECSHOP首页有很多种商品,包括今日特价、精品推荐、新品上市、热卖商品、分类商品等,这里只讲解在“精品推荐、新品上市、热卖商品”三个栏目的商品下面显示商品货号的方法。
留言与评论 (共有 0 条评论) |