注文の多いXOOPS屋 TOP現在のブログ旧スタッフblog アーカイブ
このページは 2007〜2008 年に公開していた「株式会社RYUS スタッフblog」のアーカイブです。内容は当時のものです。

テーマにメインメニューを表示するための ryus_mainmenu プラグイン

2007/02/23 14:00   Ryuji   カテゴリ: XOOPS Cube

このサイトでは、legacy 付属のメインメニューブロックを使わずに、テーマのヘッダ部分にメインメニューを表示しています。

theme.html に直接リンクを書いても良いのですが、モジュールを追加したり、並び順を変えたいと思うたびに theme.html を編集し直すのも面倒です。

そこで、メインメニューの項目をテンプレート変数にアサインするプラグインを作成しました。

・ryus_mainmenu.zip

ファイルを解凍したら、Smarty プラグインディレクトリに配置してください。
ryusSmartyPluginEx を利用して、XOOPS_TRUST_PATH 側に配置するのがおすすめです。

使い方ですが、まず theme.html のあたまで、メインメニュー項目をアサインします。


<{ryus_mainmenu}>

デフォルトでは、$ryus_mainmenu にアサインされますが、assign パラメータを追加すれば、別の変数に割り当てることも可能です。
たとえば、$foo に割り当てたければ、下記のように記述します。

<{ryus_mainmenu assign=foo}>

つづいて、メインメニューを表示したい箇所で次のように記述します。


<{foreach from=$ryus_mainmenu.modules item=module}>
<a href=\"<{$xoops_url}>/modules/<{$module.directory}>/\"><{$module.name}></a>
<{/foreach}>

$ryus_mainmenu.modules にメインメニューの各項目が配列で入ってますので、foreach で回して、$module.directory でモジュールのディレクトリ名、$module.name でモジュール名を取り出せます。

現在表示中のモジュールのサブメニューは、下記のように記述すると表示できます。


<{foreach item=sublink from=$ryus_mainmenu.sublinks}>
<a href=\"<{$sublink.url}>\"><{$sublink.name}></a>
<{/foreach}>

サブメニューは $ryus_mainmenu.sublinks に配列ではいっていますので、sublinks を foreach で回して、$sublink.url でサブメニューの URL、$sublink.name でサブメニュー名を表示できます。

コメント (2)

— 2007-03-10 18:03
ryus_mainmenu.zipがダウンロードできません。
よろしくお願いします。
Ryuji — 2007-03-10 22:46
ご指摘ありがとうございます。
先ほどダウンロードできるようにしました。