一、模板引擎:

ECshop给我的第一印象是用的smarty模板引擎,可是很快就发现有些不一样,使用smarty模板引擎的系统通常会至少会包括smarty的核心文件:smarty.class.php、smarty_Compiler.php、config_File.class.php和debug.tpl,而在ECshop中并没用发现smarty的核心类。还是通过程序寻找答案吧,在前台或者后台的公用文件init.php中$smarty对象的初始化中,可以看到加载的模板引擎文件是cls_template.php,原来ECshop团队对smarty的核心部分做了整理及修改,这个引擎相对更加精简,但是使用的时候可能需要注意,不是所有的smarty语法都可以在ECshop中使用,要使用还需修改模板引擎。

二、数据处理:

ECshop根目录下及admin目录下的文件是对应前台、后台页面的数据处理页,在这些文件中对页面所要展示的内容进行处理,之后通过smarty的assign()方法注册变量,最后通过display()方法加载相应的模板文件。但这里我们需要注意ECshop单独封装的几个方法,用于处理模板的公共内容及页面中某些动态内容的加载。如lib_main.php中的assign_template()会设置我们的网店的公共信息及网站设置;assign_dynamic()方法则是设置该页面中的动态加载内容。当页面所需的变量设置完成后,进入smarty的display()方法。

三、解析模板

首先,在ECshop中有.dwt和.lbi两种格式的模板文件,那么这两种文件之间是什么关系呢?可以这样理解.dwt文件是针对前台每个显示页面的模板“框架”,而.lbi模板中则是对页面中公共“内容”的整理,每个.lbi文件都是页面中的一个模块。二者是怎样关联到一起的呢?在模板文件夹中有一个libs.xml文件,这里则是具体配置每个模板“框架”中可以显示哪些“内容”(具体内容之后谈及模板管理会细说)。

下面查看解析模板的过程,在.dwt文件中根据框架的设计会划分出几个“可编辑区域”,.lbi模板正是加载到“可编辑区域”中进行输出的。那么我们需要注意的是.dwt模板中的几对标签:

①这对标签就是“可编辑区域”标签,在这对标签之间输出的内容是可以通过模板管理进行设置的。主要是选择输出不同的.lbi文件。

②这对标签则是对相应的page_header.lbi文件的加载及输出。这个头部的模板每个页面都需要加载,如果我们想更改模板中的头部内容,只要修改page_header.lbi即可,大大提高了效率。

模板文件加载完成之后,即可通过smarty引擎解析smarty标签,完成模板的输出。

ectouch java_ectouch第七讲 之ECshop模板机制整理相关推荐

  1. ECshop 模板制作教程(转)

    授人以鱼,不如授人以渔,EC 就算作再多的模板,肯定也满足不了我们的需要,更何况各行有各行的门道,EC 统一做出来的模板也不一定合适于我们这个行业用,因此,只有 我们真正掌握了自己做模板.修改模板的功 ...

  2. 第七讲. 经典算法之贪心选择

    第七讲. 经典算法之贪心选择 1. 简介 2. 从一个简单例题开始 3. 一个稍难的题目 4. 最重要贪心算法(可作模板) 4.1 最小生成树 4.2 最短路 5. 最后说几句 1. 简介 贪心算法, ...

  3. ECSHOP模板堂教程之:目录结构

    2016 ecshop模板堂教程之:目录结构网站:知识库来源:网络收集----------- -------- ---------- ------------ ------ ------------- ...

  4. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-PnP和实践

      专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记- ...

  5. C++入门到精通 ——第七章 STL标准模板库大局观

    七.STL标准模板库大局观 Author: XFFer_ 先分享一本 <C++ 标准库 第二版> ,望在STL的道路上从入门到放弃!(开玩笑的啦,愈行愈远~) 链接: https://pa ...

  6. ecshop模板的原理分析

    模板的原理 类似Smarty/ECShop这类模板的原理如下图所示. 1.首先是编译模板ECShop/Smart是利用PHP引擎,所以编译的结果是一个PHP文件,其编译过程就是 将分隔符{}替换成PH ...

  7. python字典、列表、元祖使用场景_python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍...

    python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 元祖跟列表类似.只不过是有区别的. 如下: tuple(元祖英文) 跟列表类似, 元素不能 ...

  8. 高翔Slambook第七讲代码解读(特征点提取)

    前言:小白创建了一个微信公众号,主要面向学习视觉的小伙伴,分享一些学习过程中的感受和一些技术文章.公众号里文章也会更新在CSDN中,不过由于工作量较大,会出现一段时间的延时,感兴趣的小伙伴可以关注公众 ...

  9. ecshop入门第一步,替换ecshop模板的显示图片

    所有的都是模范默认模板来制作,所以应该参考默认模板的一些数据设置 1.找到themes\default\images文件夹下 screenshot.png 图片 默认如下: 在你的模板文件夹下新建一个 ...

最新文章

  1. 1小时学会:最简单的iOS直播推流(十一)spspps和AudioSpecificConfig介绍(完结)
  2. python读取大文件csv内存溢出_Python,内存错误,csv文件太大
  3. 常见的水平居中布局方式
  4. 3.2.3节:特权级
  5. java 原生数据类型的转换_Java基本数据类型转换分析
  6. android百分比扩展枯,Android 增强版百分比布局库 为了适配而扩展
  7. 使用wireshark抓包并进行网络协议分析
  8. apk去除签名验证工具安卓版_App 签名过期或泄露怎么办?别担心,Google 已经给出解决方案!...
  9. “返回指向栈空间的指针”的错误
  10. 深拷贝与浅拷贝深入理解
  11. 南宁计算机职业学校地址,南宁市第三职业技术学校
  12. 软件质量保证与测试(什么是图灵测试)
  13. 魅族手机Root之后如何恢复
  14. T1-商贸宝服务无法启动解决办法
  15. [老文档2016]一种后台管理智能杀进程的规则与方法
  16. 权力的游戏第七季在线观看(2017)
  17. 你了解 JDK 8 Stream 数据流效率吗?千万级数据量性能如何?
  18. 抢救DB2数据之终极工具:db2dart
  19. python判断汉字偏胖_python实现在线分词
  20. C#中break 和 continue 和 return在if语句和for循环中的区别

热门文章

  1. 关于EXCEL超级链接被禁止的解决方法
  2. 语言用加法实现加饭运算_面试官:这个经典的并发问题用 Go 语言如何实现?...
  3. 在VMware15中创建虚拟机安装ubuntu系统(超详细教程)
  4. 在VM虚拟机中 CentOS7安装VMware Tools(超级详解)
  5. SQL UPDATE SET FROM用法
  6. TSNE 有代码实现有附3D 2D效果图
  7. 百度的卡尔曼滤波的解释
  8. 用图解释RNN运行的部分过程
  9. 《预训练周刊》第38期: Transformer、BERT结构优化
  10. 深度复盘:AI 与脑科学的错位