DedeCMS织梦

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

阿里云

DedeCMS 织梦建站系统 dede:arclist 标签首页分页使用教程和存在的 BUG 修复。

1、引入 js 部分,而且要确保这 2 个文件存在 /include/dedeajax2.js 和 /plus/arcmulti.php

也想出现在这里?联系我们
创客主机
  1. <script type="text/javascript" src="{dede:global.cfg_cmspath/}/include/dedeajax2.js"></script>
    
  2. <script type="text/javascript">
    
  3. function multi(pagenum,tagid)
    
  4. {
    
  5. 	var taget_obj = document.getElementById(tagid);
    
  6. 	var taget_obj_page = document.getElementById("page_"+tagid);
    
  7. 	myajax = new DedeAjax(taget_obj,false,false,'','','');
    
  8. 	myajax.SendGet2("{dede:global.cfg_cmspath/}/plus/arcmulti.php?mtype=0&pnum="+pagenum+'&tagid='+tagid);
    
  9. 	myajax = new DedeAjax(taget_obj_page,false,false,'','','');
    
  10. 	myajax.SendGet2("{dede:global.cfg_cmspath/}/plus/arcmulti.php?mtype=1&pnum="+pagenum+'&tagid='+tagid);
    
  11. 	DedeXHTTP = null;
    
  12. }
    
  13. </script>

2、以上是引用 AJAX 功能,实现时时翻页功能,下面是数据列表标签 和 分页标签

  1. <dl>
  2. 	<dd>
  3. 		<ul class="d1 ico3">
  4. 			{dede:arclist titlelen='250' pagesize='5' tagid='myindex'}
  5. 			<li>
  6. 				<span>[field:pubdate function="MyDate('m-d',@me)"/]</span>
  7. 				<a href="[field:arcurl /]">[field:title /]</a>
  8. 			</li>
  9. 			{/dede:arclist}
  10. 		</ul>
  11. 	</dd>
  12. </dl>
  13. <div class="page">
  14. 	{dede:arcpagelist tagid='myindex'/}
  15. </div>
  16. {dede:arclist titlelen='250' pagesize='5' tagid='myindex'}
  17. {dede:arcpagelist tagid='myindex'/}

上面两组标签中 tagid=”index”要对应上 ,而且 tagid 要统一,刷新页面会出来数字 123 分页了。

dede:arclist 分页存在 BUG 修复

1、修正数据库字段类型长度问题,不然{dede:arclist}中间部分代码过长会被截断{/dede:arclist}

UTF-8 的织梦程序在后台-系统-SQL 命令行工具,执行

  1. ALTER TABLE `#@__arcmulti` CHANGE `innertext` `innertext` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';

GBK 的织梦程序在后台-系统-SQL 命令行工具,执行

  1. ALTER TABLE `#@__arcmulti` CHANGE `innertext` `innertext` TEXT CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL DEFAULT '';

2、修复只能获取 10 条数据问题

  1. //打开 /include/taglib/arclist.lib.php 找到
  2.  
  3. $idsstr = join(',', $ids);
  4.  
  5. //在它下面加入
  6.  
  7. //arclist分页BUG修复
  8. $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
  9. 	tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
  10. 	$addfieldsSql
  11. 	FROM `$maintable` arc LEFT JOIN `#@__arctype` tp on arc.typeid=tp.id
  12. 	$addfieldsSqlJoin
  13. 	$orwhere $ordersql";
  14. $dsql->SetQuery($query);
  15. $dsql->Execute('tag');	
  16. while($row = $dsql->GetArray('tag')) {
  17. 	$tagids[] = $row['id'];
  18. }
  19. $idsstr = join(',', $tagids);
  20. //arclist分页BUG修复
  21.  
  22. //最后还需要在后台-系统-SQL命令行工具,执行
  23.  
  24. TRUNCATE `#@__arcmulti`;

扩展做翻页样式

