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

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

698 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怎样修改首页模板?
帝国CMS怎样修改首页模板?

网站在运营过程中难免要进行小小的修修改改,此时如果找人就比较麻烦,自己改试...

1 501
帝国cms怎样展示会员总数与最新注册的会员名称?
帝国cms怎样展示会员总数与最新注册的会员名称?

如果网站会员数量较多,展示会员总数与最新注册会员名可以有效提升用户留存。...

3 452
帝国cms怎样做下载日、周、月排行功能?
帝国cms怎样做下载日、周、月排行功能?

帝国cms开发的下载站很多,许多站点基于优质用户推荐的需求就需要做下载的日...

3 484
帝国cms一级栏目一直显示本栏目暂无新增信息怎么办?
帝国cms一级栏目一直显示本栏目暂无新增信息怎么办?

今天有客户联系鸥哥,说网站一级栏目下有4个子栏目,每个子栏目都是有信息的,但...

1 405
帝国cms怎样调用一周内发布的热门榜单信息并按点击排序?
帝国cms怎样调用一周内发布的热门榜单信息并按点击排序?

帝国cms自带的js是可以实现周榜、月榜效果的,但js由于其临时加载的特性,天生...

3 736
帝国CMS怎样根据栏目关键字调用Tags信息
帝国CMS怎样根据栏目关键字调用Tags信息

在帝国cms开发过程中,我们经常会遇到这样那样的需求。就如栏目信息的展示,有...

1 528
帝国cms怎样去掉面包屑导航里的隐藏栏目
帝国cms怎样去掉面包屑导航里的隐藏栏目

帝国cms有隐藏栏目的功能,但隐藏栏目的文章如果展示,面包屑导航里会带上被隐...

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

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

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

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

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

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

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

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

0 1343
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 501
帝国cms百度AI图像去雾api接口对接插件
帝国cms百度AI图像去雾api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像去雾的功能。经过实际...

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

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

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

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

0 834
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

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