ecshop的smarty库还原成smarty原生库方法

简介: 国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 

--------------------------------------------------------

写过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 = new Smarty;
  4.  
  5. $smarty->cache_lifetime = $_CFG['cache_time'];
  6. $smarty->template_dir = ROOT_PATH . 'themes/' . $_CFG['template'];
  7. $smarty->cache_dir = ROOT_PATH . 'temp/caches';
  8. $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官方的调试窗口了

目录
相关文章
|
分布式计算 资源调度 Hadoop
Hadoop【问题记录 02】【hadoop-3.1.3 单机版】ResourceManager无法启动NodeManager启动后过自动关闭 javax/activation/DataSource
【4月更文挑战第2天】Hadoop【问题记录 02】【hadoop-3.1.3 单机版】ResourceManager无法启动NodeManager启动后过自动关闭 javax/activation/DataSource
409 2
|
11月前
|
IDE 机器人 开发工具
基于ESP32的机器狗
基于ESP32的机器狗
259 0
|
算法 人机交互 vr&ar
VR游戏设计中的用户体验考虑:技术深度解析
【8月更文挑战第24天】VR游戏设计是一个复杂而充满挑战的过程,它要求开发者在视觉体验、交互设计、音效与反馈、用户引导与界面设计以及性能优化等方面进行全面考虑。通过不断探索和实践,我们可以为玩家提供更加沉浸、自然和令人满足的VR游戏体验。随着技术的不断进步和应用场景的不断拓展,VR游戏的未来充满了无限可能。
|
Windows
如何快速安装FL Studio 21中文版win64_21.0.0.331水果编曲宿主daw 软件
编曲宿主DAW软件FL Studio21 简称FL,全称:Fruity Loops Studio21,因此国人习惯叫它"水果"。目前版本是FL Studio21.0.0.331,也是兔八哥爱分享使用版本。它让你的计算机就像是全功能的录音室,大混音盘,非常先进的制作工具,让你的音乐突破想象力的限制。FLstudio21版本已经发布了,看了一下,还是蛮激动的有很多功能大改变 。
866 0
如何快速安装FL Studio 21中文版win64_21.0.0.331水果编曲宿主daw 软件
|
消息中间件 缓存 Kafka
微服务数据问题之在处理小数据包时mmap可能比sendfile更高效如何解决
微服务数据问题之在处理小数据包时mmap可能比sendfile更高效如何解决
106 0
根据内容显示左右带固定宽度边距和背景的标签
根据内容显示左右带固定宽度边距和背景的标签
78 0
leetcode 1222. 可以攻击国王的皇后(每日一题)
leetcode 1222. 可以攻击国王的皇后(每日一题)
123 0
探秘 RxJS Observable 为什么要长成这个样子?!
我们都知道 RxJS Observable 最基础的使用方法:是建立 Observable,即调用 .create API
|
自然语言处理 Kubernetes 负载均衡
Dubbo 3.0 - 开启下一代云原生微服务
本文整理自作者于 2020 年云原生微服务大会上的分享《Dubbo3.0 - 开启下一代云原生微服务》,主要介绍了关于思考 rpc 框架层面,功能演进的方向是什么?以及怎么更好地支持云上的多语言开发的新思考。
Dubbo 3.0 - 开启下一代云原生微服务
|
机器学习/深度学习 算法
Matrix Factorization
Matrix Factorization ①linearNetwork Hypothesis 机器学习的作用就是要从一堆数据中学习到学习到某种能力,然后用这种skill来预测未来的结果。
1121 0