U⁄A LABO

RSS

SEARCH

AUTHOR

  • KNOCKKNOCK (10件)小遣い2万円のフラッシュデベロッパー。
    帰りが遅いのにキレる嫁をだましだまし制作中・・・。

  • TAKAIW (13件)フラッシュデベロッパー。遊びでゲームを作るのも好きです。外見に似合わないイラストを描くのも好きです。とにかく作るのが好きです。

  • CHIKATHREESIX (8件)メタル界のフラッシュデベロッパー。またある時はメタルギタリスト。オーサリング中もヘッドバンギングは絶やさない。

  • YANBOU (6件)犬と猫で、家が毎日運動会のフラッシュデベロッパー。
    ビールから発泡酒へ変更で節約中。

  • AKUZE (2件)2003年からユナイティアに寄生しているフラッシュデベロッパー。
    シルクドソレイユとカナダが好き。

  • DECO-DEKAI (1件)ビートダウンパートでご飯何杯も食べられます。
    ハードコア・テクニカルディレクターを目指して日々精進。

CATEGORY

HOME  >  グローバル・モディファイアの利用で清廉潔白なテンプレートを

2009.03.13 DECO-DEKAI

グローバル・モディファイアの利用で清廉潔白なテンプレートを

『U/A LABO,ver.COA』やっとこオープンに漕ぎ着けることができましたね。
もともと弊社のインタラクション・ディベロッパーの中から自発的且つ必然的に浮かび上がったアイデアがカタチになったものでしたが、開発途中にワタクシも参加させていただき、MovableType開発等々で尽力させていただいたわけです。

色々書きたいことが溜まっていますが、最近感じたことから。

■グローバル・モディファイア

MovableTypeには数多くの『グローバル・モディファイア』が存在しており、テンプレートタグの中で属性として配置することで、テンプレート構築を色々と手助けしてくれます。

▼参考リンク:グローバル・モディファイアリファレンス

中でも多く使用されるのが

  • replace
  • setvar

あたりでしょうか。
replaceモディファイアについて言えば

<mt:EntryLink replace="foo","bar" />
  

といった使い方が可能なので、

<mt:EntryLink replace="http://ua-labo.com/","/" />
  

のようにリンク記述をフルパスから、ドキュメントルート基準のパスに変更できたりします。
一見するとかなり地味なことに思えますが、ステージングサーバにMovableTypeが設置されていて、最終的にサーバ間で差分ファイルのみを引き渡して表示させる場合に無駄な処理を入れることなく記述を変更することができます。

中には『URLの表示をフルパスから変換する』という名目でAbs2Relだったりとか、MTTruncateURLといった優秀なプラグインが配布されていて、URLのリプレイスだけであればreplaceモディファイアを使用する必要が無かったりもします。

ただし、インデックステンプレート/アーカイブテンプレート/テンプレートモジュールと横断した形でお互いが依存したテンプレート構造且つ、再構築のタイミング次第でうまくリプレイスが行われなかったりした場合等に最終手段としてreplaceモディファイアを使用することがあります。

というかつい先日、まさに同様の処理を行う必要があったのでまぁ覚書程度に。

ここまでだと単純にURL置き換えだけにしか使えないようにも思えますが、むしろ使用方法としては前述のパターンはあくまでも局地的というか、実際には

  • 置換リストを変数群としてテンプレートモジュール辺りで保持しておいて、一斉トンマナ置換
  • 正規表現との組み合わせによってコードの一貫性を保つためのフィルタ

辺りをカスタマイズ次第で実装することができる、非常に強い味方と言えるのではないでしょうか。

とはいえコレに頼りすぎてると思考のゆとり化が進んでしまって、『テンプレート構築ってレベルじゃねーぞwwwww』ってことになるので、あくまでも正攻法で組むことを考えつつ、方法論の一つとして考えておくのが吉かと。

setvarモディファイアについて言えば4.1以降でそのまんま、

<ul>
<mt:Entries lastn="5" setvar="last5">
<li><mt:EntryLink /></li>
</mt:Entries>
</ul>
  

こんなに短く書けますよ、っていうことで少しでもテンプレートのコードを短くキレイにアーバンな感じに整えてくれます。

とまぁ色々書いてきましたけれども、MovableTypeについてはこれからあまり多く書いていく心算はなく、どちらかと言えばFlash(ActionScript)にチャレンジしていきたいなと考えているわけです。

というわけで皆さん、よろしくお願いいたします。

DECO-DEKAIビートダウンパートでご飯何杯も食べられます。
ハードコア・テクニカルディレクターを目指して日々精進。

CATEGORY