你现在的位置:首页 > PHP网站建设知识库 > phpcms > 正文

phpcms v9调用文章关键字的自动调用关联文章的方案(非关联字段)

最近在做关键字的关联文章自动调用
想了也试了好几天终于解决了
不过我使用的增加pc标签的方式
网友可能会问为什么不用扩展函数也下
其实我也想啊可是总是在多次循环后出现了表无缘无故的模型表上去了
注意我已经把模型表获取了
读取多站点时的新闻表时总是读成了模型表
可能是pc的面向对象的时候有出错了,提醒官方看一下吧
不说了把自己的代码贴上来

{pc:content action="keywords" catid="$catid" listorder="listorder desc" cache="240" num="8" id="$id" keywords="$keywords"}
{loop $data $r}
<a href="{$r[url]}">{$r[title]}</a> <br />
{/loop}
{/pc}

打开文件\phpcms\modules\content\classes\content_tag.class.php

/**
* 内容页关键字标签
* @param $data
*/
public function keywords($data) {

$catid = intval($data['catid']);
$array=$arrid=array();
if(!$this->set_modelid($catid)) return false;
$i=0;
foreach($data['keywords'] as $tag)
{

if(isset($data['where'])) {
$sql = $data['where'];
} else {
$thumb = intval($data['thumb']) ? " AND thumb != ''" : '';
}
$num=ceil($data['limit']/count($data['keywords']));
if(isset($data['cache'])) {
$t=intval($data['cache']);
$dt=time()-$data['cache']*3600;
$dt = " AND inputtime > ".$dt;
}
else $dt='';
$sql="`title` LIKE '%$tag%' and status=99 and catid=$catid and id!=$data[id]".$thumb.$dt;
$return = $this->db->select($sql, '*',$num, $data['order'], '', 'id');
if(!empty($return)){
foreach($return as $info)
{
if($i<$data['limit'])
{
if(!in_array($info['id'],$arrid))
{
$key = $info['catid'].'-'.$info['id'];
$array[$key] = string2array($info['data']);
$array[$key]['url'] = go($info['catid'],$info['id']);
$array[$key]['id'] = $info['id'];
$array[$key]['catid'] = $info['catid'];
$array[$key]['title'] = $info['title'];
array_push($arrid,$info['id']);
$i++;
}
}
}
}
$sql="";
}
return $array;
}