站长学院
CMS建站教程 SEO优化攻略
来源:齐鲁建站 栏目:开发教程 阅读: 日期: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调用全站文章的所有内容,希望可以帮到大家,欢迎找小编一起交流~