>  기사  >  php教程  >  Dedecms, 페이징 문제에 대한 완전한 솔루션 출시

Dedecms, 페이징 문제에 대한 완전한 솔루션 출시

黄舟
黄舟원래의
2016-12-14 16:21:291491검색

기사 콘텐츠의 양이 많기 때문에 dede에는 기사의 페이지를 자동으로 매기는 시스템에 매우 실용적인 기능이 있습니다. 이 기능은 매우 세심하게 설정되었다고 할 수 있습니다.

그런데 사용하다가 문제가 발생했습니다. 어떻게 해결해야 할까요? 보통은 먼저 데데 포럼에 가서 관련 해결방안이 있는지 찾아봅니다. 자동 페이징 관련 글을 많이 찾아봤는데, 문제가 완전히 해결되지 않았네요. 혹시 일부 버전 문제나 패치가 있는 것 같습니다.

rcl 버전 4.0을 사용하고 있습니다. 전체 해결 방법은 다음과 같습니다.

먼저 이 코드를 콘텐츠 페이지 템플릿에 삽입하고(콘텐츠 페이지 템플릿에 없는 경우) {dede:pagebreak/}에 직접 삽입하고, {dede:field name에 직접 삽입합니다. ='body'/} 즉 Can입니다.

그런 다음 자동 페이징 기능을 사용하여 문제가 해결되었는지 확인할 수 있습니다(아마도 아닐 겁니다, 헤헤). 그렇지 않다면 다음 단계


로 이동하여 dede/article_description_action.php 파일을 수정하세요. 파일을 열고 다음 코드를 찾으세요


다음은 인용된 내용입니다:

/------ ---- -----
//자동 페이징 업데이트
//---------------

if($dojob=='page'){
require_once(dirname(__FILE__)."/inc/inc_archives_functions.php");
//총 통계 레코드 수
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'];
}
//기록 가져오기 및 분석
if($totalnum > $startdd+$pagesize) $limitSql = " $startdd, $pagesize";
else if(($totalnum-$startdd)>0) $limitSql = " $startdd 제한,".($totalnum - $startdd);
else $limitSql = "";
$tjnum = $startdd;
if($limitSql!=""){
$addquery = " 여기서 ID>0 ";
if($sid!=0) $addquery = " 그리고 ID>='$ sid' ";
if($eid!=0) $addquery = " And ID<='$eid' ";
$fquery = "$table $에서 $field 보조 선택 addquery $limitSql;" ;
          $dsql->SetQuery($fquery); > $tjnum++;
$body = $row[$field];
$aid = $row['aid'] ;
if(strlen($body) < $msize) 계속
if(!preg_match("/#P#/iU",$body)){
$body = SpLongBody($body ,$cfg_arcautosp_size*1024,"#P#페이지 제목#E#");
           $body = addlashes($body) }
}//제한 시 종료





은 다음으로 대체됩니다.

다음은 인용된 내용입니다.

/ ------------------ ----------

//자동 페이징 업데이트

//--------- -----


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 = " $startdd 제한 ,$pagesize";
else if(($totalnum-$startdd)>0) $limitSql = " $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 = "$table $addquery $limitSql에서 $field 보조 선택 ;";
    $dsql->SetQuery($fquery);
    $dsql->Execute();
      while($ row=$dsql->GetArray())
      {
       $tjnum++;
       $body = $row[$field];
       $aid = $row['aid'];
       if(strlen($body) < $msize) 계속;
       if(!preg_match("/#P#/iU",$body)){
          $body = SpLongBody($body,$cfg_arcautosp_size*1024,"#P#分页标题# E#");
          $body = addlashes($body); 
          $dsql->ExecuteNoneQuery("Update $table set $field='$body' whereaid='$aid' ; ");
       }
      }
    }//제한된 경우 종료

 


  然后保存上传。问题应该可以完全解决。

 

  看了某些网友写的因是在数据表中没有发现id字段。只有aid字段,修改即可。

 更多关文章请关注PHP中文网(www.php.cn)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.