最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

帝國(guó)CMS專(zhuān)題調(diào)用標(biāo)簽eshowzt不支持標(biāo)簽?zāi)0迨褂贸绦虼a的解決方法

  發(fā)布時(shí)間:2016-04-01 18:07:54   作者:佚名   我要評(píng)論
這篇文章主要為大家介紹了帝國(guó)CMS專(zhuān)題調(diào)用標(biāo)簽eshowzt不支持標(biāo)簽?zāi)0迨褂贸绦虼a的解決方法,通過(guò)修改帝國(guó)CMS源碼,添加處理字段與代碼,實(shí)現(xiàn)專(zhuān)題調(diào)用標(biāo)簽eshowzt可處理標(biāo)簽?zāi)0錚HP代碼的功能,增加了程序的靈活性,需要的朋友可以參考下

本文講述了帝國(guó)CMS專(zhuān)題調(diào)用標(biāo)簽eshowzt不支持標(biāo)簽?zāi)0迨褂贸绦虼a的解決方法。涉及針對(duì)帝國(guó)CMS源碼的修改。分享給大家供大家參考,具體如下:

一、問(wèn)題:

在項(xiàng)目開(kāi)發(fā)中需要在首頁(yè)調(diào)用專(zhuān)題,且專(zhuān)題增加了“專(zhuān)題自定義字段”:副標(biāo)題(ftitle),需要在欄目名調(diào)用出比較簡(jiǎn)短的副標(biāo)題。

使用【專(zhuān)題調(diào)用標(biāo)簽】eshowzt并設(shè)置對(duì)應(yīng)的標(biāo)簽?zāi)0?,在?biāo)簽?zāi)0宓膌ist.var部分勾選【使用程序代碼】,編寫(xiě)代碼如下:

復(fù)制代碼
代碼如下:
$listtemp='
<li><a href="[!--classurl--]">'.ReturnZtAddField('[!--classid--]','ftitle').'</a></li>
';

專(zhuān)題調(diào)用標(biāo)簽寫(xiě)好后刷新首頁(yè),發(fā)現(xiàn)勾選【使用程序代碼】無(wú)效,就是說(shuō)使用【專(zhuān)題調(diào)用標(biāo)簽】eshowzt的時(shí)候list.var部分無(wú)法使用程序代碼。

二、分析:

查看帝國(guó)CMS源碼,找到專(zhuān)題調(diào)用標(biāo)簽eshowzt對(duì)應(yīng)的函數(shù):sys_ShowZtData(位于e/class/t_functions.php約1860行)

分析源碼找到如下代碼:

復(fù)制代碼
代碼如下:
//取得模板
$tr=sys_ReturnBqTemp($tempid);

此處獲取模板ID號(hào)對(duì)應(yīng)的模板相關(guān)變量,包括:模板名(tempname),頁(yè)面模板內(nèi)容(temptext)、列表內(nèi)容模板(list.var)(listvar)以及是否使用程序代碼(docode)等。

注意:此處的關(guān)鍵就在于是否使用程序代碼(docode)字段!

再找到

復(fù)制代碼
代碼如下:
//替換列表變量
$repvar=ReplaceShowClassVars($no,$listvar,$r,$num,1,$subnews);

分析函數(shù)ReplaceShowClassVars可以發(fā)現(xiàn)該函數(shù)并未接受與處理【使用程序代碼】字段docode,至此就明白了為什么【專(zhuān)題調(diào)用標(biāo)簽】eshowzt在標(biāo)簽?zāi)0骞催x【使用程序代碼】的情況下并未作出代碼解析的原因!

三、解決方法:

步驟1. 新增【使用程序代碼】字段,在e/class/t_functions.php頁(yè)面下找到函數(shù)function sys_ShowZtData,并在“取得模板”部分添加$docode字段:

復(fù)制代碼
代碼如下:
//取得模板
$tr=sys_ReturnBqTemp($tempid);
$docode=$tr[docode];//新增項(xiàng),判斷標(biāo)簽?zāi)0迨欠袷褂贸绦虼a

如下圖所示:

