写过ecshop模板的人都晓得,他们是用所谓的dwt的文件来嵌套lbi文件进行模板的彼此调用。在咱们调取数据的时分,ecshop的默许模板只提供给咱们几个简略的句子进行调用,那么有没有办法能够把这个精简的cls_template类添加其他的句子呢?

首要断定版别:ECShop v2.7.3

通过近一天对ecshop程序的研讨,发现这个所谓的cls_template类,其实是一个精简版的smarty,而且值得幸亏的是,这个cls_template类没有包括其他的文件。那么咱们完全能够将官方smarty直接拿来用。断定了这一点,剩余的就是看ECShop在哪里运用这个cls_template类了。

翻开index.php,咱们发现他里边有这样一句话:

  1. require(dirname(__FILE__).'/includes/init.php');

所以咱们找到这个文件,找到创立的那个cls_template类,代码如下:

  1. require(ROOT_PATH .'includes/cls_template.php');
  2. $smarty =new cls_template;

这里发现他们创立了一个smarty的一个目标,其实咱们写的模板中一切能用的标签都是用这个的。

我这里不说废话了,直接给办法了。

仿制一份init.php 为 init_x.php ,在根目录的 index.php 中,将:

  1. require(dirname(__FILE__).'/includes/init.php');

改为:

  1. require(dirname(__FILE__).'/includes/init_x.php');

即可。原因是还有其他地方运用了init.php,直接修正的话,会形成不行预知的成果。

如今去官方下载一个smarty模板,这里用的是2.6的版别(3.1的版别试过,有错。估量ecshop其时用的是2.6兼容的,别问我为啥。),放在include的文件夹里,而且在init_x.php中包括当时的原生smarty类而且用Smarty类交换之前的cls_template类,代码如下:

  1. /* 获得当时ecshop地点的根目录 */
  2. define('ROOT_PATH', str_replace('includes/init_x.php','', str_replace('\\','/', __FILE__)));
  1. /* 创立 Smarty 目标。*/
  2. require(ROOT_PATH .'includes/Smarty-2.6.27/libs/Smarty.class.php');
  3. $smarty =newSmarty;
  4. $smarty->cache_lifetime = $_CFG['cache_time'];
  5. $smarty->template_dir = ROOT_PATH .'themes/'. $_CFG['template'];
  6. $smarty->cache_dir = ROOT_PATH .'temp/caches';
  7. $smarty->compile_dir = ROOT_PATH .'temp/compiled';

这里注重途径和类名的修正。还有就是细心查看smarty类需求的那几个变量和路近能否都存在。

持续往下查看:

  1. if((DEBUG_MODE &2)==2)
  2. {
  3. $smarty->direct_output =true;//我记住这个变量smarty如同没有
  4. $smarty->force_compile =true;
  5. }
  6. else
  7. {
  8. $smarty->direct_output =false;//
  9. $smarty->force_compile =false;
  10. }

看这一段,查看smarty类里能否存在这几个变量,没有就删掉。

断定无误后,能够回到根目录的index.php文件上了。

之前,咱们将init.php 换成了init_x.php,这仅仅第一步。下面咱们要持续修正模板,将一切的dwt文件换成tpl文件(回忆中是两处)。

如今进入themes文件夹,将index.dwt文件修正为index.tpl文件。

如今咱们来翻开debug,看看能不能进行smarty调试,并运用其他的smarty标签了。(这里阐明一下,smarty文件夹需求有可运转的权限。)

还记住刚刚你屏蔽的那两行smarty不存在的变量么?那个是调试。咱们细心对照发现,2.6的smarty调试的变量名称为debuging。

咱们将方才:

  1. $smarty->direct_output =false;

中的direct_output,修正为debuging,而且改为true就能够弹出smarty官方的调试窗口了

