例えば全ページ動的生成をする会員サイトでも、利用規約・会社概要等へのページリンクリストやお知らせ記事のリストなどは会員・非会員(ログイン状態)に関係なく同じコンテンツを出力することがあります。そのため、ファイル出力を「静的」にして会員・非会員(ログイン状態)に関係のないコンテンツは予めファイルに書き出しページ表示時の負荷を軽減しつつ、ユーザーの状態に応じて内容を変える必要のある部分等はページを表示する際に動的生成を行うような場合に利用します。
下記にサンプルコードを示します。MTDynamicMTML
で囲んだ部分のタグは再構築をして静的生成されたHTMLファイル内にそのまま残っており、ページを表示する際に動的処理が行われログイン状態に応じた表示を返します。お知らせの部分は再構築時に記事リストがHTMLファイル内に書き出されます。
<mt:dynamicmtml>
<mt:iflogin>
<mt:membercontext><p><mt:membernickname escape />さん、ようこそ。</p></mt:membercontext>
<mt:else>
<p><strong>ログインしてください。</strong></p>
</mt:else>
</mt:iflogin>
</mt:dynamicmtml>
<h2>お知らせ</h2>
<mt:entries limit="5" sort_by="published_on" sort_order="descend">
<mt:if name="__first__"><ul></mt:if>
<li><mt:entrytitle escape /></li>
<mt:if name="__last__"></ul></mt:if>
</mt:entries>
HTMLを出力するもののpt-view.phpを通して動的処理をするのがポイントです。(通常静的生成されたファイルはpt-view.phpを通さず表示します。).htaccessやpt-view.phpの設定等、詳しくは「 PowerCMS Xで DynamicMTMLを利用する | PowerCMS X ブログ」をご覧ください。