今回は、「コンテンツ編集・表示」です。
通常のホームページでは、静的に作られたものを表示しています。
しかし、場合によっては編集してから表示したい場合があると思います。
例えば、基本となるコンテンツ内を以下のように
編集させてから表示したい場合があると思います。
これを実現するために、「cfsavecontent」タグを使います。
○基本
基本となるコンテンツが表示されます。
○編集・表示
「cfsavecontentタグ」の文字列が、赤で強調表示されます。
○追加表示
用意されたテーブル内に表示されます。
○基本2
テキストファイルを読み込んでから表示しています。
こちらをクリックしてください。
<cfinclude template="define.cfm">
<cfinclude template="header.cfm">
<cfswitch expression="#act#">
<cfcase value="base">
<cfinclude template="dsp_content.cfm">
<!---解説
dsp_content.cfmを展開しています。
--->
</cfcase>
<cfcase value="edit">
<cfsavecontent variable="content">
<cfinclude template="dsp_content.cfm">
</cfsavecontent>
<!---解説
dsp_content.cfmを展開したものをcontent変数にセットしています。
--->
<cfset content=Replace(content,"cfsavecontentタグ","<font color='Red'><b>cfsavecontentタグ</b></font>","ALL")>
<cfoutput>#content#</cfoutput>
</cfcase>
<cfcase value="add">
<cfsavecontent variable="content">
<cfinclude template="dsp_content.cfm">
</cfsavecontent>
<table border="1">
<tr>
<td bgcolor="Aqua"><cfoutput>#content#</cfoutput></td>
</tr>
</table>
</cfcase>
<cfcase value="base2">
<cfinclude template="dsp_content2.cfm">
<!---解説
dsp_content2.cfmを展開しています。
--->
</cfcase>
</cfswitch>
<cfinclude template="footer.cfm">
現在表示されている部分は、基本となるコンテンツです。<br> <br> cfsavecontentタグは、使い方によっては非常に便利です。<br> <br> 例えば、シングルクォーテーションとダブルクォーテーションを<br> 混在させる文字列も普通に使えます。<br> "aa"<br> 'bb'<br> "'cc'"<br> <br> SQLを使う場合にも<br> cfqueryタグ内に書く文言のように<br> cfsavecontentタグ内にSQLを書いておいて<br> cfqueryタグ内で、それらの文字列を表示させて使うと<br> 長いSQLが見やすくできたりします。<br> <br> <br> 例)<br> <br> <cfsavecontent variable="sSQL"><br> select *<br> from tmp<br> </cfsavecontent><br> <br> <cfquery name="qTmp" datasource="tbl"><br> #sSQL#<br> </cfquery><br>
<cfoutput>
#getContent()#
</cfoutput>
<cffunction name="getContent" returnType="string" output="no">
<cfset CRLF = "#chr(13)##chr(10)#">
<cfset CR = "#chr(13)#">
<cfset LF = "#chr(10)#">
<cffile action="read" file="#GetDirectoryFromPath(GetCurrentTemplatePath())#content.txt" variable="content" charset="utf-8">
<cfset content = HTMLEditFormat(content)>
<!--- HTMLEditFormat後はCRLFでは置換できずLFなら置換できる
HTMLEditFormatの説明では
「復帰文字は削除されます。改行文字は保持されます。」
とある。
--->
<cfset content = Replace(content, LF, "<br>", "all")>
<cfreturn content>
</cffunction>
※HTMLEditFormat関数で、content.txtをブラウザ表示用に変換しています。
現在表示されている部分は、基本となるコンテンツです。 cfsavecontentタグは、使い方によっては非常に便利です。 例えば、シングルクォーテーションとダブルクォーテーションを 混在させる文字列も普通に使えます。 "aa" 'bb' "'cc'" SQLを使う場合にも cfqueryタグ内に書く文言のように cfsavecontentタグ内にSQLを書いておいて cfqueryタグ内で、それらの文字列を表示させて使うと 長いSQLが見やすくできたりします。 例) <cfsavecontent variable="sSQL"> select * from tmp </cfsavecontent> <cfquery name="qTmp" datasource="tbl"> #sSQL# </cfquery>
※文字コードはUTF-8です。