Coldfusion MX广告轮换系统制作教程

wait 蓝色理想
CF里面没有提供象ASP里那样的广告组件,但是这并不能说明就不能做出功能强大的广告系统,这里我放上一个简单的广告轮换系统,也是我CCF论坛里面用的.功能,有显示次数和点击次数.在这基础上扩展比较容易,可以分类显示,下面的代码只是显示 大广告条.只是想抛砖引玉,大家举一反三,就能做出功能更加强大的广告系统出来.

<!--- 判断是否有地址传递 --->
<CFIF NOT IsDefined("URL.ADID")>
<!--- 默认为显示广告 --->
<CFLOCK TIMEOUT="10">

<CFPARAM NAME="Application.AD" TYPE="string" DEFAULT="">

<CFIF ListLen(Application.AD) EQ 0>
<cfquery name="getID" datasource="#DSN#">
select adid from ad
</cfquery>

<CFSET Application.AD = ValueList(getID.ADID)>
</CFIF>

<CFSET ThisAdID = ListGetAt(Application.AD, 1)>
<CFSET Application.AD = ListDeleteAt(Application.AD, 1)>
</CFLOCK>

<cfquery name="ad" datasource="#DSN#">
select * from ad
where adid='#ThisAdID#'
</cfquery>

<!--- 更新显示次数 --->

<CFSET ADSHOW=AD.SHOW+1>

<cfquery name="updateshow" datasource="#DSN#">
UPDATE AD
SET show='#ADSHOW#'
where ADID='#AD.ADID#'
</cfquery>

<!--- 显示广告 --->
<a href="javascript:location.reload()">刷新</a><p>
<cfoutput query="ad">
<a href="ad.cfm?ADID=#URLEncodedFormat(ADID)#" title="#title#" target="_blank"><img src="#IMAGE#" border="0" alt="#title#"></a><p>

<br>
</cfoutput>

<cfelse>

<!--- 如果有传递有参数 --->
<cfquery name="gotoURL" datasource="#DSN#">
SELECT ADID,URL,CLICK FROM AD
WHERE ADID='#URL.ADID#'
</cfquery>

<!--- 点击数加1 --->
<CFSET ADCLICK=GOTOURL.CLICK+1>

<CFQUERY DATASOURCE="#DSN#" name="UPDATECLICK">
UPDATE AD
SET CLICK='#ADCLICK#'
WHERE ADID='#URL.ADID#'
</CFQUERY>

<!--- 转向广告链接地址 --->
<cfoutput query="gotoURL">
<SCRIPT LANGUAGE="JavaScript"> 
self.location ='#URL#'; 
</SCRIPT> 
</cfoutput>
</CFIF>

代码拷贝框
以下是引用片段:

<!--- 判断是否有地址传递 --->
<CFIF NOT IsDefined("URL.ADID")>
<!--- 默认为显示广告 --->
<CFLOCK TIMEOUT="10">

<CFPARAM NAME="Application.AD" TYPE="string" DEFAULT="">

<CFIF ListLen(Application.AD) EQ 0>
<cfquery name="getID" datasource="#DSN#">
select adid from ad
</cfquery>

<CFSET Application.AD = ValueList(getID.ADID)>
</CFIF>

<CFSET ThisAdID = ListGetAt(Application.AD, 1)>
<CFSET Application.AD = ListDeleteAt(Application.AD, 1)>
</CFLOCK>

<cfquery name="ad" datasource="#DSN#">
select * from ad
where adid='#ThisAdID#'
</cfquery>

<!--- 更新显示次数 --->

<CFSET ADSHOW=AD.SHOW+1>

<cfquery name="updateshow" datasource="#DSN#">
UPDATE AD
SET show='#ADSHOW#'
where ADID='#AD.ADID#'
</cfquery>

<!--- 显示广告 --->
<a href="javascript:location.reload()">刷新</a><p>
<cfoutput query="ad">
<a href="ad.cfm?ADID=#URLEncodedFormat(ADID)#" title="#title#" target="_blank"><img src="#IMAGE#" border="0" alt="#title#"></a><p>

<br>
</cfoutput>

