首页 > php教程 > php手册 > 正文

分享一个调用广告位的代码(函数或Widget类)

php中文网
发布: 2016-06-07 11:44:21
原创
1176人浏览过

自己写的一个调用广告位的函数和Widget类
首先是函数:缓存,自定义广告位模板。<?php <br /> function Ad($id=0){<br>     if(intval($id)){<br>         $ad = S("ad_".$id);<br>         if(empty($ad)){<br>             $ad = '';<br>             $adinfo = M('adplace')-&gt;find($id);<br>             if(!$adinfo || $adinfo['status']==0){<br>                 return '广告位已经关闭';<br>             }else{<br>                 import(Think.Core.View);<br>                 $view = new View;<br>                 $template = APP_PATH."Tpl/Home/Ad/".($adinfo['tpl']?$adinfo['tpl']:'index').".html";<br>                 if(!is_file($template)){return '模板路径错误';}<br>                 $to = APP_PATH.'Runtime/Cache/'.GROUP_NAME.'/'.md5($template).'.php';<br>                 $width = $adinfo['adwidth'];<br>                 $height = $adinfo['adheight'];<br>                 $typeid = $adinfo['typeid'];<br>                 switch($adinfo['typeid']){<br>                     case 1:<br>                         $adlist = M('ad')-&gt;where(array('pid'=&gt;$adinfo['id'],'status'=&gt;1))-&gt;order('sort asc,id desc')-&gt;select();<br>                         foreach($adlist as $t){<br>                             $v['title'] = $t['title'];<br>                             $v['thumb'] = $t['ad_file'];<br>                             $v['linkurl'] = $t['ad_url'] ? $t['ad_url'] : $t['url'];<br>                             $tags[] = $v;<br>                         }<br>                         if($tags){<br>                             $view-&gt;display($template);<br>                             if(!is_file($to)){return '配置错误';}<br>                             ob_start();<br>                             include $to;<br>                             $ad = ob_get_contents();<br>                             ob_clean();<br>                         }<br>                     break;<br>                     case 2:<br>                         $adlist = M('ad')-&gt;where(array('pid'=&gt;$adinfo['id'],'status'=&gt;1))-&gt;order('sort asc,id desc')-&gt;select();<br>                         foreach($adlist as $t){<br>                             $v['title'] = $t['title'];<br>                             $v['thumb'] = $t['ad_file'];<br>                             $v['linkurl'] = $t['ad_url'] ? $t['ad_url'] : $t['url'];<br>                             $tags[] = $v;<br>                         }<br>                         if($tags){<br>                             $view-&gt;display($template);<br>                             if(!is_file($to)){return '配置错误';}<br>                             ob_start();<br>                             include $to;<br>                             $ad = ob_get_contents();<br>                             ob_clean();<br>                         }<br>                     break;<br>                     case 3:<br>                         $adlist = M('ad')-&gt;where(array('pid'=&gt;$adinfo['id'],'status'=&gt;1))-&gt;order('sort asc,id desc')-&gt;find();<br>                         if($adlist){<br>                             $view-&gt;display($template);<br>                             if(!is_file($to)){return '配置错误';}<br>                             ob_start();<br>                             include $to;<br>                             $ad = ob_get_contents();<br>                             ob_clean();<br>                         }<br>                     break;<br>                 }<br>                 //生成缓存<br>                 S("ad_".$id,$ad);<br>             }<br>         }<br>         return $ad;<br>     }else{<br>         return '没有广告位';<br>     }<br> }<br> ?&gt;下面这个是用Widget类,好像用不了缓存,其实是不会写,脑子不会转弯了。<?php <br /> class AdWidget extends Action{<br>     public function show($id=0){<br>         if($id){<br>             $adinfo = M('adplace')-&gt;find($id);<br>             if(!$adinfo || $adinfo['status']==0){<br>                 echo '';<br>             }else{<br>                 $this -&gt; assign('id' , $id);<br>                 $this -&gt; assign('width' , $adinfo['adwidth']);<br>                 $this -&gt; assign('height' , $adinfo['adheight']);<br>                 $typeid = $adinfo['typeid'];<br>                 $this -&gt; assign('typeid' , $typeid);<br>                 switch($adinfo['typeid']){<br>                     case 1:<br>                         $adlist = M('ad')-&gt;where(array('pid'=&gt;$adinfo['id'],'status'=&gt;1))-&gt;order('sort asc,id desc')-&gt;select();<br>                         foreach($adlist as $t){<br>                             $v['title'] = $t['title'];<br>                             $v['thumb'] = $t['ad_file'];<br>                             $v['linkurl'] = $t['ad_url'] ? $t['ad_url'] : $t['url'];<br>                             $tags[] = $v;<br>                         }<br>                         if($tags){<br>                             $this-&gt;assign('tags',$tags);<br>                             $this-&gt;display("Ad:index");<br>                         }<br>                     break;<br>                     case 2:<br>                         $adlist = M('ad')-&gt;where(array('pid'=&gt;$adinfo['id'],'status'=&gt;1))-&gt;order('sort asc,id desc')-&gt;select();<br>                         foreach($adlist as $t){<br>                             $v['title'] = $t['title'];<br>                             $v['thumb'] = $t['ad_file'];<br>                             $v['linkurl'] = $t['ad_url'] ? $t['ad_url'] : $t['url'];<br>                             $tags[] = $v;<br>                         }<br>                         if($tags){<br>                             $this-&gt;assign('tags',$tags);<br>                             $this-&gt;display("Ad:index");<br>                         }<br>                     break;<br>                     case 3:<br>                         $adlist = M('ad')-&gt;where(array('pid'=&gt;$adinfo['id'],'status'=&gt;1))-&gt;order('sort asc,id desc')-&gt;find();<br>                         if($adlist){<br>                             $this-&gt;assign('adlist',$adlist);<br>                             $this-&gt;display('Ad:index');<br>                         }<br>                     break;<br>                 }<br>             }<br>         }else{<br>             echo '';<br>         }<br>     }<br> }<br> ?&gt;调用方法:{:Ad(3)}<br><hr> <br> {:R('Ad/show',array('id'=&gt;3),'Widget')}我个人喜欢那个Ad($id)函数,调用方便,还能缓存。不知道效率上哪个好一点。对Widget类,不是太明白,刚刚看了资料临时写的。

AD:真正免费,域名+虚机+企业邮箱=0元

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号