Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49947
  • 博文数量: 3
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-06 14:16
文章分类
文章存档

2009年(3)

我的朋友

分类:

2009-02-23 09:29:23

自定义sql时分页链接产生严重错误:
修订方法: 文件--include\global.func.php
               840行 修改 function tag()函数
1,将参数$catid=0 改为 $ccatid=0;
2,在global 后增加 $catid 为全局变量
3,在调用pages 行数前加 $ccatid=($ccatid==0)?$catid:$ccatid;
4,修改调用pages函数传入参数$catid为$ccatid
 

function tag($module, $template, $sql, $page = 0, $number = 10, $setting = array(), $ccatid = 0)
{
    global $db, $CATEGORY, $MODULE, $URLRULE, $PHPCMS, $MODEL,$catid;
    if($sql)
    {
        @include_once PHPCMS_ROOT.$MODULE[$module]['path'].'include/output.func.php';
        $offset = 0;
        if($page !== 0)
        {
            $page = max(intval($page), 1);
            $offset = $number*($page-1);
            $sql_count = preg_replace("/^SELECT([^(]+)\s*FROM(.+)(ORDER BY.+)$/i", "SELECT COUNT(*) AS `count` FROM\\2", $sql);
            $count = cache_count($sql_count);
            $urlruleid = isset($setting['urlruleid']) ? intval($setting['urlruleid']) : 0;
            $urlrule = $urlruleid > 0 ? $URLRULE[$urlruleid] : '';
            $ccatid=($ccatid===0)?$catid:$ccatid;
            $pages = pages($count, $page, $number, $urlrule, $setting, $ccatid);
        }
        $i = 0;
        $data = array();
        $result = $db->query("$sql LIMIT $offset, $number");
        while($r = $db->fetch_array($result))
        {
            $data[++$i] = $r;
        }
        $rows = $db->num_rows($result);
        $db->free_result($result);
    }
    else
    {
        $data = array();
        $number = $rows = $count = $page = 0;
        $pages = '';
    }
    require_once template($module, $template, 1);
    $func = '_tag_'.$module.'_'.$template;
    $func($data, $number, $rows, $count, $page, $pages, $setting);
}

阅读(1526) | 评论(1) | 转发(0) |
0

上一篇:没有了

下一篇:phpcms2008修改碎片时写入为空

给主人留下些什么吧!~~

chinaunix网友2009-07-23 15:13:57

非常感谢