ecshop的smarty库还原成smarty原生库方法的更多相关文章

  1. xamarin绑定原生库的一些坑

    最近一个项目涉及到较多的第三方库的绑定技术,中间遇到了几个坑,记录下来与大家分享 绑定Jar库 monoandroid对原生库的调用都通过Android.Runtime.JNIEnv进行调入(http ...

  2. TexturePacker大图还原成小图工具带源码

    TexturePacker是一个把好多小图打成大图的软件,生成的是大图以及小图在大图位置的.plist描述文件,但是不支持把大图还原成小图.网上偷的图一般都是大图和plist,想得到小图比较麻烦,于是 ...

  3. 将STM32的标准库编译成lib使用【图文】

    以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程. 这个编译过程是一个相当慢的过程!完全编译大约需要一支烟的时间.每次建立工程都这么编译,是一个相当浪费时 ...

  4. 将STM32的标准库编译成lib

    转载自:http://www.cnblogs.com/zyqgold/p/3189719.html 以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程. 这 ...

  5. 使用MDK将STM32的标准库编译成lib使用

    1 .使用MDK将STM32的标准库编译成lib使用[图文]  http://www.cnblogs.com/zyqgold/p/3189719.html

  6. 将项目打包成jar,如何又将jar还原成项目

    一.将项目打包成jar 第一步: 选择项目,鼠标右键,选择export ,出现如下 接下来就是点击Next,Next,最后点击Finish 后 会生成jar 二.将jar还原成项目 第一步 用反编译工 ...

  7. Android Studio添加原生库并自动构建

    [时间:2017-09] [状态:Open] [关键词:Android,Android Studio,gradle,native,c,c++,cmake,原生开发,ndk-build] 0 引言 最近 ...

  8. Android Studio原生库创建示例

    [时间:2017-07] [状态:Open] [关键词:Android,Android Studio,gradle,native,c,c++,cmake,原生开发] 0 引言 最近在工作中遇到了升级A ...

  9. Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明

    本文描述的是windows系统下,通过qtcreator在pro文件中添加动态库与静态库的方法: 1.添加动态库(直接添加动态库文件.dll,非子项目) 通过qtcreator创建动态库的方法就不在此 ...

随机推荐

  1. [反汇编练习] 160个CrackMe之006

    [反汇编练习] 160个CrackMe之006. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  2. 零基础学通C语言,福利来啦!!!!zfhl.ke.qq.com

  3. nginx - conf.d vs sites-available

    自己理解: conf.d - 扩展配置文件,用户配置文件 sites-available - 配置 虚拟主机(nginx支持多个虚拟主机,sites-enabled(存放 软链接,指向sites-av ...

  4. poj 1236 Network of Schools

    题目描述:有一些学校连接到一个计算机网络.这些学校之间达成了一个协议:每个学校维护着一个学校列表,它向学校列表中的学校发布软件.注意,如果学校B在学校A的列表中,则A不一定在B的列表中.任务A:计算为 ...

  5. 【策略】HDOJ-1205-吃糖果

    [题目链接:HDOJ-1205] 思路:直接看题毫无思路... 看了别人的思路,到现在还懵懵懂懂.   只要除了数目最多的糖果以外的其他所有糖果的数目之和加1(小心这里要用int64),大于等于数目最 ...

  6. K2 blackpearl 安装

    转:http://blog.csdn.net/gxiangzi/article/details/8432188 K2是国外的一款BPM引擎,基于MS的Workflow,关于它的详细介绍在我之前一片博客 ...

  7. java web 学习十四(JSP原理)

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

  8. java jvm学习笔记十三(jvm基本结构)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完 ...

  9. Front-End-Develop-Guide

    这份文件包含一系列用于面试审查求职者(候选人)的前端面试问题.这并不推荐把每个问题都问在同一个求职者(因为这会花几个小时的时间).从列表中抽取一些问题能够帮助你审查你需要求职者具备的一些技能. 注: ...

  10. 安装centos 7 体验安装过程

    1. 下载centos7的iso文件,放入虚拟机的启动光盘中 2. 选择启动,然后可以看到安装的选项 3. 进行安装之后,会自动的进行一个检查 4. 选择安装的语言 5. 进入之后,可以看到所有需要安 ...