DedeCMS 织梦建站系统 dede:arclist 标签首页分页使用教程和存在的 BUG 修复。
1、引入 js 部分,而且要确保这 2 个文件存在 /include/dedeajax2.js 和 /plus/arcmulti.php
<script type="text/javascript" src="{dede:global.cfg_cmspath/}/include/dedeajax2.js"></script>
<script type="text/javascript">
function multi(pagenum,tagid)
{
var taget_obj = document.getElementById(tagid);
var taget_obj_page = document.getElementById("page_"+tagid);
myajax = new DedeAjax(taget_obj,false,false,'','','');
myajax.SendGet2("{dede:global.cfg_cmspath/}/plus/arcmulti.php?mtype=0&pnum="+pagenum+'&tagid='+tagid);
myajax = new DedeAjax(taget_obj_page,false,false,'','','');
myajax.SendGet2("{dede:global.cfg_cmspath/}/plus/arcmulti.php?mtype=1&pnum="+pagenum+'&tagid='+tagid);
DedeXHTTP = null;
}
</script>
2、以上是引用 AJAX 功能,实现时时翻页功能,下面是数据列表标签 和 分页标签
<dl>
<dd>
<ul class="d1 ico3">
{dede:arclist titlelen='250' pagesize='5' tagid='myindex'}
<li>
<span>[field:pubdate function="MyDate('m-d',@me)"/]</span>
<a href="[field:arcurl /]">[field:title /]</a>
</li>
{/dede:arclist}
</ul>
</dd>
</dl>
<div class="page">
{dede:arcpagelist tagid='myindex'/}
</div>
{dede:arclist titlelen='250' pagesize='5' tagid='myindex'}
{dede:arcpagelist tagid='myindex'/}
上面两组标签中 tagid=”index”要对应上 ,而且 tagid 要统一,刷新页面会出来数字 123 分页了。
1、修正数据库字段类型长度问题,不然{dede:arclist}中间部分代码过长会被截断{/dede:arclist}
UTF-8 的织梦程序在后台-系统-SQL 命令行工具,执行
ALTER TABLE `#@__arcmulti` CHANGE `innertext` `innertext` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
GBK 的织梦程序在后台-系统-SQL 命令行工具,执行
ALTER TABLE `#@__arcmulti` CHANGE `innertext` `innertext` TEXT CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL DEFAULT '';
2、修复只能获取 10 条数据问题
//打开 /include/taglib/arclist.lib.php 找到
$idsstr = join(',', $ids);
//在它下面加入
//arclist分页BUG修复
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
$addfieldsSql
FROM `$maintable` arc LEFT JOIN `#@__arctype` tp on arc.typeid=tp.id
$addfieldsSqlJoin
$orwhere $ordersql";
$dsql->SetQuery($query);
$dsql->Execute('tag');
while($row = $dsql->GetArray('tag')) {
$tagids[] = $row['id'];
}
$idsstr = join(',', $tagids);
//arclist分页BUG修复
//最后还需要在后台-系统-SQL命令行工具,执行
TRUNCATE `#@__arcmulti`;
找到文件 dede\include\taglib\arcpagelist.lib.php,找到方法 function multipage,翻页样式在这里修改以下是做好的一断代码可以直接复制
function multipage($allItemTotal, $currPageNum, $pageSize, $tagid='')
{
if ($allItemTotal == 0) return "";
//计算总页数
$pagesNum = ceil($allItemTotal/$pageSize);
//第一页显示
$firstPage = ($currPageNum <= 1) ? "<span>[首页]</span>" : "<a href='javascript:multi(1,\"{$tagid}\")' title='第1页'><span>[首页]</span></a>";
//最后一页显示
$lastPage = ($currPageNum >= $pagesNum)? "<span>[尾页]</span>". $currPageNum : "<a href='javascript:multi(". $pagesNum . ",\"{$tagid}\")' title='第". $pagesNum ."页'><span>[尾页]</span></a>";
//上一页显示
$prePage = ($currPageNum <= 1) ? "<span>[上一页]</span>" : "<a href='javascript:multi(". ($currPageNum-1) . ",\"{$tagid}\")' accesskey='p' title='上一页'><span>[上一页]</span></a>";
//下一页显示
$nextPage = ($currPageNum >= $pagesNum) ? "<span>[下一页]</span>" : "<a href='javascript:multi(". ($currPageNum+1) .",\"{$tagid}\")' title='下一页'><span>[下一页]</span></a>";
//共X页 共X条记录
$pagesNum2 = " 共 ".$pagesNum." 页 共 ".$allItemTotal." 条记录";
//按页显示
$listNums = "";
$listNums.= $firstPage;
$listNums.= $prePage;
for ($i=($currPageNum-4); $i<($currPageNum+9); $i++) {
if ($i < 1 || $i > $pagesNum) continue;
if ($i == $currPageNum)
{
$listNums.= "<a href='javascript:void(0)' class='thislink'><span>".$i."</span></a>";
}else
{
$listNums.= " <a href='javascript:multi(". $i .",\"{$tagid}\")' title='". $i ."'><span>". $i ."</span></a> ";
}
}
$listNums.= $nextPage;
$listNums.= $lastPage;
$listNums.= $pagesNum2;
$returnUrl = $listNums;
return $returnUrl;
}
刷新后效果:[首页][上一页]12345[下一页][尾页]
在模板头文件 head 中间加入如下代码:
<style>
* {
padding: 0;
margin: 0;
}
/*
* 外面盒子样式---自己定义
*/
.page_div {
font-size: 12px;
font-family: "microsoft yahei";
color: #666666;
margin-right: 10px;
padding-left: 42px;
box-sizing: border-box;
}
/*
* 页数按钮样式
*/
.page_div span {
min-width: 30px;
height: 28px;
border: 1px solid #dce0e0!important;
text-align: center;
margin: 0 4px;
cursor: pointer;
line-height: 28px;
color: #666666;
font-size: 13px;
display: inline-block;
}
</style>
调用 CSS 样式:
<div class="page_div" align="center">
{dede:arcpagelist tagid='index'/}
</div>
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!