日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/1/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ecshop的smarty库还原成smarty原生库方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

寫過ecshop模板的人都曉得,他們是用所謂的dwt的文件來嵌套lbi文件進(jìn)行模板的彼此調(diào)用。在咱們調(diào)取數(shù)據(jù)的時(shí)分,ecshop的默許模板只提供給咱們幾個(gè)簡(jiǎn)略的句子進(jìn)行調(diào)用,那么有沒有辦法能夠把這個(gè)精簡(jiǎn)的cls_template類添加其他的句子呢?

?

首要斷定版別:ECShop v2.7.3

通過近一天對(duì)ecshop程序的研討,發(fā)現(xiàn)這個(gè)所謂的cls_template類,其實(shí)是一個(gè)精簡(jiǎn)版的smarty,而且值得幸虧的是,這個(gè)cls_template類沒有包括其他的文件。那么咱們完全能夠?qū)⒐俜絪marty直接拿來用。斷定了這一點(diǎn),剩余的就是看ECShop在哪里運(yùn)用這個(gè)cls_template類了。

翻開index.php,咱們發(fā)現(xiàn)他里邊有這樣一句話:

  • require(dirname(__FILE__).'/includes/init.php');
  • 所以咱們找到這個(gè)文件,找到創(chuàng)立的那個(gè)cls_template類,代碼如下:

  • require(ROOT_PATH .'includes/cls_template.php');
  • $smarty =new cls_template;
  • 這里發(fā)現(xiàn)他們創(chuàng)立了一個(gè)smarty的一個(gè)目標(biāo),其實(shí)咱們寫的模板中一切能用的標(biāo)簽都是用這個(gè)的。

    我這里不說廢話了,直接給辦法了。

    仿制一份init.php 為 init_x.php ,在根目錄的 index.php 中,將:

  • require(dirname(__FILE__).'/includes/init.php');
  • 改為:

  • require(dirname(__FILE__).'/includes/init_x.php');
  • 即可。原因是還有其他地方運(yùn)用了init.php,直接修正的話,會(huì)形成不行預(yù)知的成果。

    如今去官方下載一個(gè)smarty模板,這里用的是2.6的版別(3.1的版別試過,有錯(cuò)。估量ecshop其時(shí)用的是2.6兼容的,別問我為啥。),放在include的文件夾里,而且在init_x.php中包括當(dāng)時(shí)的原生smarty類而且用Smarty類交換之前的cls_template類,代碼如下:

  • /* 獲得當(dāng)時(shí)ecshop地點(diǎn)的根目錄 */
  • define('ROOT_PATH', str_replace('includes/init_x.php','', str_replace('\\','/', __FILE__)));
  • /* 創(chuàng)立 Smarty 目標(biāo)。*/
  • require(ROOT_PATH .'includes/Smarty-2.6.27/libs/Smarty.class.php');
  • $smarty =newSmarty;
  • ?
  • $smarty->cache_lifetime = $_CFG['cache_time'];
  • $smarty->template_dir = ROOT_PATH .'themes/'. $_CFG['template'];
  • $smarty->cache_dir = ROOT_PATH .'temp/caches';
  • $smarty->compile_dir = ROOT_PATH .'temp/compiled';
  • 這里注重途徑和類名的修正。還有就是細(xì)心查看smarty類需求的那幾個(gè)變量和路近能否都存在。

    持續(xù)往下查看:

  • if((DEBUG_MODE &2)==2)
  • {
  • $smarty->direct_output =true;//我記住這個(gè)變量smarty如同沒有
  • $smarty->force_compile =true;
  • }
  • else
  • {
  • $smarty->direct_output =false;//
  • $smarty->force_compile =false;
  • }
  • 看這一段,查看smarty類里能否存在這幾個(gè)變量,沒有就刪掉。

    斷定無誤后,能夠回到根目錄的index.php文件上了。

    之前,咱們將init.php 換成了init_x.php,這僅僅第一步。下面咱們要持續(xù)修正模板,將一切的dwt文件換成tpl文件(回憶中是兩處)。

    如今進(jìn)入themes文件夾,將index.dwt文件修正為index.tpl文件。

    如今咱們來翻開debug,看看能不能進(jìn)行smarty調(diào)試,并運(yùn)用其他的smarty標(biāo)簽了。(這里闡明一下,smarty文件夾需求有可運(yùn)轉(zhuǎn)的權(quán)限。)

    還記住剛剛你屏蔽的那兩行smarty不存在的變量么?那個(gè)是調(diào)試。咱們細(xì)心對(duì)照發(fā)現(xiàn),2.6的smarty調(diào)試的變量名稱為debuging。

    咱們將方才:

  • $smarty->direct_output =false;
  • 中的direct_output,修正為debuging,而且改為true就能夠彈出smarty官方的調(diào)試窗口了

    轉(zhuǎn)載于:https://www.cnblogs.com/AloneSword/p/3513641.html

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的ecshop的smarty库还原成smarty原生库方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。