PHPCMS V9调用全站最新文章标签的解决方法

发布时间:2020-01-29编辑:脚本学堂
本文介绍下,在phpcms v9中,调用全站最新文章的标签的修改办法,有需要的朋友,可以参考下。

共分为二个步骤完成。

步骤1,修改phpcmsmodulescontentclasses content_tag.class.php 在最后面的 } 上面添加代码:
 

复制代码 代码示例:
<span style="font-size: 13px; font-family: 'courier new', courier;">public function newcontent($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($catids as $catid){
  $catid = intval($catid);
  if(empty($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($models as $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($data as $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{
  return false;
  }
  }
</span>

步骤2,模板调用,与默认的文章列表调用很类似。
 

复制代码 代码示例:
<span style="font-size: 13px; font-family: 'courier new', courier;">{pc:content action="newcontent" num="7" order="id DESC" return="data" }
  {loop $data $r}
     <li><a href="{$r[url]}">{$r[title]}</a></li>
  {/loop}
{/pc}
</span>

简单二步,完成了在phpcms v9中调用全站最新文章标签的功能,有兴趣的朋友,动手试试吧。