Aufgrund der großen Menge an Artikelinhalten verfügt dede über eine sehr praktische Funktion im System, nämlich die automatische Paginierung von Artikeln. Man kann sagen, dass diese Funktion sehr durchdacht eingerichtet ist.
Allerdings ist bei der Verwendung ein Problem aufgetreten. Normalerweise gehe ich zuerst in das Dede-Forum und suche nach relevanten Lösungen. Ich habe viele Artikel zum Thema automatisches Paging durchsucht, aber das Problem wurde nicht vollständig gelöst. Möglicherweise gibt es einige Versionsprobleme oder Patches.
Ich verwende Version 4.0 rcl. Die vollständige Lösung lautet wie folgt:
Fügen Sie zunächst diesen Code in die Inhaltsseitenvorlage ein (falls er nicht in der Inhaltsseitenvorlage vorhanden ist) {dede:pagebreak/} und fügen Sie ihn direkt in {dede:field name ein ='body'/} das ist Can.
Dann können Sie versuchen, die automatische Paging-Funktion zu verwenden, um zu sehen, ob das Problem gelöst ist (wahrscheinlich nicht, hehe). Wenn nicht, fahren Sie mit dem nächsten Schritt
fort und ändern Sie die Datei dede/article_description_action.php. Öffnen Sie die Datei und finden Sie den folgenden Code
Das Folgende ist der zitierte Inhalt:
/------------------- ---- -----
//Automatisches Paging aktualisieren
//--------------
if($dojob=='page'){
require_once(dirname(__FILE__)."/inc/inc_archives_functions.php");
//Gesamtzahl der statistischen Datensätze
if($totalnum== 0){
$addquery = " where ID>0 ";
if($sid!=0) $addquery = " And ID>='$sid' ";
if($eid!= 0) $addquery = " And ID<='$eid' ";
$row = $dsql->GetOne("Select count(*) as dd From $table $addquery") ;
$totalnum = $row['dd'];
}
//Datensätze abrufen und analysieren
if($totalnum > $startdd+$pagesize) $limitSql = " limit $startdd, $pagesize";
else if(($totalnum-$startdd)>0) $limitSql = " limit $startdd,".($totalnum - $startdd);
else $limitSql = "";
$tjnum = $startdd;
if($limitSql!=""){
$addquery = " where ID>0 ";
if($sid!=0) $addquery = " Und ID>='$ sid' ";
if($eid!=0) $addquery = " And ID<='$eid' ";
$fquery = "Select help,$field From $table $ addquery $limitSql;" ;
$dsql->SetQuery($fquery); > $tjnum++;
$body = $row[$field];
$aid = $row['aid'] ;
if(strlen($body) < $msize) continue
if(!preg_match("/#P#/iU",$body)){
$body = SpLongBody($body ,$cfg_arcautosp_size*1024,"#P#Seitentitel#E#");
$body = addslashes($body); }
}//end if limit
wird ersetzt durch:
//Automatisches Paging aktualisieren
//--------- ------------------
if($dojob=='page'){
require_once(dirname(__FILE__)."/inc/inc_archives_functions.php");
//统计记录总数
if( $totalnum==0){
$addquery = " where aID>0 ";
if($sid!=0) $addquery .= " And aID>='$sid' ";
if ($eid!=0) $addquery .= " And aID<='$eid' ";
$row = $dsql->GetOne("Select count(*) as dd From $table $addquery") ;
$totalnum = $row['dd'];
}
//获取记录,并分析
if($totalnum > $startdd+$pagesize) $limitSql = " limit $startdd ,$pagesize";
else if(($totalnum-$startdd)>0) $limitSql = " limit $startdd,".($totalnum - $startdd);
else $limitSql = "";
$tjnum = $startdd;
if($limitSql!=""){
$addquery = " where aID>0 ";
if($ sid!=0) $addquery .= " And aID>='$sid' ";
if($eid!=0) $addquery .= " And aID<='$eid' ";
$ fquery = "Select help,$field From $table $addquery $limitSql ;";
$dsql->SetQuery($fquery);
$dsql->Execute();
while($ row=$dsql->GetArray())
{
$tjnum++;
$body = $row[$field];
$aid = $row['aid'];
if(strlen($body) < $msize) continue;
if(!preg_match("/#P#/iU",$body)){
$body = SpLongBody($body,$cfg_arcautosp_size*1024,"#P#分页标题# E#");
$body = addslashes($body);
$dsql->ExecuteNoneQuery("Update $table set $field='$body' where Aid='$aid' ; ");
}
}
}//end if limit
然后保存上传。问题应该可以完全解决。
看了某些网友写的出现此问题的原因是在数据表中没有发现id字段.只有aid字段,修改即可.
更多相关文章请关注PHP中文网(www.php. cn)!