国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > PhpCMS > 正文

Phpcms V9 欄目列表數據調用之文章標簽Tag調用方法

2024-09-10 07:15:01
字體:
來源:轉載
供稿:網友

早在今年三月份的時候,與大家在Phpcms V9 欄目列表調用文章點擊量及評論數量方法文章中分享了PC V9在頻道頁、列表頁、文章頁面取得文章點擊量及評論數量的調用方法,今天CMSYOU在這里,繼續說列表頁數據調用的問題.

先分享一段最新在客戶定制中的一個例子:

Phpcms V9 欄目列表數據調用之文章標簽Tag調用方法

可以看到,這個列表中,每篇文章的數據由標題、發布時間、閱讀數、評論數、縮略圖、摘要、文章關鍵詞標簽Tag組成.

那么具體怎么做到呢?直接分享調用代碼:

  1. {pc:content action="lists" catid="$catid" num="10" order="id DESC" page="$page"
  2. {loop $data $r} 
  3. {php $db = pc_base::load_model('hits_model');   $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$r[id])); $views = $_r[views]; } 
  4. {php $comment_tag = pc_base::load_app_class("comment_tag", "comment"); $comment_total = $comment_tag->count(array('commentid'=>'content_'.$catid.'-'.$r[id].'-'.$modelid));} 
  5.     <div class="cmsyouunit"> 
  6.         <h1><a href="{$r[url]}" target="_blank" title="{$r[title]}">{$r[title]}</a></h1> 
  7.         <h4>發表于<span class="ago">{date('Y-m-d H:i:s',$r[inputtime])}</span>|<span class="view_time">{if $views}{$views}次閱讀{else}哇,這是嶄新的文章!{/if}</span>|<span class="num_recom">{if $comment_total}{$comment_total}{else}0{/if}條評論</span></h4> 
  8.         <dl>  
  9.             <dt>{if $r[thumb]}<a href="{$r[url]}" target="_blank"><img src="{thumb($r[thumb],200,135)}" alt="{$r[title]}" /></a>{/if}</dt> 
  10.             <dd>{str_cut(strip_tags($r[description]), 398)}</dd> 
  11.         </dl> 
  12.         <div class="tag"> 
  13. {php $keywords = explode(' ',$r[keywords]);} 
  14. {loop $keywords $keyword} 
  15. <a href="{APP_PATH}index.php?m=content&c=tag&catid={$catid}&tag={urlencode($keyword)}" target="_blank">{$keyword}</a> 
  16. {/loop} 
  17.         </div> 
  18. </div> 
  19. {/loop} 
  20. <div id="pages" class="text-c">{$pages}</div> 
  21. {/pc} 
大家對著圖看代碼就會明白了吧?也就是說,這一段起到了調用文章標簽Tag的作用:
  1. {php $keywords = explode(' ',$r[keywords]);} 
  2. {loop $keywords $keyword
  3. <a href="{APP_PATH}index.php?m=content&c=tag&catid={$catid}&tag={urlencode($keyword)}" target="_blank">{$keyword}</a> 
  4. {/loop} //Vevb.com 

中間用了{urlencode($keyword)}這種urlencode路徑格式,避免一些瀏覽器不支持中文,當然瀏覽器支持中文的將直接顯示中文.

大家都知道,Phpcms V9默認的標簽Tag的路徑URL是:http://www.cmsyou.com/index.php?m=content&c=tag&catid=10&tag=cmsyou

這樣的方式是動態的,怎么靜態化?讓URL變得更短?

修改辦法:

1、修改程序文件,做到從源頭支持偽靜態,找到文件:/phpcms/modules/content/tag.php

查找:

  1. //查找 
  2. $page = $_GET['page']; 
  3. $datas = $infos = array(); 
  4. $infos = $this->db->listinfo("`keywords` LIKE '%$tag%'",'id DESC',$page,20); 
  5. $total = $this->db->number; 
  6. if($total>0) { 
  7. $pages = $this->db->pages; 
  8. foreach($infos as $_v) { 
  9. if(strpos($_v['url'],'://')===false) $_v['url'] = $siteurl.$_v['url']; 
  10. $datas[] = $_v
  11. //修改為: 
  12.  
  13. $page = isset($_GET['page'])?$_GET['page']:1; 
  14. $datas = $infos = array(); 
  15. $tag = iconv("utf-8","gb2312",$tag); //CMSYOU轉編碼 
  16. $infos = $this->db->listinfo("`keywords` LIKE '%$tag%'",'id DESC',$page,10); 
  17. $total = $this->db->number; 
  18. define('URLRULE',$siteurl.'/tags/'.$tag.'/'.$catid.'-{$page}.html');//偽靜態后的翻頁修正 
  19. if($total>0) { 
  20. $pages = pages($total,$page,10,URLRULE,array(),10) ; 
  21. foreach($infos as $_v) { 
  22. if(strpos($_v['url'],'://')===false) $_v['url'] = $siteurl.$_v['url']; 
  23. $datas[] = $_v

2、修改偽靜態規則,下面以.htaccess文件為例說說偽靜態規則.

RewriteRule ^tags/(.*)/([0-9]+)-([0-9]+).html$ index.php?m=content&c=tag&catid=$2&tag=$1&page=$3

添加上面這條偽靜態規則,這樣就修改后,程序上支持偽靜態了.

你的域名/tags/cmsyou標簽名/10-1.html

3、在模板前端顯示中,具體修改打開內容頁模版:content/show.html找到.

<a href="{APP_PATH}index.php?m=content&c=tag&a=lists&tag={urlencode($keyword)}" class="blue">{$keyword}</a>

修改為:

<a href="{APP_PATH}tags/{$keyword}/{$catid}-1.html" class="cmsyou">{$keyword}</a>

這樣,就三步搞定PC V9關鍵詞標簽Tag的偽靜態,URL更短,更便于優化.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江北区| 凤冈县| 海晏县| 高淳县| 白银市| 郴州市| 若尔盖县| 曲水县| 通辽市| 雅江县| 迭部县| 东阿县| 敦煌市| 垫江县| 舟山市| 绵竹市| 文化| 呼伦贝尔市| 泸溪县| 鱼台县| 达孜县| 宾阳县| 麻江县| 无棣县| 油尖旺区| 达州市| 长泰县| 修武县| 扎鲁特旗| 东乌珠穆沁旗| 新闻| 利辛县| 读书| 武川县| 玉屏| 淮阳县| 西城区| 伊春市| 大连市| 莫力| 金沙县|