首页 > 使用教程 > 正文

V9如何调用全站模型的数据
2022-04-02 21:01:00   来源:   评论:0 点击:

在phpcms libs classes model class php增加以下程序:* @param string $sql 查询条件* final public function count_sql($sql) {$
在phpcms\libs\classes\model.class.php增加以下程序:

  1.  
    * @param string $sql 查询条件
  2.  
    */
  3.  
    final public function count_sql($sql) {
  4.  
    $this->query($sql);
  5.  
    $res = $this->db->fetch_next();
  6.  
    $this->db->free_result();
  7.  
    return $res['num'];
  8.  
    }

在phpcms\modules\content\classes\content_tag.class.php增加


  1.  
    /**
  2.  
    * 全站最新内容
  3.  
    */
  4.  
    public function newcontent($data){
  5.  
    $page = $data['page'] ? intval($data['page']) : 1;
  6.  
    $pagesize = intval($data['limit']) ? intval($data['limit']) : '10';
  7.  
    $maxnum = $data['maxnum'] ? intval($data['maxnum']) : 100;
  8.  
    $setpages = $data['setpages'] ? intval($data['setpages']) : 10;
  9.  
    $models = getcache('model', 'commons');
  10.  
    $sql = 'select * from (';
  11.  
    $count_sql = 'select sum(tmpcount) as num from (';
  12.  
    $i = 1;
  13.  
    foreach($models as $m){
  14.  
    $sql .= '(select id,catid,typeid,title,style,thumb,keywords,description,url,inputtime from '.$this->db->db_tablepre.$m['tablename'].' where status=99 and catid in(22,7,8,9)) ';
  15.  
    if($i < count($models)) $sql .= 'union ';
  16.  
    //获取总数
  17.  
    $count_sql .= '(select count(*) as tmpcount from '.$this->db->db_tablepre.$m['tablename'].' where status=99 and catid in(22,7,8,9))';
  18.  
    if($i < count($models)) $count_sql .= 'union all ';
  19.  
    $i++;
  20.  
    }
  21.  
    $count_sql .=') as a';
  22.  
    $this->number = $this->db->count_sql($count_sql);
  23.  
    $this->number = $this->number > $maxnum ? $maxnum : $this->number;
  24.  
    $page = max(intval($page), 1);
  25.  
    $offset = $pagesize*($page-1);
  26.  
    $this->pages = pages($this->number, $page, $pagesize, $data['urlrule'], $array, $setpages);
  27.  
    $sql .= 'order by inputtime desc,id desc limit '.$maxnum.') as a limit '.$offset.', '.$pagesize;
  28.  
    $this->db->query($sql);
  29.  
    $res = $this->db->fetch_array();
  30.  
    return $res;
  31.  
    }

前台调用:


  1.  
    {pc:content action="newcontent" num="100" return="data"}
  2.  
    {loop $data $r}
  3.  
    这里是要显示的数据内容
  4.  
    {/loop}
  5.  
    {/pc}

 

相关热词搜索:

上一篇:phpcms v9中的url路由规则
下一篇:Phpcms v9程序目录结构

分享到: 收藏
评论排行
扫一扫关注公众号
全国统一服务热线 0731-84037726
座机:0731-84037726
微信扫一扫 关注我们
客服