您现在的位置是:主页 > 织梦教程 > 织梦教程

织梦搜索结果页分页条样式修改

织梦BUG 2019-07-24 【织梦教程】 人已围观

简介织梦搜索结果页里的分页是跟栏目列表页的分页是2个完全不同样式的,为了美观整站统一分页样式,我们可以用css大难度的实现,也可以修改PHP文件来实现...

最终效果


织梦搜索结果页里的分页是跟栏目列表页的分页是2个完全不同样式的,为了美观整站统一分页样式,我们可以用css大难度的实现,也可以修改PHP文件来实现

下面介绍修改PHP文件来实现

不想自己改的,可以下载我已经改好的打包文件

这个修改过的文件已经支持搜索结果页dede:type、dede:arclist、dede:channelartlist、dede:tag、dede:php等标签的使用

链接:https://share.weiyun.com/5SQq6jH 密码:tnr67d

想自己动手改的看下面教程

打开 /include/arc.searchview.class.php 找到

$this->dtp->Assign($tagid,$this->GetPageListDM($list_len));

改成

$ctag->GetAtt("listitem")=="" ? $listitem="index,pre,pageno,next,end,option" : $listitem=$ctag->GetAtt("listitem");
$this->dtp->Assign($tagid,$this->GetPageListDM($list_len,$listitem));

如图

继续找到

function GetPageListDM($list_len)

把整个函数改成

function GetPageListDM($list_len,$listitem="index,end,pre,next,pageno")
{
	global $oldkeyword;
	$prepage="";
	$nextpage="";
	$prepagenum = $this->PageNo - 1;
	$nextpagenum = $this->PageNo + 1;
	if($list_len=="" || preg_match("/[^0-9]/", $list_len))
	{
		$list_len=3;
	}
	$totalpage = ceil($this->TotalResult / $this->PageSize);
	if($totalpage<=1 && $this->TotalResult>0)
	{
		return "<li><span class="pageinfo">共 1 页 / ".$this->TotalResult." 条记录</span></li>
";
	}
	if($this->TotalResult == 0)
	{
		return "<li><span class="pageinfo">共 0 页/ ".$this->TotalResult." 条记录</span></li>
";
	}
	$maininfo = "<li><span class="pageinfo">共 <strong>{$totalpage}</strong>页 <strong>".$this->TotalResult."</strong>条</span></li>
";
	$purl = $this->GetCurUrl();
	
	$oldkeyword = (empty($oldkeyword) ? $this->Keyword : $oldkeyword);

	//当结果超过限制时,重设结果页数
	if($this->TotalResult > $this->SearchMaxRc)
	{
		$totalpage = ceil($this->SearchMaxRc/$this->PageSize);
	}

	$geturl = "keyword=".urlencode($oldkeyword)."&searchtype=".$this->SearchType;
	$geturl .= "&channeltype=".$this->ChannelType."&orderby=".$this->OrderBy;
	$geturl .= "&kwtype=".$this->KType."&pagesize=".$this->PageSize;
	$geturl .= "&typeid=".$this->TypeID."&TotalResult=".$this->TotalResult."&";
	$purl .= "?".$geturl;

	//获得上一页和下一页的链接
	if($this->PageNo != 1)
	{
		$prepage.="<li><a href='".$purl."PageNo=$prepagenum'>上一页</a></li>
";
		$indexpage="<li><a href='".$purl."PageNo=1'>首页</a></li>
";
	}
	else
	{
		$indexpage="<li><a href='".$purl."PageNo=1'>首页</a></li>
";
	}
	if($this->PageNo!=$totalpage && $totalpage>1)
	{
		$nextpage.="<li><a href='".$purl."PageNo=$nextpagenum'>下一页</a></li>
";
		$endpage="<li><a href='".$purl."PageNo=$totalpage'>末页</a></li>
";
	}
	else
	{
		$endpage="<li><a href='".$purl."PageNo=$totalpage'>末页</a></li>
";
	}

	//获得数字链接
	$listdd="";
	$total_list = $list_len * 2 + 1;
	if($this->PageNo >= $total_list)
	{
		$j = $this->PageNo - $list_len;
		$total_list = $this->PageNo + $list_len;
		if($total_list > $totalpage)
		{
			$total_list = $totalpage;
		}
	}
	else
	{
		$j=1;
		if($total_list > $totalpage)
		{
			$total_list = $totalpage;
		}
	}
	for($j; $j<=$total_list; $j++)
	{
		if($j == $this->PageNo)
		{
			$listdd.= "<li class="thisclass"><a href='".$purl."PageNo=$j'>$j</a></li>
";
		}
		else
		{
			$listdd.="<li><a href='".$purl."PageNo=$j'>$j</a></li>
";
		}
	}
	
	$plist = '';
	if(preg_match('/index/i', $listitem)) $plist .= $indexpage;
	if(preg_match('/pre/i', $listitem)) $plist .= $prepage;
	if(preg_match('/pageno/i', $listitem)) $plist .= $listdd;
	if(preg_match('/next/i', $listitem)) $plist .= $nextpage;
	if(preg_match('/end/i', $listitem)) $plist .= $endpage;
	if(preg_match('/option/i', $listitem)) $plist .= $optionlist;
	if(preg_match('/info/i', $listitem)) $plist .= $maininfo;

	return $plist;
}

搜索结果页 分页条标签写法(跟栏目列表分页标签一样)

<div class="dede_pages">
	<ul class="pagelist">
		{dede:pagelist listitem="index,end,pre,next,pageno,info" listsize="5"/}
	</ul>
</div>

另外

想要搜索结果页支持dede:type、dede:arclist、dede:channelartlist、dede:tag、dede:php等标签的请本站搜索教程

想要搜索结果页调用自定义字段的参考这个教程请本站搜索教程


-END-

浏览完了?你可以 点我去评论留下观点!

站点信息

  • 建站时间:2018-10-24
  • 标签管理标签云
  • 网站地图XML网站地图
  • 文章统计:70篇文章
  • 站长微信:微信二维码