該步驟可獲取是否使用程序代碼的標(biāo)志信息。

步驟2. 還是在步驟1中e/class/t_functions.php頁(yè)面的函數(shù)function sys_ShowZtData中,修改“替換列表變量”部分為自定義函數(shù)user_ReplaceShowClassVars,代碼如下:

復(fù)制代碼
代碼如下:
//替換列表變量
//$repvar=ReplaceShowClassVars($no,$listvar,$r,$num,1,$subnews);
$repvar=user_ReplaceShowClassVars($no,$listvar,$r,$num,1,$subnews,$docode);

如下圖所示:

PS:仔細(xì)對(duì)比就能看出,此處的自定義函數(shù)比原先的函數(shù)多了一個(gè)針對(duì)$docode的接收處理。

步驟3. 在e/class/t_functions.php頁(yè)面底部添加自定義函數(shù)user_ReplaceShowClassVars:

具體代碼如下:

復(fù)制代碼
代碼如下:
////**************自定義替換欄目導(dǎo)航標(biāo)簽********************//
function user_ReplaceShowClassVars($no,$listtemp,$r,$num,$ecms=0,$subnews=0,$docode){
global $public_r,$class_r;
//欄目鏈接
if($ecms==1)
{
$classurl=sys_ReturnBqZtname($r);
$r['classname']=$r['ztname'];
$r['classid']=$r['ztid'];
$r['classimg']=$r['ztimg'];
}
else
{
$classurl=sys_ReturnBqClassname($r,9);
}
if($subnews)
{
$r[intro]=sub($r[intro],0,$subnews,false);
}
$listtemp=str_replace("[!--classurl--]",$classurl,$listtemp);
//欄目名稱(chēng)
$listtemp=str_replace("[!--classname--]",$r[classname],$listtemp);
//欄目id
$listtemp=str_replace("[!--classid--]",$r[classid],$listtemp);
//欄目圖片
if(empty($r[classimg]))
{
$r[classimg]=$public_r[newsurl]."e/data/images/notimg.gif";
}
$listtemp=str_replace("[!--classimg--]",$r[classimg],$listtemp);
//欄目簡(jiǎn)介
$listtemp=str_replace("[!--intro--]",nl2br($r[intro]),$listtemp);
//記錄數(shù)
$listtemp=str_replace("[!--num--]",$num,$listtemp);
//序號(hào)
$listtemp=str_replace("[!--no--]",$no,$listtemp);
//針對(duì)docode=1(執(zhí)行程序代碼)的情況statr
if($docode==1)
{
$listtemp=stripSlashes($listtemp);
eval($listtemp);
}
//針對(duì)docode=1(執(zhí)行程序代碼)的情況end
return $listtemp;
}

經(jīng)過(guò)上述三步,問(wèn)題解決!

PS:這里主要修改的代碼就是針對(duì)$docode的判斷與執(zhí)行代碼,如果將ReplaceShowClassVars函數(shù)也添加對(duì)應(yīng)的$docode處理:

復(fù)制代碼
代碼如下:
if($docode==1)
{
$listtemp=stripSlashes($listtemp);
eval($listtemp);
}

也能解決問(wèn)題,但考慮到還有其他頁(yè)面調(diào)用該函數(shù)的情況,因此使用自定義函數(shù)user_ReplaceShowClassVars相對(duì)來(lái)說(shuō)不會(huì)影響其他程序的運(yùn)行。

相關(guān)文章

最新評(píng)論

英超| 滨海县| 彭阳县| 博白县| 定安县| 靖江市| 江安县| 保定市| 萝北县| 白朗县| 余干县| 运城市| 莒南县| 巨鹿县| 武强县| 扶绥县| 平昌县| 甘肃省| 永吉县| 天津市| 德保县| 奎屯市| 徐汇区| 常德市| 耿马| 尚义县| 云阳县| 西乌珠穆沁旗| 安化县| 水城县| 伊金霍洛旗| 乌拉特中旗| 赤水市| 吉木乃县| 绵竹市| 乌什县| 游戏| 固原市| 遂溪县| 德州市| 吉安县|