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>&nbsp;
</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>