编辑整理:整理来源:抖音,浏览量:61,时间:2023-03-21 09:15:02
很多朋友在用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>
这是官方默认模版里边自带的,别忘了加上这个!
谢谢Huang提醒我们更新文章!
PHPCMS V9单网页SEO设置标题为何读取不了,添加的单网页S口EO设置标题读取不了,只能读取站点名称。
解决方案:
来自官方论坛的方钢型置没直诉育言法
{if isset($SEO['tit众聚吃越盟下川变并错苗le']) && !empty($SEO['title'])}{$SEO['title']}{/if}{if $top_parentid || $catid==$r[catid] || $top_parentid==$r[catid]}{$catname}-{/if}{$SEO['site_title']}缺点:只能读取单页的标题,无法调用后台设置的SEO标题。要用多标题,建本攻议把单页写死,直接在title中增加
我自己的解决方法
由于单页他属于分类,且modelid 为0,而普通分类的modelid均不为0,鱼族同江径亚粒印所以只要在title已黄升法岩中判断一下,如果是单页则显示分类名称,其他的依然直接调用官方默认模板中的标题写法
{if $catid&&$!modelid}{$catname} - {/if}代火侵{if isset($SEO['title']) && !empty($SEO['title'])}{$SEO['title']}{/if}{$SEO['site_title']}缺点:跟上面一样。
更多关于PHPCMS标题定制法,见