帝国论坛帝国网站管理系统交流区帝国CMS使用交流[原创]分享个自定义分页 【本版专题贴子】  
主题:[原创]分享个自定义分页 [加入收藏夹]   

xuanzm
用户头衔:举人

精华贴   :0
发贴数   :135
经验值   :741
注册时间:2014-03-25
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[原创]分享个自定义分页
注:动态下才可用

列表模板调用:
echo my_ShowListPage();

自定义分页函数:
function my_ShowListPage(){

    // 全局
        global $empire,$dbtbpre,$fun_r;//引入全局变量

        // 当前栏目
    $categoryId = $GLOBALS['navclassid']; // 当前栏目 ID
    $modid = $GLOBALS['class_r'][$categoryId]['modid']; // 当前栏目模型 ID
    $tableName = $GLOBALS['emod_r'][$modid]['tbname']; // 当前模型对应表名

    // 查询记录总数
    $query = "SELECT COUNT(*) AS total FROM {$dbtbpre}ecms_{$tableName} WHERE classid = {$categoryId}";
    $result = $empire->fetch1($query);
    $num = (int)$result['total']; // 总条数

    // 分页配置
    $pagenum = 10; // 每页显示条数
    $totalpages = max(1, ceil($num / $pagenum)); // 总页数

    $_SESSION['myshowpage']=1;
    if($_SESSION['myshowpage']>$totalpages)
    {
        $_SESSION['myshowpage']=1;
    }
   
    $_SESSION['myshowpage']=$_SESSION['myshowpage']+($num-$pagenum);
    $page = $_SESSION['myshowpage'];

    echo "<br>";
    echo $page;
    echo "<br>";

    $dolink = "index"; // 链接模板
    $dotype = ".html"; // 链接后缀
    $lencord = 5; // 页码导航长度

    /// 分页链接生成
    $pagelink = "";

    // 首页
    $pagelink .= $page > 1
        ? "<a href='{$dolink}{$dotype}'>{$fun_r['startpage']}</a> "
        : "<span>{$fun_r['startpage']}</span> ";

    // 上一页
    if ($page >= 1) {
        $prevpage = $page - 1;
        $prevlink = $prevpage == 1 ? "{$dolink}{$dotype}" : "{$dolink}_{$prevpage}{$dotype}";
        $pagelink .= "<a href='{$prevlink}'>{$fun_r['pripage']}</a> ";
    } else {
        $pagelink .= "<span>{$fun_r['pripage']}</span> ";
    }

    // 中间页
    $start = max(1, $page - intval($lencord / 2));
    $end = min($totalpages, $start + $lencord - 1);

    for ($i = $start; $i <= $end; $i++) {
        if ($i == $page) {
            $pagelink .= "<strong>{$i}</strong> ";
        } else {
            $link = $i == 1 ? "{$dolink}{$dotype}" : "{$dolink}_{$i}{$dotype}";
            $pagelink .= "<a href='{$link}'>{$i}</a> ";
        }
    }

    // 下一页
    if ($page < $totalpages) {
        $nextpage = $page + 1;
        $nextlink = "{$dolink}_{$nextpage}{$dotype}";
        $pagelink .= "<a href='{$nextlink}'>{$fun_r['nextpage']}</a> ";
    } else {
        $pagelink .= "<span>{$fun_r['nextpage']}</span> ";
    }

    // 尾页
    if ($page < $totalpages) {
        $lastlink = "{$dolink}_{$totalpages}{$dotype}";
        $pagelink .= "<a href='{$lastlink}'>{$fun_r['lastpage']}</a>";
    } else {        
        $pagelink .= "<span>{$fun_r['lastpage']}</span>";
    }

    // 下拉
    $options = "<select name='select' onchange=\"self.location.href=this.options[this.selectedIndex].value\">";
    for ($i = 1; $i <= $totalpages; $i++) {
        $link = $i == 1 ? "{$dolink}{$dotype}" : "{$dolink}_{$i}{$dotype}";
        $selected = $i == $page ? " selected" : "";
        $options .= "<option value='{$link}'{$selected}>{$fun_r['gotos']}{$i}{$fun_r['gotol']}</option>";
    }
    $options .= "</select>";

    // 输出
    echo $pagelink . " " . $options;
    echo "<br>";
    echo "totalpages:" . $totalpages;

}



我是全栈的:UI\前端\后端{欢迎合作}QQ1129799070
2024-11-21 14:16:10 已设置保密 顶部 回复 引用 报告 编辑 删除

cnnb
用户头衔:探花

精华贴   :0
发贴数   :5869
经验值   :16740
注册时间:2008-10-14
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

支持




2024-11-22 08:08:19 已设置保密 顶部 回复 引用 报告 编辑 删除

worldcms
用户头衔:进士

精华贴   :0
发贴数   :919
经验值   :4119
注册时间:2017-05-12
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

支持




2024-11-22 12:56:18 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1