今回は、「コンテンツ編集・表示」です。
通常のホームページでは、静的に作られたものを表示しています。
しかし、場合によっては編集してから表示したい場合があると思います。
例えば、基本となるコンテンツ内を以下のように
編集させてから表示したい場合があると思います。
これを実現するために、「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です。