不尽江河 發表於 2023-7-21 00:00:00

phpcms V9 全站文章点击排行榜标签

<p>
我们在做内容站的时候,经常需要使用到文章排行榜,但phpcms默认的pc调用标签是需要具体栏目ID的,那么如何调用全站文章的点击排行榜呢?官方不给方法,我们只好自己创造方法了。步骤如下:<br>
①打开\phpcms\modules\content\classes\content_tag.class.php文件;<br>
②找个位置添加以下代码(首行时间可以自由修改,方便后期查询):<br>
 </p>
<div>

<p>
代码如下:</p>
</div>
<div id="phpcode2">
<br>
/** 2013年4月23日 <br>
* sitehits站点点击排行 <br>
* @param $data <br>
*/<br>
function sitehits($data){ <br>
if(emptyempty($data['siteid'])) return false; <br>
$siteid = intval($data['siteid']); <br>
$this-&gt;hits_db = pc_base::load_model('hits_model'); <br>
$category_content = getcache('category_content','commons'); <br>
$catid = ''; <br>
//获取站点下所有栏目ID <br>
foreach($category_contentas$key=&gt;$val){ <br>
if($val==$siteid){ <br>
$catid .= $comma.$key; <br>
$comma=','; <br>
} <br>
} <br>
//获取点击排行 <br>
$r = $this-&gt;hits_db-&gt;select('catid in('.$catid.')','hitsid',$data['limit'],$data['order']); <br>
$return = array(); <br>
$sitemodel_model_db = pc_base::load_model('sitemodel_model'); <br>
$this-&gt;db_config = pc_base::load_config('database'); <br>
$tablepre = $this-&gt;db_config['default']['tablepre']; <br>
foreach($ras$key){ <br>
preg_match_all('/-(\d+)-/',$key['hitsid'],$modelid); <br>
$id = substr($key['hitsid'],(strpos($key['hitsid'],'-',2)+1)); <br>
$tablename = $sitemodel_model_db-&gt;get_one(array('modelid'=&gt;$modelid),'tablename'); <br>
$this-&gt;db-&gt;table_name = $tablepre.$tablename['tablename']; <br>
$return[] = array_merge($return,$this-&gt;db-&gt;get_one(array('id'=&gt;$id))); <br>
} <br>
return$return; <br>
} </div>
<p>
 </p>
<p>
③备份文件,以防后期pc程序升级时被覆盖;</p>
<p>
④前端页面模板调用方法(示例):</p>
<p>
 </p>
<div>

<p>
代码如下:</p>
</div>
<div id="phpcode3">
<br>
{pc:content action="sitehits" siteid="4" num="10" order="views DESC" cache="3600"} {loop $data$r} <br>
"{$r}" target="_blank"&gt;{$r}<br>
{/loop} <br>
{/pc} </div>
<p>
 </p>
<p>
文章结束。</p>
頁: [1]
查看完整版本: phpcms V9 全站文章点击排行榜标签