下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国cms任意页/tag合集页调取数据并分页的实现代码

649 2021-05-30 02:00:01

收藏
帝国cms列表页是自带分页的,但如果不是栏目自带数据,则无法进行分页。而tag列表的tag信息就不属于栏目信息,帝国cms自带分页就无法使用。而今天有客户因为tag太多,需要做分页,结合几个页面简单糅合了一下。目前功能虽然实现,但没有做分页参数伪静态处理,整体较为low逼。后期有时间了再优化。

帝国cms任意页tag合集页调取数据并分页的实现代码

模板中加入分页代码

<?php
$search='';
$page=(int)$_GET['page'];
$page=RepPIntvar($page);
$start=0;
$line=1;//每页显示条数
$page_line=10;//每页显示链接数
$offset=$page*$line;//总偏移量
$query="select * from {$dbtbpre}enewstags";
$totalquery="select count(*) as total from {$dbtbpre}enewstags";
//类别
$add="";
$classid=(int)$_GET['cid'];
if($classid)
{
    $add=" where cid=$classid";
    $search.="&cid=$classid";
}
$query.=$add;
$totalquery.=$add;
$num=$empire->gettotal($totalquery);//取得总条数
$query=$query." order by num desc limit $offset,$line";
$sql=$empire->query($query);
$returnpage=user_page($num,$line,$page_line,$start,$page,$search,$add);
?>
 

模板里的循环

<?
  $sql=$empire->query($query);
  while($bqr=$empire->fetch($sql)){
      $bqno++;
  ?>
  <li>
    <a href="/tags-<?=$bqr[tagname]?>-0.html"><?=$bqr[tagname]?></a>
  </li>
<?
    }
?>
 

模板里分页调用

<div class="pagination"><?=str_replace('&page=','?page=',$returnpage)?></div>
 

栏目路径伪静态

/e/class/userfun.php加入如下代码
function user_page($num,$line,$page_line,$start,$page,$search,$add){
  global $fun_r;
  $num=(int)$num;
  $line=(int)$line;
  $page_line=(int)$page_line;
  $start=(int)$start;
  $page=(int)$page;
  if($num<=$line)
  {
    return '';
  }
  $search=RepPostStr($search,1);
  $snum=2;//最小页数
  $totalpage=ceil($num/$line);//取得总页数
  $firststr='<a title="'.$fun_r['trecord'].'">&nbsp;<b>'.$num.'</b> </a>&nbsp;&nbsp;';
  //上一页
  if($page<>0)
  {
    $toppage='<a href="'.eReturnRewritePageLink($add,0).'">'.$fun_r['startpage'].'</a>&nbsp;';
    $pagepr=$page-1;
    $prepage='<a href="'.eReturnRewritePageLink($add,$pagepr).'">'.$fun_r['pripage'].'</a>';
  }
  //下一页
  if($page!=$totalpage-1)
  {
    $pagenex=$page+1;
    $nextpage='&nbsp;<a href="'.eReturnRewritePageLink($add,$pagenex).'">'.$fun_r['nextpage'].'</a>';
    $lastpage='&nbsp;<a href="'.eReturnRewritePageLink($add,$totalpage-1).'">'.$fun_r['lastpage'].'</a>';
  }
  $starti=$page-$snum<0?0:$page-$snum;
  $no=0;
  for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
  {
    $no++;
    if($page==$i)
    {
      $is_1="<a class='cur'>";
      $is_2="</a>";
    }
    else
    {
      $is_1='<a href="'.eReturnRewritePageLink($add,$i).'">';
      $is_2="</a>";
    }
    $pagenum=$i+1;
    $returnstr.="&nbsp;".$is_1.$pagenum.$is_2;
  }
  $returnstr=$toppage.$prepage.$returnstr.$nextpage.$lastpage;
  return $returnstr;
}
 

nginx伪静态参数

本参数需要配合接口,没有接口可以改成帝国cms默认伪静态路径
rewrite ^([^.]*)/tags-(.+?)-(.+?).html$ $1/e/tags/index.php?tagname=$2&page=$3 last;
if (!-e $request_filename) {
  return 404;
}
if (!-f $request_filename){
    set $rule_0 1$rule_0;
}
if ($request_uri !~ "^(/d/|/e/|/html/|/images/|/s/|/search/|/skin/|/t/|/ad/)"){
    set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
    rewrite ^/tags/$ /e/action/list.php?classid=10 last;
}
if (!-e $request_filename) {
    return 404;
}

 

附注

1、如果直接在栏目目录创建php文件,实现分页伪静态就可以通过伪静态规则直接设定。
2、考虑到后台操作的便利性与统一性,以后有时间了再优化本方案伪静态规则。

本文地址:https://xzo.com.cn/develop/empire/998.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS内容简介(smalltext)增加JS对输入字数进行统计
帝国CMS内容简介(smalltext)增加JS对输入字数进行统计

在一些需要控制用户输入字数的站点中,增加用户输入字数的实时提示无疑十分友...

16 939
帝国CMS有栏目seo标题吗,在哪里设置?
帝国CMS有栏目seo标题吗,在哪里设置?

很多用惯了织梦CMS的朋友在用帝国以后就会非常困惑,因为织梦CMS他的栏目是有...

1 367
帝国cms碎片功能使用详解
帝国cms碎片功能使用详解

帝国CMS提供了强大的碎片功能,其位置位于【栏目】-》【碎片管理】-》【管理...

0 423
帝国cms网站链接域名出现了2次,访问都是404是什么原因?
帝国cms网站链接域名出现了2次,访问都是404是什么原因?

帝国cms网站链接域名出现了2次是什么原因,要怎么解决?这个问题往往出现在用户...

1 724
帝国cms投稿后怎样跳转指定页面?
帝国cms投稿后怎样跳转指定页面?

帝国cms投稿后怎样跳转的问题一直让很多人困扰。有人想跳到个人中心,也有人...

1 418
帝国cms7.5编辑器的换行符br怎样改为p元素?
帝国cms7.5编辑器的换行符br怎样改为p元素?

帝国cms7.5自带的编辑器ckeditor默认换行符是<br>,在实际应用中经常会出现问...

0 404
帝国cms网站怎样判断是动态、静态还是伪静态?
帝国cms网站怎样判断是动态、静态还是伪静态?

对于资深一点的站长或者SEO来说,一定会经常听到动态、静态、伪静态这类的词...

0 604
帝国cms怎样给广告增加排序?
帝国cms怎样给广告增加排序?

帝国cms广告系统功能比较强大,但本身并没有排序的功能。如果想要替换广告的...

3 467
推荐插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1263
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 761
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1270
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 552
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

0 1111
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

0 999
帝国cms网站会员登录与退出历史记录日志插件
帝国cms网站会员登录与退出历史记录日志插件

帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...

0 392
帝国cms多栏目多数据表自动审核推送插件
帝国cms多栏目多数据表自动审核推送插件

本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...

0 908
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入