<cfelse>

<!--- 如果有传递有参数 --->
<cfquery name="gotoURL" datasource="#DSN#">
SELECT ADID,URL,CLICK FROM AD
WHERE ADID='#URL.ADID#'
</cfquery>

<!--- 点击数加1 --->
<CFSET ADCLICK=GOTOURL.CLICK+1>

<CFQUERY DATASOURCE="#DSN#" name="UPDATECLICK">
UPDATE AD
SET CLICK='#ADCLICK#'
WHERE ADID='#URL.ADID#'
</CFQUERY>

<!--- 转向广告链接地址 --->
<cfoutput query="gotoURL">
<SCRIPT LANGUAGE="JavaScript"> 
self.location ='#URL#'; 
</SCRIPT> 
</cfoutput>
</CFIF>

GAME OVER
这广告是改自BEN FORTA的教程的.他介绍的广告条制作方法原理都差不多,但是功能少的可怜,不能URL转向.不能记录显示次数和点击次数,所以我就改了他,自己加了些功能在里面.

原理:把广告数据放在一个数据库的表里面,一次提取所有的广告编号(ID),把这ID存放在一个APPLICATION变量里面,我显示一个,就从这个APPLICATION变量里面删除这个显示过的广告ID,下次就不会显示这个广告条了.直到所有的广告条都显示过以后,如果APPLICATION变量为空了,重新查询数据库,调取所有的广告ID,,,一直这样循环下去.

提示一下:把上面保存一个文件改上你自己的数据库行了.显示广告,广告条URL转向都在这个文件里面.

请注意这个变量:Application.AD ,这是个应用程序变量,我把他定义成一个字符串,在CF字符串里面可以这样 Application.AD="I'm wait" 也可以这样 Application.AD=" 1 2 3 4 5 6 7 9",我这广告就是用后面这个
再说说这个比喻:例如我是第一次访问.就调用Application.AD="1" 然后删除这个Application.AD="1" 下次就只剩下:Application.AD=" 2 3 4 5 6 7 9" 一次少一个,就这实现了轮换效果.当然,一直到全部显示完,然后重新查询数据库,提取所有广告ID.放到Application.AD这个字符串里面
注意看这句:
<CFIF ListLen(Application.AD) EQ 0>

意思就是:如果我这个Application.AD 长度为0了,就重新查询数据库然后把查询结果放在Application.AD变量里面.注意.要测试列表的长度不能用LEN(),而是用专门测试列表长度的函数ListLen
<cfquery name="getID" datasource="#DSN#">
select adid from ad
</cfquery>

<CFSET Application.AD = ValueList(getID.ADID)>

如果,还有没有显示完一次轮换,那肯定不是等于0,那就不会重新查询数据库.

至于得到第一个字符,可以用
<CFSET ThisAdID = ListGetAt(Application.AD, 1)>
然后删除这个.下次就轮到下个了.
<CFSET Application.AD = ListDeleteAt(Application.AD, 1)>

重点就是这些,至于下面那些更新显示次数,和计数显示次数,都是普通的CF代码.没什么特别的.

(0)

