2007年2月23日(金曜日)

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

カテゴリー: - Ryuji @ 14時00分31秒

このサイトでは、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 でサブメニュー名を表示できます。


RSS feed for comments on this post.

  1. ryus_mainmenu.zipがダウンロードできません。
    よろしくお願いします。

    Comment by Anonymous — 2007年3月10日(土曜日) @ 18時03分40秒

  2. ご指摘ありがとうございます。
    先ほどダウンロードできるようにしました。

    Comment by Ryuji — 2007年3月10日(土曜日) @ 22時46分02秒

Ȥ

ʤߥȤդ뤳ȤϽޤ

10 queries. 0.010 sec.
Powered by WordPress Module based on WordPress ME & WordPress

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.