15621857753

PHPCMS V9任意页面如何跨多模型调用全站最新文章

来源:齐鲁建站 栏目:开发教程 阅读: 日期:2021-01-10

本文主要介绍了PHPCMS V9任意页面如何跨多模型调用全站最新文章,在extention.func.php文件中添加二次开发的代码,实现全站调用最新文章,推荐给有此需要的朋友,值得研究使用。

phpcms想要调用全站的最新文章内容,需要进行一点点二次开发,具体方法如下。

找到/phpcms/libs/functions/extention.func.php,在其最下面添加如下代码:

/********************多模型调用最新内容"************************/
/**
* @param  $modelid 模型id,多个值之间用,隔开
* @param  $limit 数据调用量
* @param  $where 条件语句
*/
/*function news($modelid="1",$limit="0,20",$where=""){
$db=pc_base::load_model('content_model');
if((strpos($modelid,",")>=0)){
    $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,username,inputtime FROM v9_{$name['tablename']}"." ".$where;
    $lianhe=' UNION ALL ';
}
$time=time();
$sql=$sql." 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];
}*/

去掉function news开头的/*和末尾的*/注释符。

前端模板调用示例:

/*{php $news = news("1,6,7","0,10")}
{loop $news $r}
    <a href="{$r['url']}">{$r['title']}</a>
{/loop}*/

去掉开头的/*和结尾的*/注释符。

说明:

$news = news("1,6,7","0,10")中的"1,6,7"是传给$modelid的参数,表示读取模型id为1,6,7的三个模型下所有栏目的数据;"0,10"是传给$limit的参数,表示从第一条数据(偏移量为0)开始,共读取10条数据。

news()函数默认是读取模型id为1的模型下所有栏目数据,即phpcms系统原始的文章模型下的数据;默认读取最新的20条数据。另外,函数中只读取了各栏目主表中的id、catid、title、url、username、inputtime等字段的数据,各自对应的副表为"主表名_data",需要副表和其他字段数据的,自己动手改造下。

然后,就可以在首页或任意页面跨模型调用phpcms全站最新数据了。

以上就是关于PHPCMS调用全站文章的所有内容,希望可以帮到大家,欢迎找小编一起交流~

展开