当前位置:DedeCMS.org>DedeCms教程>

文章内容页面上一篇下一篇分开调用,且限定文章所在栏目内而不是现在的全站。

来源:DedeCms论坛 作者:zouql 发布时间:2007-10-10 点击次数:

功能:
1.文章内容页面上一篇、下一篇分两个标签调用,模板制作更方便!
2.调用的上一篇、下一篇文章改为本文章所在栏目,而不是现在的全站。
调用例子:

 <div style="text-align: left">↑{dede:preurl/}</div>
 <div style="text-align: left">↓{dede:nexturl/}</div>

改法:打开includeinc_archives_view.php
找到

 //--------------------------
  //获取上一篇,下一篇链接
  //--------------------------
  function GetPreNext()
  {
      $rs = "";
      $aid = $this->ArcID;
      $next = " #@__archives.ID>'$aid' order by #@__archives.ID asc ";
      $pre = " #@__archives.ID<'$aid' order by #@__archives.ID desc ";
      $query = "Select #@__archives.ID,#@__archives.title,
      #@__archives.typeid,#@__archives.ismake,#@__archives.senddate,#@__archives.arcrank,#@__archives.money,
    #@__arctype.typedir,#@__arctype.typename,#@__arctype.namerule,#@__arctype.namerule2,#@__arctype.ispart,
    #@__arctype.moresite,#@__arctype.siteurl
    from #@__archives left join #@__arctype on #@__archives.typeid=#@__arctype.ID
    where ";
    $nextRow = $this->dsql->GetOne($query.$next);
    $preRow = $this->dsql->GetOne($query.$pre);
    if(is_array($preRow)){
        $mlink = GetFileUrl($preRow['ID'],$preRow['typeid'],$preRow['senddate'],$preRow['title'],$preRow['ismake'],$preRow['arcrank'],$preRow['namerule'],$preRow['typedir'],$preRow['money'],true,$preRow['siteurl']);
    $rs .= "上一篇:<a href='$mlink'>{$preRow['title']}</a> ";
    }
    else{
        $rs .= "上一篇:没有了 ";
    }
    if(is_array($nextRow)){
        $mlink = GetFileUrl($nextRow['ID'],$nextRow['typeid'],$nextRow['senddate'],$nextRow['title'],$nextRow['ismake'],$nextRow['arcrank'],$nextRow['namerule'],$nextRow['typedir'],$nextRow['money'],true,$nextRow['siteurl']);
    $rs .= "   下一篇:<a href='$mlink'>{$nextRow['title']}</a> ";
    }
    else{
        $rs .= "   下一篇:没有了 ";
    }
    return $rs;
}


改为:

//--------------------------
//获取上一篇,下一篇链接
//--------------------------
function GetPreNext($pn=1)
{
    $rs = "";
    $aid = $this->ArcID;
  $typeid = $this->Fields['typeid'];
    $next = " #@__archives.ID>'$aid' and #@__archives.typeid='$typeid' order by #@__archives.ID asc ";
    $pre = " #@__archives.ID<'$aid' and #@__archives.typeid='$typeid' order by #@__archives.ID desc ";
    $query = "Select #@__archives.ID,#@__archives.title,
    #@__archives.typeid,#@__archives.ismake,#@__archives.senddate,#@__archives.arcrank,#@__archives.money,
  #@__arctype.typedir,#@__arctype.typename,#@__arctype.namerule,#@__arctype.namerule2,#@__arctype.ispart,
  #@__arctype.moresite,#@__arctype.siteurl
  from #@__archives left join #@__arctype on #@__archives.typeid=#@__arctype.ID
  where ";
  if($pn == 0){
       $preRow = $this->dsql->GetOne($query.$pre);
       if(is_array($preRow)){
           $mlink = GetFileUrl($preRow['ID'],$preRow['typeid'],$preRow['senddate'],$preRow['title'],$preRow['ismake'],$preRow['arcrank'],$preRow['namerule'],$preRow['typedir'],$preRow['money'],true,$preRow['siteurl']);
       $prs .= "上一篇:<a href='$mlink'>{$preRow['title']}</a> ";
       }
       else{
           $prs .= "上一篇:没有了 ";
       }
  return $prs;
  }
  else{
       $nextRow = $this->dsql->GetOne($query.$next);
       if(is_array($nextRow)){
           $mlink = GetFileUrl($nextRow['ID'],$nextRow['typeid'],$nextRow['senddate'],$nextRow['title'],$nextRow['ismake'],$nextRow['arcrank'],$nextRow['namerule'],$nextRow['typedir'],$nextRow['money'],true,$nextRow['siteurl']);
       $nrs .= "下一篇:<a href='$mlink'>{$nextRow['title']}</a> ";
       }
       else{
           $nrs .= "下一篇:没有了 ";
       }
  return $nrs;
  }
}


找到:

          //上下篇链接
          else if($tagname=="prenext"){
            $this->dtp->Assign($tagid,$this->GetPreNext());
          }


改为:


          //上下篇链接
          else if($tagname=="preurl"){
            $this->dtp->Assign($tagid,$this->GetPreNext(0));
          }
        else if($tagname=="nexturl"){
            $this->dtp->Assign($tagid,$this->GetPreNext());
          }