MT4 beta7: ウィジェットの利用を変数で設定してみる

MT4 beta7の標準テンプレートでは page_layout の値でサイドバー用テンプレートの呼び出し方を制御しています。これにウィジェットを利用するかしないかを追加してみました。ここでは初期導入時に設定を追加してしまう方法を記載しますので、導入後にはそれぞれのテンプレートを修正してください。

先ず footer.mtml を修正します。<MTIf name="sidebar"> 以降を次のようにしました。

<MTIf name="sidebar">
<MTIf name="widget_use">
<div id="beta">
<div id="beta-inner">
<$MTWidgetSet name="First Widget Manager"$>
</div>
</div>
<MTElse>
<MTIf name="page_layout" eq="layout-tw">
<$MTInclude module="<__trans phrase="Sidebar - 2 Column Layout">"$>
<MTElse>
<MTIf name="page_layout" eq="layout-wt">
<$MTInclude module="<__trans phrase="Sidebar - 2 Column Layout">"$>
<MTElse>
<MTIf name="page_layout" eq="layout-twt">
<$MTInclude module="<__trans phrase="Sidebar - 3 Column Layout">"$>
<MTElse>
<$MTInclude module="<__trans phrase="Sidebar - 3 Column Layout">"$>
</MTElse>
</MTIf>
</MTElse>
</MTIf>
</MTElse>
</MTIf>
</MTElse>
</MTIf>
</MTIf>

こうする事で変数 widget_use が有効であればウィジェットを利用するという制御ができるわけですね。ですのでたとえばメインインデックスにてウィジェットを利用するのであれば main_index.mtml のMTSetVar群の最後にでも次の一行を加えればOKです。

<MTSetVar name="widget_use" value="1">

実用に耐えるところまで引き上げようとすると各テンプレート毎のウィジェットマネージャ切り替えとかも入りますのでもう少し条件分岐を追加する事にはなりますが、共通のウィジェットマネージャを使う分にはこれでいけそうです。

因みにウィジェットの標準テンプレートは3.3の名残を濃く残していますので4.0風に表示するのであれば書き換えちゃうのもありかも。