phpcms V9修改lists標(biāo)簽(實(shí)現(xiàn)調(diào)用文章所屬欄目及點(diǎn)擊數(shù))

字號(hào):


    pc程序默認(rèn)首頁是無法調(diào)用出文章的點(diǎn)擊數(shù),而調(diào)用文章所屬的欄目名稱也很復(fù)雜,需要先使用php語句進(jìn)行數(shù)據(jù)緩存后才能調(diào)用。其實(shí)我們可以一步到位,自己添加函數(shù)來實(shí)現(xiàn)在首頁/頻道頁/列表頁調(diào)用文章點(diǎn)擊數(shù)及文章所屬欄目名稱
    實(shí)現(xiàn)效果步驟如下:
    ①打開phpcmsmodulescontentclassescontent_tag.class.php文件;
    ②搜索“列表頁標(biāo)簽”,即lists標(biāo)簽函數(shù),應(yīng)該在文件的56行左右,把lists標(biāo)簽函數(shù)的整段調(diào)用代碼修改如下:
    代碼如下:
    /**
    * 列表頁標(biāo)簽
    * @param $data
    */
    publicfunction 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');
    //二次開發(fā)=============================================
    foreach($returnas &$r){
    $h_md=pc_base::load_model('hits_model');
    $get_db=$h_md->get_one(array('hitsid'=>"c-".$this->db->modelid."-".$r[id]));
    $r['views']=$get_db[views];
    $c_md=pc_base::load_model('category_model');
    $c_data = $c_md->get_one(array('catid'=>$r[catid]));
    $r['catname']=$c_data[catname];
    }
    //原文無此段落 原因:列表獲得瀏覽次數(shù)=============================================
    /* 2013年4月
    *使用方法
    * {loop $data $r}
    * {$r[catname]}-{$r[title]}-{$r[views]}
    * {/loop}
    */
    //調(diào)用副表的數(shù)據(jù)
    if (isset($data['moreinfo']) && intval($data['moreinfo']) == 1) {
    $ids = array();
    foreach ($returnas$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 ($ras$k=>$v) {
    if (isset($return[$k])) $return[$k] = array_merge($v, $return[$k]);
    }
    }
    }
    }
    return$return;
    }
    上面的函數(shù)代碼里已經(jīng)標(biāo)注了新添加標(biāo)簽的函數(shù)代碼,即23行至38行;
    ③前端頁面模板調(diào)用代碼的方法(示例)已經(jīng)在上述函數(shù)代碼里標(biāo)明,我再重新說一下:
    代碼如下:
    {loop $data$r}
    {$r[catname]}-{$r[title]}-{$r[views]}
    {/loop}