• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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代码.没什么特别的.

    上一篇:Coldfusion MX PageList之骨灰版
    下一篇:用Coldfusion生成 OFFICE 文件的代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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