相关推荐

  • Coldfusion MX广告轮换系统制作教程

    wait 蓝色理想CF里面没有提供象ASP里那样的广告组件,但是这并不能说明就不能做出功能强大的广告系统,这里我放上一个简单的广告轮换系统,也是我CCF论坛里面用的.功能,有显示次数和点击次数.在这基础上扩展比较容易,可以分类显示,下面的代码只是显示 大广告条.只是想抛砖引玉,大家举一反三,就能做出功能更加强大的广告系统出来. <!--- 判断是否有地址传递 ---> <CFIF NOT IsDefined("URL.ADID")> <!--- 默认为显示

  • 好人共享的一个万能Ghost系统制作教程附相关软件下载第1/3页

    一直都为封装好的ghost版系统而惊讶,今天发现原来有人共享了万能ghost系统制作方法,特留个印象,以后自己就可以制作万能Ghost系统了 一.前期基础工作 ================= 1.准备所需工具软件(www.ylmf.net提供下载) *S&R&S_V9.6.0608 智能系统封装工具 *DEPLOY.CAB(在系统安装光盘:\SUPPORT\TOOLS目录下自带) *Ghost_v8.0 & v8.2(v8.0以上版本才能够支持NTFS分区) *Windows2

  • Coldfusion MX技巧精华收集(1)第1/5页

    Coldfusion 结合 Access 中文显示问题 作者: Kyle 12/11/02 内容: 首先,在每一页要传递和处理中文的页面顶部加上如下代码(也可以放在application.cfm里,但在有些情况下会有问题): <cfprocessingdirective pageencoding="gb2312">  <cfcontent type="text/html; charset=gb2312">  <cfset setEnco

  • SS xspace风格模板制作教程

    SS 风格模板区引导帖,来此必看![内含SS风格相关教程链接] 一.本版版规 引用: http://www.discuz.net/thread-759546-1-1.html本版供SupeSite/X-Space模板爱好者交流讨论.鼓励大家互助分享!二.发布分享模板格式 引用: http://www.discuz.net/viewthread.php?tid=759558发布和预览风格的发帖格式规范,违者当做删除处理.三.SS 风格模板相关教程 引用: ss6.0模板制作教程(二) ss6.0模

  • 分享10篇优秀的jQuery幻灯片制作教程及应用案例

    幻灯片效果是常用的内容展示方式之一,这是一种在有限的网页空间内展示系列项目时非常好的方法.今天要给大家分享的是10篇非常棒的 jQuery 幻灯片教程及16个优秀的 jQuery 幻灯片应用案例. 10篇 jQuery 幻灯片制作教程Create Beautiful jQuery slider tutorial jQuery Plugin – Feature List Create an Image Rotator with Description (CSS/jQuery) Moving Box

  • 40款非常棒的jQuery 插件和制作教程(系列一)

    本文向大家分享40个实用的 jQuery 插件以及制作教程. Parallax Slider with jQuery ( 演示| 下载 ) 带立体效果的 jQuery 幻灯片插件,很酷! Merging Image Boxes with jQuery ( 演示| 下载 ) 非常酷的带消融效果的 jQuery 相册插件,太靓了! Sweet Thumbnails Preview Gallery ( 演示| 下载 ) 带缩略图预览效果的 jQuery 相册插件 Portfolio Zoom Slid

  • 精心挑选的15个jQuery下拉菜单制作教程

    今天本文就为大家挑选了25个非常好的 jQuery 下拉菜单制作教程和示例. Slide Down Box Menu with jQuery and CSS3 ( 演示 | 下载 ) Fancy Drop Down Menus Using CSS and JQuery. ( 演示 | 下载 ) Sliding Jquery Menu ( 演示 | 下载 ) Create Simple Dropdown Menu Using jQuery ( 演示 | 下载 ) Designing the Dig

  • 40款非常棒的jQuery 插件和制作教程(系列二)

    jQuery 以其插件众多.独特.轻量以及支持大规模的网站开发闻名.本文继续向大家分享实用的 jQuery 插件,可以根据您的项目需要来选择使用.<<前一篇:40款非常棒的 jQuery 插件和制作教程(系列一)>> Client Testimonials Powered by PHP, XML and jQuery ( 演示| 下载 ) 结合 jQuery 和  XML 制作的客户感言插件,吸引更多用户使用你的产品. Coding a Rotating Image Slidesh

  • js几个广告轮换广告代码

    我们 几个广告轮换广告代码 BODY { FONT-SIZE: 12px } TD { FONT-SIZE: 12px } var i=0; var adl=new Array(6,6,6); //6是设置的时间 var timer=setInterval("run()",adl[i]*1000); function run() { for(j=0;j [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • ubuntu用 vmware 安装win10系统的教程(分享)

    1,下载 VMware Workstation 14 Pro 官网:https://www.vmware.com/cn.html 需要注册一下才能下载,当然你也可以在其他网站下载.需要下载VMware Workstation 14.0.0 Pro for Linux 这个版本,下载结束之后的文件是:VMware-Workstation-Full-14.0.0-6661328.x86_64.bundle 永久激活密钥: CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ZC3WK-AFX

随机推荐