自定义修改content_tag类,做到pc标签循环调用方法:
这个方法来源自PC V9自身的调用方式{pc:content 参数名=“参数值” 参数名=“参数值” 参数名=“参数值”},比如:
{pc:content action=“lists” cache=“3600” num=“20” page="$page"}{/pc}
这里的action,比较常见的是:栏目category、列表lists、推荐位position、相关文章relation、热门排行点击量hits、可视化pc_tag,具体方法函数文件:phpcms/modules/content/classes/content_tag.class.php。
根据里面这些函数写法,不防为广告位也自定义pc标记调用函数:
/**
* 广告位循环调用
* @param $data
*/
public function ads($data) {
$this->dbads = pc_base::load_model('poster_model');
$where = '1';
$spaceid = $data['spaceid'] ? intval($data['spaceid']) :"";
if ($spaceid) $where .= " AND `spaceid`='".$spaceid."' AND disabled='0'" ;
$return= $this->dbads->select($where, '*', $data['limit'], $data['order']);
$result=array();
foreach ($return AS $value){
$result[$value['id']]['title']=$value['name'];
$temp=string2array($value['setting']);
$result[$value['id']]['alt']=$temp['1']['alt'];
$result[$value['id']]['imageurl']=$temp['1']['imageurl'];
$result[$value['id']]['url']=$temp['1']['linkurl'];
}
return $result;
}
注:上面的函数代码加在最后类的结尾前,上一个函数结尾处。
这样,前台模板文件就可以这样调用指定id、指定条数的广告数据了:
{pc:content action="ads" spaceid="9" order="listorder ASC" num="5"}
{loop $data $r}
<li><a class="item" href="{$r['url']}" title="{$r['alt']}" target="_blank"><img class="bg" src="{$r['imageurl']}" alt="{$r['alt']}" /></a></li>
{/loop}
{/pc}