各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > phpcms

phpcms调用广告(ad)列表方法

管理员 2022-08-28
phpcms
357
phpcms调用广告通常我们是直接使用get方式读取数据库,这种简单,但是代码有点多,记不住,所以可以采用封装为类似于list的方法

(1)普通方式调用

  1. {pc:get sql="SELECT setting FROM v9_poster WHERE spaceid = 12 AND type='images' AND disabled=0 ORDER BY listorder ASC" num="5"
  2.     {loop $data $r} 
  3.     <?php 
  4.     $narry = string2array($r['setting']); 
  5.      ?> 
  6.     <a href="{$narry[1][linkurl]}" target="_blank"><img src="{$narry[1][imageurl]}" alt="{$narry[1][alt]}" width="210" height="199"/></a> 
  7.     {/loop} 
  8. {/pc} 

(2)封装方式

找到phpcmsmodulescontentclassescontent_tag.class.php文件,找到list方法下新增ad方法
  1. /** 
  2.      * 广告列表标签 
  3.      * @param $data 
  4.      */ 
  5.     public function ad($data) { 
  6.         $poster  = pc_base::load_model('poster_model'); 
  7.         $space   = pc_base::load_model('poster_space_model'); 
  8.         $spaceid = intval($data['spaceid']); 
  9.         $siteid  = get_siteid(); 
  10.         if(empty($spaceid)) return false
  11.         $r = $space->get_one(array('siteid'=>$siteid,'spaceid'=>$spaceid)); 
  12.         if(!$r) exit(); 
  13.         if(isset($data['where'])) { 
  14.             $sql = $data['where']; 
  15.         } else { 
  16.             $sql = "`disabled` = 0 AND `spaceid` = '$spaceid' "
  17.             if (isset($data['type'])){ 
  18.                 $type = $data['type']; 
  19.                 $sql .= " AND `type` = '$type'"
  20.             } 
  21.             $now = SYS_TIME; 
  22.             if(isset($data['time']) && $data['time'] == 1){//开启时间限制 
  23.                 $sql .= " AND `startdate`<='".$now."' AND (`enddate`>='".$now."' OR `enddate`=0)"
  24.             } 
  25.         } 
  26.         $order = $data['order']; 
  27.         $return = $poster->select($sql, '*', $data['limit'], $order, '''id'); 
  28.         foreach ($return as $k => $v) { 
  29.             $return[$k]['setting'] = string2array($return[$k]['setting']); 
  30.             $return[$k]['linkurl'] = $return[$k]['setting'][1]['linkurl']; 
  31.             $return[$k]['imageurl'] = $return[$k]['setting'][1]['imageurl']; 
  32.             $return[$k]['alt'] = $return[$k]['setting'][1]['alt']; 
  33.         } 
  34.         return $return
  35.     } 

前端调用方式:
  1. {pc:content action="ad" spaceid="11" num="10" order="listorder DESC"
  2. {loop $data $r} 
  3. <a href="{$r[linkurl]}" target="_blank" alt="{$r[alt]}"
  4.         <div class="imgBox" style="background-image: url({$r[imageurl]})"></div> 
  5.  </a>       
  6.  {/loop} 
  7.  {/pc} 

还可以添加其他参数比如:
time="1"表示开启时间限制,不满足时间段的将不显示
type="images"调用类型
where="id>10":直接where条件(where条件下其他条件将失效)

改造之后,再也不用担心记不住代码了,一劳永逸





相关推荐

扫码关注

qrcode

QQ交谈

回顶部