小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ecshop的smarty庫還原成smarty原生庫方法

 sumi2005 2014-04-25

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

 

首要斷定版別:ECShop v2.7.3

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

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

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

所以咱們找到這個文件,找到創(chuàng)立的那個cls_template類,代碼如下:

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

這里發(fā)現(xiàn)他們創(chuàng)立了一個smarty的一個目標(biāo),其實咱們寫的模板中一切能用的標(biāo)簽都是用這個的。

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

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

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

改為:

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

即可。原因是還有其他地方運用了init.php,直接修正的話,會形成不行預(yù)知的成果。

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

	
  1. /* 獲得當(dāng)時ecshop地點的根目錄 */
  2. define('ROOT_PATH', str_replace('includes/init_x.php', '', str_replace('\\', '/', __FILE__)));
	
  1. /* 創(chuàng)立 Smarty 目標(biāo)。*/
  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類需求的那幾個變量和路近能否都存在。

持續(xù)往下查看:

	
  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,這僅僅第一步。下面咱們要持續(xù)修正模板,將一切的dwt文件換成tpl文件(回憶中是兩處)。

如今進入themes文件夾,將index.dwt文件修正為index.tpl文件。

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

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

咱們將方才:

	
  1. $smarty->direct_output = false;

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章