MTプラグインのインストールの有無をテンプレート内で判別する

プラグイン前提のテンプレートでいいのか?

現在株式会社ブレイドではMT4及びMTOSに対応した汎用的なテンプレートセットの開発を進行中でして、これを広く一般公開したいなあと考えています。

そんな時に問題になるのがプラグインの存在です。便利なプラグインは積極的に使用したいけど、そのインストールを前提としてしまうと汎用性が無くなってしまう・・・。ならば、プラグインのインストールの有無によって処理を分岐してはどうだろうか?

思い立ったらすぐ実践です。


PageButeプラグインを使いたい

今回テンプレートセットを開発するにあたり、どうしても導入したかったプラグインが株式会社スカイアークシステム様で開発されたPageButeプラグインです。このプラグインはページを静的に分割生成するという機能を提供してくれます。


MTIfNonEmptyによる判別

今回の実験のポイントは次の二つです。

  1. PageButeプラグインのインストールの有無をテンプレート内で判別する。
  2. 1.の結果によって処理を分岐する。

この二つが実現すれば、「PageButeプラグインがインストールされている環境ではPageButeの機能を利用してページ分割を行い、PageButeがインストールされていない環境ではページ分割を行わない」という処理ができそうです。

さて、条件判別をするMTタグの一つに、MTIfNonEmptyがあります。これはtagモディファイアで指定されたMTタグで取得されるデータが空かどうかを判別します。どうもこいつが使えそうな気がしますが、指定したMTタグ自体が存在しない場合はどうなるのか・・・ちょっと実験してみましょう。

PageButeプラグインではMTPageContentsというタグが使用できますので、こいつを条件判別に使います。以下のような処理を任意のテンプレートに追加します。

<MTIfNonEmpty tag="PageContents">
<p>PageButeプラグインがインストールされています。</p>
<MTElse>
<p>PageButeプラグインはインストールされていません。</p>
</MTElse>
</MTIfNonEmpty>

さあ、この処理の結果はこうなりました。↓

PageButeプラグインが無い場合
PageButeプラグインが無い場合

PageButeプラグインが有る場合
PageButeプラグインが有る場合

!上手く処理されましたヽ( ´¬`)ノ

どうやらMTIfNonEmptyでは指定されたMTタグ自体が存在しない場合でもエラーを返さないようですね。

このテクニックを使えば、テンプレートセットの設計にあまり悩まなくてもよさそうです。公開をお楽しみにしてください。

コメントする


画像の中に見える文字を入力してください。

株式会社ブレイド ホームページ制作・WEBシステム開発・SEO

このブログ記事について

このページは、株式会社ブレイド〔宮城県仙台市〕が2008年9月17日 12:30に書いたブログ記事です。

ひとつ前のブログ記事は「MTコメント送信フォーム:サインイン時のプロフィール情報欄の消し方 [3]...実践編」です。

次のブログ記事は「EC-CUBE2にSQLインジェクションによる脆弱性が存在?」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アーカイブ

Powered by Movable Type 4.1