很多朋友在用Phpcms做站時,具體需要在列表頁、首頁調用文章列表調用文章的點擊量和評論排行,那么怎么才能做到在Phpcms v9首頁、頻道頁、列表頁、推薦位等頁面獲取文章瀏覽量和評論統計呢?
原因起于phpcms官方默認的模版沒有在列表頁面調用過文章點擊量和評論數量,而且文章的內頁調用瀏覽量hit的方法不適用于列表頁。
下面是具體的代碼,分享在此,具體在列表頁調用文章點擊量的演示在這里:http://www.cmsyou.com/support/。
一、Phpcms列表頁面取得文章點擊量及評論數量:
{pc:content action="lists" catid="$catid" num="25" order="id DESC" page="$page" moreinfo="1"} {loop $data $r} {php $db = pc_base::load_model('hits_model'); $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$r[id])); $views = $_r[views]; } {php $comment_tag = pc_base::load_app_class("comment_tag", "comment"); $comment_total = $comment_tag->count(array('commentid'=>'content_'.$catid.'-'.$r[id].'-'.$modelid));} <li><span class="rt">{date('Y-m-d H:i:s',$r[inputtime])}</span>·<a href="{$r[url]}" target="_blank"{title_style($r[style])}>{$r[title]}</a> 點擊:{$views} 評論數:{if $comment_total}{$comment_total}{else}0{/if}</li>{/loop} {$pages} {/pc}
二、Phpcms頻道頁面取得文章點擊量及評論數量:
{pc:content action="lists" catid="$v[catid]" num="5" order="id DESC"} {loop $data $v} {php $db = pc_base::load_model('hits_model'); $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$v[id])); $views = $_r[views]; } {php $comment_tag = pc_base::load_app_class("comment_tag", "comment"); $comment_total = $comment_tag->count(array('commentid'=>'content_'.$v[catid].'-'.$v[id].'-'.$modelid));} <li><a href="{$v[url]}" target="_blank"{title_style($v[style])}>{$v[title]}</a>點擊: {$views}評論數:{if $comment_total}{$comment_total}{else}0{/if}</li> {/loop} {/pc}
三、Phpcms首頁面取得文章點擊量及評論數量:
{pc:content action="lists" catid="$r[catid]" num="5" order="id DESC" return="info"} {php $categorys = getcache('category_content_'.$siteid,'commons');} <ul class="list lh24 f14"> {loop $info $v} {php $category = $categorys[$v[catid]];} {php $modelid = $category['modelid'];} {php $db = pc_base::load_model('hits_model'); $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$v[id])); $views = $_r[views]; } {php $comment_tag = pc_base::load_app_class("comment_tag", "comment"); $comment_total = $comment_tag->count(array('commentid'=>'content_'.$v[catid].'-'.$v[id].'-'.$modelid));} <li>·<a href="{$v['url']}" target="_blank" title="{$v['title']}"{title_style($v[style])}>{str_cut($v['title'],40)}</a> 點擊:{$views} 評論:{if $comment_total}{$comment_total}{else}0{/if}</li> {/loop} </ul> {/pc}
四、Phpcms推薦位取得文章點擊量及評論數量:
{pc:content action="position" posid="2" order="listorder DESC" num="4"} {php $categorys = getcache('category_content_'.$siteid,'commons');} {loop $data $r} {php $category = $categorys[$r[catid]];} {php $modelid = $category['modelid'];} {php $db = pc_base::load_model('hits_model'); $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$r[id])); $views = $_r[views]; } {php $comment_tag = pc_base::load_app_class("comment_tag", "comment"); $comment_total = $comment_tag->count(array('commentid'=>'content_'.$r[catid].'-'.$r[id].'-'.$modelid));} <h4 class="blue"><a href="{$r[url]}" title="{$r[title]}">{str_cut($r[title],36,'')}</a> 點擊:{$views} 評論:{if $comment_total}{$comment_total}{else}0{/if}</h4> <p>{if $n==1}<img src="{thumb($r[thumb],90,60)}" width="90" height="60"/>{/if}{str_cut($r[description],112)}</p> <div class="bk20 hr"><hr /></div> {/loop} {/pc}
Enjoy it!
20130228更新:
要多謝來自QQ上的網友Huang,他在看了上面的說明后,覺得在統計頁面還需要加上統計的JS,這是對的。需要在show.html、show_picture.html等模板文件底部加入以下代碼:
<script language="JavaScript" src="{APP_PATH}api.php?op=count&id={$id}&modelid={$modelid}"></script>
這是官方默認模版里邊自帶的,別忘了加上這個!