主頁(yè) > 知識(shí)庫(kù) > Coldfusion MX廣告輪換系統(tǒng)制作教程

Coldfusion MX廣告輪換系統(tǒng)制作教程

熱門標(biāo)簽:百度AI接口 硅谷的囚徒呼叫中心 電話運(yùn)營(yíng)中心 客戶服務(wù) 企業(yè)做大做強(qiáng) 語(yǔ)音系統(tǒng) Win7旗艦版 呼叫中心市場(chǎng)需求
wait 藍(lán)色理想
CF里面沒(méi)有提供象ASP里那樣的廣告組件,但是這并不能說(shuō)明就不能做出功能強(qiáng)大的廣告系統(tǒng),這里我放上一個(gè)簡(jiǎn)單的廣告輪換系統(tǒng),也是我CCF論壇里面用的.功能,有顯示次數(shù)和點(diǎn)擊次數(shù).在這基礎(chǔ)上擴(kuò)展比較容易,可以分類顯示,下面的代碼只是顯示 大廣告條.只是想拋磚引玉,大家舉一反三,就能做出功能更加強(qiáng)大的廣告系統(tǒng)出來(lái). 

!--- 判斷是否有地址傳遞 --->
CFIF NOT IsDefined("URL.ADID")>
!--- 默認(rèn)為顯示廣告 --->
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> 

!--- 更新顯示次數(shù) ---> 

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> 

!--- 如果有傳遞有參數(shù) --->
cfquery name="gotoURL" datasource="#DSN#">
SELECT ADID,URL,CLICK FROM AD
WHERE ADID='#URL.ADID#'
/cfquery> 

!--- 點(diǎn)擊數(shù)加1 --->
CFSET ADCLICK=GOTOURL.CLICK+1> 

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

!--- 轉(zhuǎn)向廣告鏈接地址 --->
cfoutput query="gotoURL">
SCRIPT LANGUAGE="JavaScript"> 
self.location ='#URL#'; 
/SCRIPT> 
/cfoutput>
/CFIF>



代碼拷貝框
以下是引用片段:

!--- 判斷是否有地址傳遞 --->
CFIF NOT IsDefined("URL.ADID")>
!--- 默認(rèn)為顯示廣告 --->
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> 

!--- 更新顯示次數(shù) ---> 

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> 

!--- 如果有傳遞有參數(shù) --->
cfquery name="gotoURL" datasource="#DSN#">
SELECT ADID,URL,CLICK FROM AD
WHERE ADID='#URL.ADID#'
/cfquery> 

!--- 點(diǎn)擊數(shù)加1 --->
CFSET ADCLICK=GOTOURL.CLICK+1> 

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

!--- 轉(zhuǎn)向廣告鏈接地址 --->
cfoutput query="gotoURL">
SCRIPT LANGUAGE="JavaScript"> 
self.location ='#URL#'; 
/SCRIPT> 
/cfoutput>
/CFIF>



GAME OVER
這廣告是改自BEN FORTA的教程的.他介紹的廣告條制作方法原理都差不多,但是功能少的可憐,不能URL轉(zhuǎn)向.不能記錄顯示次數(shù)和點(diǎn)擊次數(shù),所以我就改了他,自己加了些功能在里面. 


原理:把廣告數(shù)據(jù)放在一個(gè)數(shù)據(jù)庫(kù)的表里面,一次提取所有的廣告編號(hào)(ID),把這ID存放在一個(gè)APPLICATION變量里面,我顯示一個(gè),就從這個(gè)APPLICATION變量里面刪除這個(gè)顯示過(guò)的廣告ID,下次就不會(huì)顯示這個(gè)廣告條了.直到所有的廣告條都顯示過(guò)以后,如果APPLICATION變量為空了,重新查詢數(shù)據(jù)庫(kù),調(diào)取所有的廣告ID,,,一直這樣循環(huán)下去.


提示一下:把上面保存一個(gè)文件改上你自己的數(shù)據(jù)庫(kù)行了.顯示廣告,廣告條URL轉(zhuǎn)向都在這個(gè)文件里面. 

請(qǐng)注意這個(gè)變量:Application.AD ,這是個(gè)應(yīng)用程序變量,我把他定義成一個(gè)字符串,在CF字符串里面可以這樣 Application.AD="I'm wait" 也可以這樣 Application.AD=" 1 2 3 4 5 6 7 9",我這廣告就是用后面這個(gè)
再說(shuō)說(shuō)這個(gè)比喻:例如我是第一次訪問(wèn).就調(diào)用Application.AD="1" 然后刪除這個(gè)Application.AD="1" 下次就只剩下:Application.AD=" 2 3 4 5 6 7 9" 一次少一個(gè),就這實(shí)現(xiàn)了輪換效果.當(dāng)然,一直到全部顯示完,然后重新查詢數(shù)據(jù)庫(kù),提取所有廣告ID.放到Application.AD這個(gè)字符串里面
注意看這句:
CFIF ListLen(Application.AD) EQ 0> 

意思就是:如果我這個(gè)Application.AD 長(zhǎng)度為0了,就重新查詢數(shù)據(jù)庫(kù)然后把查詢結(jié)果放在Application.AD變量里面.注意.要測(cè)試列表的長(zhǎng)度不能用LEN(),而是用專門測(cè)試列表長(zhǎng)度的函數(shù)ListLen
cfquery name="getID" datasource="#DSN#">
select adid from ad
/cfquery> 

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

如果,還有沒(méi)有顯示完一次輪換,那肯定不是等于0,那就不會(huì)重新查詢數(shù)據(jù)庫(kù). 

至于得到第一個(gè)字符,可以用
CFSET ThisAdID = ListGetAt(Application.AD, 1)>
然后刪除這個(gè).下次就輪到下個(gè)了.
CFSET Application.AD = ListDeleteAt(Application.AD, 1)> 

重點(diǎn)就是這些,至于下面那些更新顯示次數(shù),和計(jì)數(shù)顯示次數(shù),都是普通的CF代碼.沒(méi)什么特別的.

標(biāo)簽:濟(jì)南 崇左 山西 山西 安康 長(zhǎng)沙 海南 喀什

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Coldfusion MX廣告輪換系統(tǒng)制作教程》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266