这是本次改版的需求,网上虽然有这个教程,但我写文章的意图在于再次有这个需求时不必去找自己的源码仿制或去百度找教程,而是直接看自己写的文章。
办法如下:
翻开/phpcms/modules/content/classes/content_tag.class.php在最终一个“}”之前张贴如下代码:

publicfunctionnewcontent($data){
$num=intval($data['limit'])?intval($data['limit']):'20';
//设置排序
switch($data['order']){
case'1':
$order='`id`ASC';
break;
case'2':
$order='`id`DESC';
break;
case'3':
$order='`inputtime`ASC';
break;
case'4':
$order='`inputtime`DESC';
break;
case'5':
$order='`updatetime`ASC';
break;
case'6':
$order='`updatetime`DESC';
break;
default:
$order='`id`DESC';
}
if($data['catid']){
$catids=explode(',',$data['catid']);
foreach($catidsas$catid){
$catid=intval($catid);
if(emptyempty($catid))continue;
$this->set_modelid($catid);
$where=$this->category[$catid]['child']?'`catid`IN('.$this->category[$catid]['arrchildid'].')':"`catid`=$catid";
$datas=$this->db->select($where,'*',$num,$order);
$data[$catid]['data']=$datas;
//记载本次的文章数
$data['num'][]=count($datas);
$model_num++;
}
}else{
$models=getcache('model','commons');
foreach($modelsas$model){
$this->db->set_model($model['modelid']);
$datas=$this->db->select('','*',$num,$order);
$data[$model['modelid']]['data']=$datas;
//记载本次的文章数
$data['num'][]=count($datas);
$model_num++;
}
}
if($data){
//获取每个模型应该截取的条数
$num=ceil($num/$model_num);
//循环条数记载用于找出条数不满足的数量然后进行均匀
$w_num=$w_num_t='';
foreach($data['num']as$num_t){
if($num_t<$num){
$w_num+=$num-$num_t;
$w_num_t++;
}
}
//判别是否有不满足均匀数的假如有那么就添加均匀值
if($w_num_t){
$num+=ceil($w_num/($model_num-$w_num_t));
}
$datas=array();
foreach($dataas$r){
$r_n='';
if(is_array($r['data']))
foreach($r['data']as$r_t){
$datas[]=$r_t;
if(++$r_n==$num)break;
}
}
return$datas;
}else{
returnfalse;
}
}

下面是我主页“今天更新”模块调用全站最新文章的代码(我还调用了点击量)

{pc:contentaction="newcontent"num="1"}
{php$categorys=getcache('category_content_'.$siteid,'commons');}
<ul>
{loop$data$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>
<h2><spanclass="todayupdate">今天更新</span><ahref="{$v['url']}"target=_blank>{str_cut($v[title],200,”)}</a><spanclass="ydcs">(阅读&nbsp;:&nbsp;{$views})</span></h2>
<pclass="description">{str_cut($v[description],500)}</p>
</li>
{/loop}
</ul>
{/pc}

假如你不想调用点击量,那么代码如下:

{pc:contentaction="newcontent"num="1"}
<ul>
{loop$data$v}
<li>
<h2><spanclass="todayupdate">今天更新</span><ahref="{$v['url']}"target=_blank>{str_cut($v[title],200,”)}</a><spanclass="ydcs">(阅读&nbsp;:&nbsp;{$views})</span></h2>
<pclass="description">{str_cut($v[description],500)}</p>
</li>
{/loop}
</ul>
{/pc}

我们可参阅调用。


声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:123456@qq.com 我们将配合处理!

原文地址:使用phpcms调用全站最新文章方法发布于2022-05-22 07:43:34

相关推荐