CALENDAR
Sun Mon Tue Wed Thu Fri Sat
    123
45678910
11121314151617
18192021222324
252627282930 
<< June 2017 >>
SPONSORED LINKS
RECOMMEND
SELECTED ENTRIES
RECENT COMMENTS
RECENT TRACKBACK
CATEGORIES
ARCHIVES
MOBILE
qrcode
LINKS
PROFILE
OTHERS

モンタ30

モンタ満30歳ならではのブログ。今年限定。
<< B型ベイベー | main | ととどんのターニングポイントは酢飯 >>
スポンサーサイト

一定期間更新がないため広告を表示しています

| - | | - | - | pookmark |
MT(movable type)のエントリーテンプレート振り分けってどうしてますか。という話
独立開業してからというもの、事ある毎にサイト構築はMT(Movable Type)を利用してきたんですが、Tipsになるのかどうかは定かではないのですが、他に良き案があったらどなたか教えてください〜。的なエントリー。

<sub>そして、キーワードマッチングばっちりなエントリーのタイトル。</sub>
例えばの話、
今まで、「お問い合わせ」のページはエントリー・テンプレートとはちょっと体裁を変えたい。なんて時は、「お問い合わせページ」のみインデックス・テンプレートで
/term/request.php のように、出力先とファイル名を指定して書き出す。
ということをやっておりました。
だけどメニューに載せるリンクは、<MTEntries>〜</MTEntries>で自動生成させたい。
インデックス・テンプレートで書き出したページは<MTEntries>〜</MTEntries>に含まれない。と。さてどうするか。というケース。

僕は、MTのプラグインである「Compare Plugin for Movable Type」を使って、
エントリー・テンプレートからテンプレート・モジュールを読み分ける。ということで対処しています。ってこれって常識だったりするのかしら?それとも非合理的?

Compare Pluginは
MTタグの値を元にした条件分岐の機能を追加します。MTタグの値を文字列と比較したり、数値の大小の比較をすることができ。

るもので、(いままでphpで強引にやっていたんだけども、)このプラグインを使って、エントリー・テンプレートを下記のように書き換えてディスパッチだけのものにする。


まずは、MTのメインメニュー[公開]でのアーカイブ・マッピングを、
下記の通りに設定し
「category/sub_category/entry_basename.php」
トップ・カテゴリ[term]以下にエントリー[request.php]を投稿する。
(カテゴリ[/term/]に[request.php]エントリーが作成される。)

// カテゴリ名が[term]の場合はモジュールテンプレート[entry_templateA]を使用
// [term]以外の時は[entry_templateB]を使用
<MTIfEqual a="[MTEntryCategory]" b="term">
<$MTInclude module="entry_templateA" $>
<MTElse>
<$MTInclude module="entry_templateB" $>
</MTElse>
</MTIfEqual>


あるいは特定カテゴリ以下特定ファイル名を判別し、
// カテゴリ名が[term]でファイル名が[request.php]の場合はモジュールテンプレート[entry_templateA]を使用
// 以外の時は[entry_templateB]を使用
<MTIfEqual a="[MTEntryCategory]" b="term">
<MTIfEqual a="[MTEntryEntryBasename]" b="request">
<$MTInclude module="entry_templateA" $>
<MTElse>
<$MTInclude module="entry_templateB" $>
</MTElse>
</MTIfEqual>
<MTElse>
<$MTInclude module="entry_templateB" $>
</MTElse>
</MTIfEqual>


そうして、モジュールテンプレート
[entry_templateA]と[entry_templateB]には、それぞれのエントリー・テンプレートの内容を書いておく。と。

アーカイブマッピングでエントリーテンプレートを複数設置したり、とか、他に策は色々ありそうなんだけれども。
| Webデザイニング | 09:55 | comments(2) | trackbacks(0) | pookmark |
スポンサーサイト
| - | 09:55 | - | - | pookmark |
私はテンプレートが異なるコンテンツを複数管理する場合は複数のブログを使って管理するようにしています。

MultiBlog
http://www.rayners.org/plugins/multiblog/

それと蓄積型でないページ(コンテンツ)を MT で管理するのは、そもそも思想に反する?ような気がして、サイト全体を MT で構築するような運用はしないようにしています。

以前は如何に MT で全部を管理するか、みたいなことを考えていましたが、どこかで必ず無理が出てくるので...

ただ、MT で管理しているページの新着を、MT で管理していない (蓄積型ではない) ページに表示させたい、ヘッダやフッタの要素を MT と共通化・共有させたい、ということはあるので、そこは PHP の include などを駆使してテンプレートの簡易フレームワーク化みたいなことをしています。
| やまざき | 2007/01/19 5:45 PM |
やまざきさんコメントありがとうございます!

なるほど、MultiBlog。前回携わった案件では、
requre(hoge.ini);
といったことをエントリーに直書きしていたりしたんですけれど、確かにMultiBlogを使えば、(関連するブログの)リビルドも連動して行ってくれるみたいですし、重宝しそうな気がしますね。

> 以前は如何に MT で全部を管理するか、みたいなことを考えていましたが、
> どこかで必ず無理が出てくるので...

そうなんですよね...
「納品後、クライアントベースの更新作業へと気軽に移行できるから。」というのがそもそものMT採用の理由でもあるんですが、その分仕様はガチガチになりますし、完全自動構築型というのも、長い目で見るとメンテナンスのコストが馬鹿にならないような...

もう一つは、すべてをMTで一括管理しようとする、(あるいはクライアントに管理してもらう)ためには、pluginを組み合わせて実現させたり、場合によってはMTそのものをカスタマイズする必要があるんですけど、干渉したり、バージョン対応の問題も出てくるんですよね。

もう、どっぷりMT漬けの日々です...
| モンタ(29) | 2007/01/22 11:26 AM |









http://ideamonts.jugem.jp/trackback/70