テーマにメインメニューを表示するための ryus_mainmenu プラグイン
このサイトでは、legacy 付属のメインメニューブロックを使わずに、テーマのヘッダ部分にメインメニューを表示しています。
theme.html に直接リンクを書いても良いのですが、モジュールを追加したり、並び順を変えたいと思うたびに theme.html を編集し直すのも面倒です。
そこで、メインメニューの項目をテンプレート変数にアサインするプラグインを作成しました。
ファイルを解凍したら、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 でサブメニュー名を表示できます。
RSS feed for comments on this post.
Ȥ
ʤߥȤդ뤳ȤϽޤ
ryus_mainmenu.zipがダウンロードできません。
よろしくお願いします。
Comment by Anonymous — 2007年3月10日(土曜日) @ 18時03分40秒
ご指摘ありがとうございます。
先ほどダウンロードできるようにしました。
Comment by Ryuji — 2007年3月10日(土曜日) @ 22時46分02秒