Dede织梦dede:arclist首页分页教程和BUG修复

编程之家收集整理的这篇文章主要介绍了Dede织梦dede:arclist首页分页教程和BUG修复编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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 分页了。

dede:arclist 分页存在 BUG 修复

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`;

扩展做翻页样式

找到文件 dedeincludetaglibarcpagelist.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 = "&nbsp;&nbsp;共&nbsp;".$pagesNum."&nbsp;页&nbsp;&nbsp;共&nbsp;".$allItemTotal."&nbsp;条记录";
 
//按页显示
$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[下一页][尾页]

CSS 分页样式

在模板头文件 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>

总结

以上是编程之家为你收集整理的Dede织梦dede:arclist首页分页教程和BUG修复全部内容,希望文章能够帮你解决Dede织梦dede:arclist首页分页教程和BUG修复所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

相关文章

猜你在找的Dedecms相关文章

DedeCMS列表页/内容页如何调用顶级栏目ID的方法总结,使用dede顶级栏目id可以实现很多功能比如:在每个列表页调用不同的栏目图片(同一顶级栏目调用相同的图
我们用织梦做网站,有时候需要用php截取特定字符前面和后面的内容,可以用以下方法来实现。1、php截取特定字符后面的内容可以使用函数strripos,获取一
DedeCMS中是可以使用PHP的,常见的方法就是ifelse了,例如模板制作中,DedeCMS织梦判断当前字段是否有值有则显示无则不显示,实现的方法如下。示例一1
织梦DedeCMS列表页获取访客热搜排行榜文章的方法,方法比较简单只需要打开织梦/include/extend.func.php最后加上以下代码:170465897460ee63c2bbfe1_0000
很多人说,DeDecms是一款非常好用,非常棒的内容管理程序。但是如果DeDecms技术工程师针对用户体验和程序安全方面在用心点的话,相信使用的用户将更多。今
织梦在建站的时候也希望自己的文章能被评论,这样也可以给自己提出很多的意见,在首页也可以调用出评论,把织梦首页中的评论链接地址换成静态化的文件还要
用过wordpress的朋友都知道,wordpress有个功能就是调用标签的时候可以在每个标签的后面显示出当前标签所对应的文章数量。看上去很美观,而且每一个tag标签
经过测试貌似{dede:php}标签中不能直接使用其他普通标签例如:{dede:field.title/},{dede:global.cfg_webname/}但是我们可以通过其他方式来实现相应的功能