Movable Type検索結果画面のMTIncludeタグでファイルを読み込む方法

Movable Type検索結果画面のMTIncludeタグでファイルを読み込む方法

Posted at April 18,2024 11:55 PM
Tag:[MovableType, MTInclude]

Movable Type検索結果画面のMTIncludeタグでファイルを読み込む方法を紹介します。

movabletype

1.はじめに

MTで再構築するファイルの拡張子を".php"にして、そのページの中で頻繁に更新される部分を、

<?php include('foo.html'); ?>

で読み込むことで、ページ全体の再構築不要で情報を更新することができます。

ただ、検索結果ページはPerlのCGIで動作するため、PHPの方法を利用することができません。

ということで、検索結果画面のMTIncludeタグでファイルを読み込む方法を紹介します。

2.検索結果画面のMTIncludeタグでファイルを読み込む

1項のfoo.phpのパスを、仮に「/var/www/html/foo.html」とします。

このファイルを検索結果画面のMTIncludeタグで読み込むには、下記の手順が必要です。

まず、mt-config.cgiに

AllowFileInclude 1

を設定します(注:4項参照)。

次に、ファイル読み込み部分を次のようにします。

<$mt:Include file="/var/www/html/foo.html"$>

これで、検索結果画面でも情報を更新する部品を利用することができます。

3.サイトパスにテンプレートタグを使用する

2項ではファイルパスに「/var/www/html」を直接記述しましたが、テンプレートタグでサイトパスを取得するには次のように記述します。

<mt:Setvarblock name="foo"><$mt:SitePath$>/foo.html</mt:setvarblock>
<$mt:Include file="$foo"$>

1行目のMTSetVarBlockタグで、サイトパスとファイル名を文字列結合したものを、変数fooに設定します。

2行目のMTIncludeタグで、fileモディファイアに「$foo」と書くことで、変数fooの内容が展開され、

<$mt:Include file="/var/www/html/foo.html"$>

と同じ結果となります。

4.注意事項

AllowFileIncludeはセキュリティ対策として、デフォルトで無効(=0)となっています。

理由は「テンプレート編集の権限だけをもつユーザーが、ファイルシステム上の任意のファイルを読み出せるのは問題であるため」のようです。

このカスタマイズを利用する場合は、上記のセキュリティに十分配慮してください。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)