コンテンツ編集・表示

  • このエントリーをはてなブックマークに追加
  • 人気ブログランキング

今回は、「コンテンツ編集・表示」です。

 

通常のホームページでは、静的に作られたものを表示しています。
しかし、場合によっては編集してから表示したい場合があると思います。

 

例えば、基本となるコンテンツ内を以下のように

編集させてから表示したい場合があると思います。

 

  • 特定の文字列を強調表示
  • URLにリンクを追加
  • iMODE(古い!)などのコンテンツ容量制限により、余計な空白や改行コードを削除
  • 該当コンテンツを別のコンテンツに追加

 

これを実現するために、「cfsavecontent」タグを使います。

 

○基本
基本となるコンテンツが表示されます。

 

○編集・表示
「cfsavecontentタグ」の文字列が、赤で強調表示されます。

 

○追加表示
用意されたテーブル内に表示されます。

 

○基本2
テキストファイルを読み込んでから表示しています。

 

こちらをクリックしてください。

index.cfm

<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">

dsp_content.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>
&lt;cfsavecontent variable="sSQL"&gt;<br>
select *<br>
from tmp<br>
&lt;/cfsavecontent&gt;<br>
<br>
&lt;cfquery name="qTmp" datasource="tbl"&gt;<br>
#sSQL#<br>
&lt;/cfquery&gt;<br>

dsp_content2.cfm

<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をブラウザ表示用に変換しています。

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です。

  • このエントリーをはてなブックマークに追加
  • 人気ブログランキング

この記事に関連する記事一覧

最近の投稿
カテゴリー
タグ
アーカイブ
プロフィール