Phpcms V9 调用全站最新文章的实现代码

发布时间:2020-02-16编辑:脚本学堂
本文介绍下,phpcms V9系统中调用全站最新文章的实现代码,有需要的朋友参考下吧。

Phpcms默认不支持调用全站最新文章,需要修改文件:phpcmsmodulescontentclassescontent_tag.class.php,找到以下函数:
 

复制代码 代码示例:
    /**
          * 列表页标签
          * @param $data
          */
         public function lists($data) {
             $catid = intval($data['catid']);
             if(!$this->set_modelid($catid)) return false;
             if(isset($data['where'])) {
                 $sql = $data['where'];
             } else {
                 $thumb = intval($data['thumb']) ? " AND thumb != ''" : '';
                 if($this->category[$catid]['child']) {
                     $catids_str = $this->category[$catid]['arrchildid'];
                     $pos = strpos($catids_str,',')+1;
                     $catids_str = substr($catids_str, $pos);
                     $sql = "status=99 AND catid IN ($catids_str)".$thumb;
                 } else {
                     $sql = "status=99 AND catid='$catid'".$thumb;
                 }
             }
             $order = $data['order'];
     
             $return = $this->db->select($sql, '*', $data['limit'], $order, '', 'id');
                             
             //调用副表的数据
             if (isset($data['moreinfo']) && intval($data['moreinfo']) == 1) {
                 $ids = array();
                 foreach ($return as $v) {
                     if (isset($v['id']) && !emptyempty($v['id'])) {
                         $ids[] = $v['id'];
                     } else {
                         continue;
                     }
                 }
                 if (!emptyempty($ids)) {
                     $this->db->table_name = $this->db->table_name.'_data';
                     $ids = implode('','', $ids);
                     $r = $this->db->select("`id` IN ('$ids')", '*', '', '', '', 'id');
                     if (!emptyempty($r)) {
                         foreach ($r as $k=>$v) {
                             if (isset($return[$k])) $return[$k] = array_merge($v, $return[$k]);
                         }
                     }
                 }
             }
             return $return;
         }

修改为:
 

复制代码 代码示例:
    /**
          * 列表页标签
          * @param $data
          */
         public function lists($data) {
             $catid = intval($data['catid']);
             
             if(isset($data['where'])) {
                 $sql = $data['where'];
             } else {
                 $thumb = intval($data['thumb']) ? " AND thumb != ''" : '';
                 if(!emptyempty($catid)) {
                     if(!$this->set_modelid($catid)) return false;
                     if($this->category[$catid]['child']) {
                         $catids_str = $this->category[$catid]['arrchildid'];
                         $pos = strpos($catids_str,',')+1;
                         $catids_str = substr($catids_str, $pos);
                         $sql = "status=99 AND catid IN ($catids_str)".$thumb;
                     } else {
                         $sql = "status=99 AND catid='$catid'".$thumb;
                     }
                 }
                 else {
                     $sql = "status=99".$thumb;
                 }
                     
             }
             $order = $data['order'];
     
             $return = $this->db->select($sql, '*', $data['limit'], $order, '', 'id');
                             
             //调用副表的数据
             if (isset($data['moreinfo']) && intval($data['moreinfo']) == 1) {
                 $ids = array();
                 foreach ($return as $v) {
                     if (isset($v['id']) && !emptyempty($v['id'])) {
                         $ids[] = $v['id'];
                     } else {
                         continue;
                     }
                 }
                 if (!emptyempty($ids)) {
                     $this->db->table_name = $this->db->table_name.'_data';
                     $ids = implode('','', $ids);
                     $r = $this->db->select("`id` IN ('$ids')", '*', '', '', '', 'id');
                     if (!emptyempty($r)) {
                         foreach ($r as $k=>$v) {
                             if (isset($return[$k])) $return[$k] = array_merge($v, $return[$k]);
                         }
                     }
                 }
             }
             return $return;
         }

完成以上修改后,就可以调取全站最新文章。
调用方法:
 

复制代码 代码示例:
{pc:content action="lists" num="10" order="id DESC" cache="3600"}