cfアルバム(表示用)のソース
前回ご紹介したcfアルバム(表示用)ですが、実はソースがダウンロードできます。こちらです。
ソースの量としてはそんなにないので、こちらで見られるようにしておきます。
■Application.cfm
<cfsetting enableCFoutputOnly="yes" showDebugOutput="no"> <cfsilent> <cfif right(cgi.script_name, Len("index.cfm")) NEQ "index.cfm" AND right(cgi.script_name, 3) NEQ "cfc"> <cflocation url="index.cfm" addtoken="no"> </cfif> </cfsilent> <cfapplication name="demo_album_view" sessionmanagement="yes" sessionTimeout = "#CreateTimeSpan(1, 0, 0, 0)#"> <!--- sessionTimeoutは1日 ---> <!--- attributes変数に変換 ---> <cfparam name="attributes" type="struct" default="#structNew()#" /> <cfset structAppend(attributes,URL,true) /> <cfset structAppend(attributes,form,true) /> <cfparam name="attributes.go" default="home"> <cfset myself = "index.cfm?go="> <cfinclude template="init.cfm"> <cfinclude template="common.cfm">
■common.cfm
<!---================================================================= cmn_savecontent ==================================================================---> <cffunction name="cmn_savecontent" returnType="string" output="yes"> <cfargument name="pPrg" type="string" required="yes"> <cfset var tmp=""> <cfsavecontent variable="tmp"> <cfinclude template="#pPrg#.cfm"> </cfsavecontent> <cfreturn tmp> </cffunction>
■dsp_album.cfm
<!---///////////////////////////////////////////////////////////////// in dsp:struct //////////////////////////////////////////////////////////////////---> <cfoutput> <div id="album_view"> <p class="title">#dsp.data.artist# / #dsp.data.title# (#dsp.data.year#)</p> <table> <tr> <td><img src="#dsp.data.url#"></td> <td valign="top"> <cfif dsp.data.m_titles neq ""> <ol> <cfloop index="idx" list="#dsp.data.m_titles#" delimiters="#chr(13)##chr(10)#"> <li>#idx#</li> </cfloop> </ol> </cfif> </td> <td valign="bottom"><a href="JavaScript:history.go(-1)">BACK</a></td> </tr> <table> </div> </cfoutput>
■dsp_artists.cfm
<!---///////////////////////////////////////////////////////////////// in dsp:struct //////////////////////////////////////////////////////////////////---> <cfoutput> <cfloop index="idx" from="1" to="#arrayLen(dsp.data)#"> #dsp.data[idx].name# <span class="amazon"> <a href="http://www.utalab.com/amazon/index.cfm??go=srch&kbn=Music&srch_str=#dsp.data[idx].name#" target="_blank">AM</a> </span> <br> <cfset qry_tmp=dsp.data[idx].albums> <cfloop query="qry_tmp"> <div class="album"> <p class="image"><img src="#qry_tmp.url#" class="image"></p> <p class="caption"><a href="#myself#getAlbum&id=#qry_tmp.id#">#qry_tmp.title# (#qry_tmp.year#)</a></p> </div> </cfloop> <div class="clear"></div> <br> </cfloop> </cfoutput>
■dsp_menu.cfm
<cfoutput> <form action="index.cfm" method="get"> <!--- AからZまでループ ---> <cfloop index="idx" from="65" to="90"> <a href="#myself#getArtists&str=#chr(idx)#">#chr(idx)#</a> </cfloop> <input type="hidden" name="go" value="getArtists"> <cfparam name="attributes.str" default=""> <input type="text" name="str" size="6" value="#attributes.str#"> <input type="submit" value="SEND"> </form> </cfoutput>
■dsp_style.cfm
<cfoutput> <a href="#myself#chgStyle&style=style1">style1</a> <a href="#myself#chgStyle&style=style2">style2</a> <a href="#myself#chgStyle&style=style3">style3</a> </cfoutput>
■index.cfm
<cfparam name="cookie.style" default="style1"> <cfset request.lay_style = cookie.style> <cfswitch expression="#attributes.go#"> <!---========================================== chgStyle ===========================================---> <cfcase value="chgStyle"> <cfcookie name="style" value="#attributes.style#" expires="never"> <cflocation url="#myself#home" addtoken="no"> </cfcase> <!---========================================== home ===========================================---> <cfcase value="home"> </cfcase> <!---========================================== getArtists ===========================================---> <cfcase value="getArtists"> <!--- データ取得 ---> <cfhttp url="#request.sys_url#index.cfm?go=getArtists&artist=#URLEncodedFormat(attributes.str,request.sys_charset)#&key=#request.sys_key#" proxyServer="#request.sys_proxyServer#" proxyPort="#request.sys_proxyPort#" method="get"> <cfwddx action="wddx2cfml" input="#cfhttp.fileContent#" output="tmp"> <!--- OK ---> <cfif not tmp.is_error> <cfset dsp.data = tmp.data> <cfset layout.content = cmn_savecontent("dsp_artists")> </cfif> </cfcase> <!---========================================== getAlbum ===========================================---> <cfcase value="getAlbum"> <!--- データ取得 ---> <cfhttp url="#request.sys_url#index.cfm?go=getAlbum&id=#attributes.id#&key=#request.sys_key#" proxyServer="#request.sys_proxyServer#" proxyPort="#request.sys_proxyPort#" method="get"> <cfwddx action="wddx2cfml" input="#cfhttp.fileContent#" output="tmp"> <!--- OK ---> <cfif not tmp.is_error> <cfset dsp.data = tmp.data> <cfset layout.content = cmn_savecontent("dsp_album")> </cfif> </cfcase> </cfswitch> <!---========================================== レイアウトをセット ===========================================---> <cfset layout.style = cmn_savecontent("dsp_style")> <cfset layout.menu = cmn_savecontent("dsp_menu")> <cfinclude template="layout.cfm"> <!--- <cfsetting showDebugOutput="yes"> --->
■init.cfm
<!---========================================== layout ===========================================---> <!--- windows-31j,shift-jis,utf-8,euc-jp,iso-2022-jp,など ---> <cfset request.lay_charset = "utf-8"> <cfset request.lay_keywords = "coldfusion,album"> <cfset request.lay_description = ""> <cfset request.lay_style = "style1"> <cfset request.lay_title = "album view"> <!---========================================== system ===========================================---> <cfset request.sys_proxyServer = ""> <cfset request.sys_proxyPort = "80"> <!--- データ取得URL ---> <cfset request.sys_url = "http://demo.utalab.net/cfalbum/"> <!--- データ取得用キー ---> <cfset request.sys_key = "demo"> <!--- データ取得先のDBの文字コード ---> <cfset request.sys_charset = "euc-jp">
■layout.cfm
<!---///////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////---> <cfparam name="layout.style" default=""> <cfparam name="layout.menu" default=""> <cfparam name="layout.content" default=""> <cfoutput> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <!--- <cfheader name="Expires" value="#GetHttpTimeString(Now())#"> <cfheader name="Pragma" value="no-cache"> <cfheader name="Cache-Control" value="no-cache, no-store, must-revalidate"> ---> <cfcontent type="text/html; charset=#request.lay_charset#"> <meta http-equiv="Content-Type" content="text/html; charset=#request.lay_charset#"> <meta name="keywords" content="#request.lay_keywords#"> <meta name="description" content="#request.lay_description#"> <title>#request.lay_title#</title> <link rel="stylesheet" href="#request.lay_style#/style.css" type="text/css" /> </head> <body> <!--- div style ---> <div id="style"> #layout.style# </div> <!--- div menu ---> <div id="menu"> #layout.menu# </div> <!--- div content ---> <div id="content"> #layout.content# </div> </body> </html> </cfoutput>