エンジニアブログ

エンジニアブログ
Movable Type プラグイン

テンプレートの一部をランダム表示するプラグイン:RotationTemplates

方川 2008年07月31日

こんにちは 方川です。

今回紹介するプラグインはMTのテンプレートの一部をPHPを利用してランダム表示させる為のプラグインです。phpが使える方にとっては簡単な機能ですが、PHPを意識せずMTタグを利用してランダム表示を実現できます。

では、具体的な利用例として

1. 画像をランダム表示させる

2. エントリの内容をランダムで表示させる

1については、言うまでもなくバナー等でよく見かける機能だと思いますが、このプラグインはHTML自体をランダムで表示させることを目的としてます。さらにMTのプラグインということでMTタグで出力される内容をランダムの対象にできます。そこがこのプラグインの利点という感じでしょうか。

インストールの仕方

RotationTemplates.plをプラグインディレクトリに保存してください。

利用環境

このプラグインが提供しているタグはPHPコードをHTML上に埋め込むことで機能を実現しています。このプラグインが動作する為にはphpが利用できる環境であることが前提です。HTML内でphpが動作するように環境を設定してください。

ランダムさせたい項目を設定するコンテナタグ

コンテナタグ<MTRotaitonTemplates>によりランダムで表示させる項目を設定します。

例1. 1行を1項目として設定するデフォルトの設定

<MTRotationTemplates>
<p><a href="<$MTBlogURL$>/koumoku1/">1項目設定</a></p>
<p><a href="<$MTBlogURL$>/koumoku2/">2項目設定</a></p>
<p><a href="<$MTBlogURL$>/koumoku3/">3項目設定</a></p>
<p><a href="<$MTBlogURL$>/koumoku4/">4項目設定</a></p>
</MTRotationTemplates>

例2. 複数行を一項目として設定する場合

<MTRotationTemplates block="1">
<MTEntries lastn="5">
<h2><a href="<$MTEntryPermaLink$>"><$MTEntryTitle$></a></h2>
<p><$MTEntryBody$></p>
<$MTRotationTemplatesSeparator$>
</MTEntries>
</MTRotationTemplates>

属性 block="1"を追加し、区切りとなる箇所に<$MTRotationTemplatesSeparator$>を記入することで複数行を1項目として設定できます。

※さらに属性shuffle="1"を追加することで、設定した項目表示前に一度シャッフルし連続性を排除することができます。デフォルトの状態では設定した順に並んでしまいます。

設定した項目を表示するタグ

コンテナタグで設定した項目を表示する場合は以下の変数タグをMTRotationTemplatesタグの宣言下方に必ず指定してください。複数設定する場合は重複をさける為、step属性で項目をずらします。設定できる数は最大項目数までです。

<$MTRotationTemplatesDisplay$>
<$MTRotationTemplatesDisplay step="1" $>
<$MTRotationTemplatesDisplay step="2" $>
<$MTRotationTemplatesDisplay step="3" $>

この例では例1の4つ全て表示していることになります。ただし、表示される項目の開始位置はランダムでいれかわります。コンテナタグに属性shuffle="1"を指定しなかった場合、開始位置から設定した順番に表示されます。

<MTRotationTemplates>は複数宣言できますが、その場合表示の為の変数タグ<$MTRotationTemplatesDisplay$>は必ずコンテナタグの下にセットで記述してください。変数タグは直前の<MTRotationTemplates>で設定した項目を参照するようになっています。

ダウンロード

RotationTemplates0.02.zip

このプラグインの注意

  • このプラグインはダイナミックパブリッシングを行ってるわけではありません。
  • 表示されていない項目があっても、ファイル上にはデータが収まってます。
  • このプラグインで再構築自体が早くなることはありません。
  • このプラグインは試作品なので、十分注意してご利用ください。
  • 本プラグインをご利用される方は必ず「プラグインご利用の際の注意事項」をお読みください。