在帝國cms 的內容模板中,我們有時候希望臨時修改字段值。
比如newstext字段,只是想臨時修改下,不想修改數據庫的原值。
一般的操作方法是:用php代碼替換內容模板中的[!--newstext--]標簽,例如這樣---
<?
//$artilce_body =$navinfor['newstext'];
$artilce_body =stripslashes($navinfor['newstext']);
$navinfor['newstext']= str_ireplace('幫幫我', 'jiuhecai', $artilce_body);
echo $navinfor['newstext'];
?>
目的是達到了,但是如果newstext有分頁的話,你就悲劇了。分頁掉了!
大神jiuhecai研究了帝國cms 的源代碼,給出了解決方法:
針對帝國cms 的源碼文件e/class/functions.php 修改兩個地方:
1. 查找$GLOBALS['navinfor']=$add;
修改為 $GLOBALS['navinfor']=&$add;
2.查找function GetInfoNewsBq($classid,$newstemp_r,$ecms_gr,$docheckrep){
修改為 function GetInfoNewsBq($classid,$newstemp_r,&$ecms_gr,$docheckrep){
修改的原理是,使用數組傳地址的方式,加強$navinfor變量和$add(存儲的某條信息主附表所有字段值)的聯系,使得模板中對字段值的修改能夠傳回標簽。
這樣修改后,上述例子這樣處理:
<?
//$artilce_body =$navinfor['newstext'];
$artilce_body =stripslashes($navinfor['newstext']);
$navinfor['newstext']= str_ireplace('幫幫我', 'jiuhecai', $artilce_body);
?>
[!--newstext--]
我們依然可以使用newstext標簽,分頁自然完好,但是標簽的值,的確被我們改變了。
新聞熱點
疑難解答