教程集 www.jiaochengji.com
教程集 >  建站教程  >  phpcms  >  正文 phpcms v9不影响升级调用全部多个模型最新文章的方法

phpcms v9不影响升级调用全部多个模型最新文章的方法

发布时间:2014-07-20   编辑:jiaochengji.com
phpcms v9 N多个模型调用全部最新文章,实在是一个很头疼的问题。今天终于花了点时间整理出来一个啦,不敢独享,发布出来与大家共享胜利成果。哈~~~

phpcms v9 N多个模型调用全部最新文章,实在是一个很头疼的问题。
今天终于花了点时间整理出来一个啦,不敢独享,发布出来与大家共享胜利成果。哈~~~

将此段函数放在扩展函数  phpcmslibsfunctionsextention.func.php内(最重要的是不影响升级):

复制代码 代码如下:

/*
参数说明:
$limit支持0,10这样的参数默认10条
$modelid支持 1,11,33 默认只调用模型1基本新闻的数据
注:不同的模型要确保调用的公共字段一样
否则会出错如每个表中都必须含有id,catid,title,url,inputtime
$where默认为空  ,需要 指定栏目  如 catid=1或者catid in(12,33)
*/
function news($limit="0,10",$modelid="1",$where='')
{
  $db=pc_base::load_model('content_model');
  if((strpos($modelid,",")>=1))
  {
   $modelid=explode(",",$modelid);
   $midarr=$dot='';
   foreach($modelid as $mid)
   {
    $midarr=$midarr.$dot.$mid;
    $dot=',';
   }
   $sq="`modelid` IN ({$midarr})";
  }
  else
  {
   $sq="`modelid`={$modelid}";
  }
  $db->table_name='v9_model';
  $models=$db->select($sq,"tablename");
  $sql='';
  $lianhe='';
  foreach($models as $name)
  {
   $sql=$sql.$lianhe."SELECT id,catid,title,url,inputtime FROM v9_{$name['tablename']}";
   $lianhe=' UNION ALL ';
  }
  $time=time();
  $sql=$sql." ".$where." order by inputtime desc limit  ".$limit;

  $allnews=$db->query($sql);
  while($r = $db->fetch_array($allnews))
  {
   if($keyfield)
   {
    $key = $r[$keyfield];
    $array[$key] = $r;
   }
   else
   {
    $array[] = $r;
   }
  }
  return $array[0];
}

前台模板调用:

复制代码 代码如下:
<?php $recent=news("0,8","1,11");?>
{loop $recent $r}
<li><a href="{$r[url]}" title="{$r[title]}">{str_cut($r[title],36,'')}</a></li>
{/loop}
{/pc}

修改完成。去测试吧。

您可能感兴趣的文章:
phpcms用什么开发的
phpcms v9不影响升级调用全部多个模型最新文章的方法
PHPCMS V9主站调用全站最新内容的方法
PHPCMS V9调用全站最新内容的方法
phpcms V9 全站文章点击排行榜的实现代码
phpcms用了什么框架?
如何让PHPCMS V9首页无法只显示推荐的友情链接
PHPCMS V9亿万级数据负载Mysql模型表分区
phpcms如何制作模板
phpcms v9更换域名后上传图片功能无效的解决办法

关键词: phpcms   
[关闭]
~ ~