帝國cms如何自動分頁截斷<div>等標簽問題、末頁空白問題:
帝國CMS在自動分頁時,存在兩個問題:
(1)分頁符 [! –empirenews.page–] 會截斷文中的標簽,比如
、
、
、等,造成頁面排版混亂;
(2)可能在文章末尾加上 [! –empirenews.page–] ,生成一個正文為空的頁面,體驗非常不好。
解決此問題的方法是要修改自動分頁函數。
1、必要修改:
打開 e/class/functions.php 文件,查找 function AutoDoPage 找到函數,將此函數刪除或注釋掉,用下面的代碼替換:
function AutoDoPage($mybody,$spsize){
$sptag="[!- -empirenews.page–]";
if(strlen($mybody)<$spsize) return $mybody;
$bds = explode('>',$mybody);
$npageBody = "";
$istable = 0;
$mybody = "";
foreach($bds as $i=>$k)
{
if($i==0){ $npageBody .= $bds[$i]; continue;}
$bds[$i] = ">".$bds[$i];
if(strlen($bds[$i])>6){
$tname = substr($bds[$i],1,5);
if(strtolower($tname)=='table') $istable++;
else if(strtolower($tname)=='/tabl') $istable–;
if($istable>0){ $npageBody .= $bds[$i]; continue; }
else $npageBody .= $bds[$i];
}else{
$npageBody .= $bds[$i];
}
if(strlen($npageBody)>$spsize){
$mybody .= $sptag.$npageBody;
$npageBody = "";
}
}
if($npageBody!="") $mybody .= $npageBody;
$mybody=str_replace($sptag.">",">".$sptag,$mybody);
$mybody=substr($mybody,strlen($sptag));
return $mybody;
}
2、不必須修改:
如果不喜歡[!- -empirenews.page–]或[!- -empirenews.page–]也被截斷,可以繼續修改:
查找//返回編譯,在其上的一個大括號}內插入代碼:
$sptag="[! –empirenews.page–]";
$add[newstext]=str_replace(array("
".$sptag."
","
".$sptag."
"),$sptag,$add[newstext]);
友情提醒:
(1)根據帝國自動分頁的算法,不要出現長段落(段落長度大于自動分頁的長度設置),否則會截斷段落中的各種標簽。
(2)完成了第2個修改后,在后臺編輯時還會出現[!- -empirenews.page–]或[!- -empirenews.page–],但前臺生成時不會出現截斷。