找到文件 dede\include\taglib\arcpagelist.lib.php,找到方法 function multipage,翻页样式在这里修改以下是做好的一断代码可以直接复制

  1. function multipage($allItemTotal, $currPageNum, $pageSize, $tagid='')
  2. {
  3.     if ($allItemTotal == 0) return "";
  4.  
  5.     //计算总页数
  6.     $pagesNum = ceil($allItemTotal/$pageSize);
  7.  
  8.     //第一页显示
  9.     $firstPage = ($currPageNum <= 1) ? "<span>[首页]</span>" : "<a href='javascript:multi(1,\"{$tagid}\")' title='第1页'><span>[首页]</span></a>";
  10.  
  11.     //最后一页显示
  12.     $lastPage = ($currPageNum >= $pagesNum)? "<span>[尾页]</span>". $currPageNum : "<a href='javascript:multi(". $pagesNum . ",\"{$tagid}\")' title='第". $pagesNum ."页'><span>[尾页]</span></a>";
  13.  
  14.     //上一页显示
  15.     $prePage  = ($currPageNum <= 1) ? "<span>[上一页]</span>" : "<a href='javascript:multi(". ($currPageNum-1) . ",\"{$tagid}\")'  accesskey='p'  title='上一页'><span>[上一页]</span></a>";
  16.  
  17.     //下一页显示
  18.     $nextPage = ($currPageNum >= $pagesNum) ? "<span>[下一页]</span>" : "<a href='javascript:multi(". ($currPageNum+1) .",\"{$tagid}\")' title='下一页'><span>[下一页]</span></a>";
  19.  
  20.     //共X页 共X条记录
  21.     $pagesNum2 = "&nbsp;&nbsp;共&nbsp;".$pagesNum."&nbsp;页&nbsp;&nbsp;共&nbsp;".$allItemTotal."&nbsp;条记录";
  22.  
  23.     //按页显示
  24.     $listNums = "";
  25.     $listNums.= $firstPage;
  26.     $listNums.= $prePage;
  27.     for ($i=($currPageNum-4); $i<($currPageNum+9); $i++) {
  28.         if ($i < 1 || $i > $pagesNum) continue;
  29.         if ($i == $currPageNum)
  30.         {
  31.             $listNums.= "<a href='javascript:void(0)' class='thislink'><span>".$i."</span></a>";
  32.         }else 
  33.         {
  34.             $listNums.= " <a href='javascript:multi(". $i .",\"{$tagid}\")' title='". $i ."'><span>". $i ."</span></a> ";
  35.         }
  36.     }
  37.     $listNums.= $nextPage;
  38.     $listNums.= $lastPage;
  39.     $listNums.= $pagesNum2;
  40.  
  41.     $returnUrl = $listNums;
  42.     return $returnUrl;
  43. }

刷新后效果:[首页][上一页]12345[下一页][尾页]

CSS 分页样式

在模板头文件 head 中间加入如下代码:

  1. <style>
  2. * {
  3.     padding: 0;
  4.     margin: 0;
  5. }
  6. /*
  7.   * 外面盒子样式---自己定义
  8.   */
  9.  
  10. .page_div {
  11.     font-size: 12px;
  12.     font-family: "microsoft yahei";
  13.     color: #666666;
  14.     margin-right: 10px;
  15.     padding-left: 42px;
  16.     box-sizing: border-box;
  17. }
  18. /*
  19.  * 页数按钮样式
  20.  */
  21.  
  22. .page_div span {
  23.     min-width: 30px;
  24.     height: 28px;
  25.     border: 1px solid #dce0e0!important;
  26.     text-align: center;
  27.     margin: 0 4px;
  28.     cursor: pointer;
  29.     line-height: 28px;
  30.     color: #666666;
  31.     font-size: 13px;
  32.     display: inline-block;
  33. }
  34. </style>

调用 CSS 样式:

  1. <div class="page_div" align="center">
  2.     {dede:arcpagelist tagid='index'/}
  3. </div>

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

已有 311 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!