LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Wiki

ModuleManuals

multimenu anchor.png

機能:メニュー管理ツール
種別:システム補助
作者:Tom_G3X
バージョン:1.15日本語版
動作環境:XOOPS2.0.x、XOOPS Cube Legacy 2.1、XOOPS Cube Legacy 2.2(XoopsXディストリビューション)
配布元:http://malaika-system.com/

Page Top

概要 anchor.png

メニュー表示に特化したモジュール。
XOOPS 標準のメインメニューの代用だけでなく、独自のメニューブロックを作成することが出来、かなりの部分で自由なメニューづくり、凝ったナビゲーションを構成することが可能です。
またモジュールごとに別々のメニューを表示配置したり、あるいは同じページに異なる複数のメニューを並べたり、メインメニューと併用するなど、使い方によっては大きな可能性を秘めています。
ただし表示できるリンクの深さはメインおよびサブの2階層までとなります。
各メニューの設定については、標準メインメニューとは比べ物にならないほど細かく設定することができますが、その設定の複雑さがかえってネックになる場合もあります。
solo71氏が作成したモジュールが原型ですが、現在日本語版として手に入るのはTom_G3X氏がVer1.1をベースに改良を重ねたバージョンです。日本語環境で使用するのであればこちらをお勧めします。またこのマニュアルもTom_G3X氏のバージョンについて記述しています。

Page Top

インストール anchor.png

Page Top

XoopsCubeLegacy2.1 を利用の場合 anchor.png

XoopsCube 2.1 以上の場合は、v1.15より対応しています。multimenuモジュールをインストールする前に、xoops-2.0.16a-JPパッケージに同梱されている html/modules/system モジュールを、あらかじめインストールしておく必要があります。
ブロック管理には system モジュールをインストールすれば multimenu の管理画面上でもできますが、その他のモジュール同様 altsys 上での作業を習慣づけることを強くおすすめします。

Page Top

XoopsX(XCL2.2)でX-updateモジュール を利用の場合 anchor.png

管理画面のX-updateで簡単に導入が可能です。(ウェブブラウザだけで導入でき、別途FTPソフトウェアなどを使う必要がありません。)

Page Top

それ以外の場合 anchor.png

通常の方法でインストールします。

Page Top

アップデート anchor.png

1.14未満からアップデートする場合、multimemu/admin/version_up.phpを一度だけ実行する必要があります。またテンプレートが1.14未満と以後では異なりますので、モジュールアップデートやテンプレートにカスタマイズを加えている場合には注意が必要です。
新規インストールや1.14以後からのバージョンアップは通常の方法で大丈夫です。

Page Top

アンインストール anchor.png

通常の方法でアンインストールします。

Page Top

知っておくべき事 anchor.png

Page Top

utf-8 サイトで利用の場合 anchor.png

multimenu パッケージを ftp 経由でアップする前に以下の準備をします。
土台の xoops を japanese 名 のままで使用しているときは multimenu/language/japanese フォルダの3つの php ファイルをテキストエディタで開き、文字コード UTF-8N 改行コード (CR)LF で上書き保存します。
使用言語を ja_utf8 で統一している場合は上記で用意した japanese フォルダ名を ja_utf8 とリネームします。

Page Top

使用方法 anchor.png

一般ユーザからはメニューとして見ることしかできません。項目の設定などは管理画面で行います。

Page Top

管理画面 anchor.png

異なったメニューブロックが最高8つまで作れます。

設定:メニュー01マルチメニュー 1のブロック作成・内容を編集します。
設定:メニュー02マルチメニュー 2のブロック作成・内容を編集します。
設定:メニュー03マルチメニュー 3のブロック作成・内容を編集します。
設定:メニュー04マルチメニュー 4のブロック作成・内容を編集します。
設定:メニュー05マルチメニュー 5のブロック作成・内容を編集します。
設定:メニュー06マルチメニュー 6のブロック作成・内容を編集します。
設定:メニュー07マルチメニュー 7のブロック作成・内容を編集します。
設定:メニュー08マルチメニュー 8のブロック作成・内容を編集します。
ブロック管理8 つのメニューブロックの設定一覧です。
Page Top

メニューごとの設定:項目の作成 anchor.png

インストールをした時点ではどのメニューブロックも中身は空です。各メニューの設定画面で「リンク追加」ボタンを押し、新しい項目をひとつずつ作成・追加してゆきましょう。

タイトルメニューに表示したい項目名をつけます。
リンクリンク先を表記します。
表記の仕方は別項「リンク先(URL) の記載について」を参照してください。
隠す表示の有無を決めます。初期設定ではすでに「いいえ」(=表示する)が選択されています。
表示先(Target)リンクのターゲットを指定(=リンク先をどのウィンドウで開くかを選択)します。
ターゲット属性は<a href="xxx" target="_self">のtargetと同じ役割を果たし、self / blank / parent / top の 4 種類があります。初期設定ではselfとなっています。各属性はHTMLの基準と同一です。フレームページを利用しない限りblank以外はそれほど気にする必要は無いでしょう。
サブメニューにメインメニューとは異なるターゲット属性を指定したい場合はTips 集を参照にphpファイルに手を加えてください。
グループこのメニュー項目を表示したいグループを指定します。ひとつのメニューブロック内でメニュー項目ごとに表示したいグループが異なる時は、メニューブロックへのアクセス権限は最大限に与えておき、この各メニュー項目ごとの設定で細かくエディットすべきでしょう。

最後に「実行」ボタンを押します。記入例

上記の繰り返し作業で追加していったメニュー項目の一覧例が以下の画像になります。

mmenu01.gif
Page Top
項目の表示順 anchor.png

上記一覧での並び順が公開サイト上での表示順にもなります。順番を変えるには機能欄にある「上へ」「下へ」を押して行ってください。

順番はいつでも変えることができます。ただ項目が多数に及ぶ場合その手間がけっこうかかります。あらかじめ表示させたいと思っている項目をすべて、表示させたい順番に追加しておかれるとよいでしょう。

たとえばxoops 標準メインメニューと同じ並び順のメニューを作成したいときは、システム管理>モジュール管理で各モジュールにつけた表示番号の若い順からリンクを追加していってください。

また後日削除したい項目がでてきても削除せず「編集」>「隠す」で「はい」にしておき、新規追加項目があったときに内容変更(=編集)をして再利用されるのも案です。

Page Top

リンク(URL)の記載について anchor.png

リンク欄でのメニュー項目のリンク先(=ページのアドレス)の書き方には少しルールがあります。
multimenu モジュールパッケージ同梱の readme_jp.txt でも説明がありますので併せご参考ください。

Page Top
フルパスで書く anchor.png

どの階層用にも通常のURL(http://www.xugj.org/index.php など)をダイレクトに記述することができます。サイト内へのリンクなら絶対/相対パスの両方が使えます。

Page Top
サイトのトップページ anchor.png

サイトのトップページ用には http://www.xugj.org/index.php のようにフルパスで書き入れてください。

トップページが xoops ルートのホームの(=システム管理>一般設定で開始モジュールを「なし」にしている)場合は ./ (ピリオド+スラッシュ)の組み合わせでも代行できます。
またはメニュー項目として追加せず、リンク先をテンプレートに直接書き込んでおいてしまうこともできます(紹介ページのアンカータグ内のリンク文字はホームなどと直書きが必要?)。

ルートファイルを指定(=開始モジュールを選択)している場合にはフルパスで書く他、phpファイルに手を加えての方法もあります。

Page Top
親リンク子リンク双方をフルパスにする anchor.png

親リンクにしたいものをフルパスで記入し、子リンクもまたフルパスで追加したい場合(「カスタムサブメニューを追加する」の項目参照)、同メニューブロックに自XOOPSのモジュール専用リンクが混在していると表示のされ方が変わってきます。ご注意ください。

Page Top
モジュール名を[ ]で囲む anchor.png

自XOOPS各モジュールのメインページへのリンク先は、モジュール名を半角カッコの[ ]で囲んで記述します。
メインページ以外でも[ ]に続いてアドレスを記述する(例:[myalbum]topten.php)と親リンクとすることができます。そしてカッコ[ ]の直前に特定の記号をおくことで、動的にサブメニューの表示をコントロールすることが可能となります。また同メニューブロック内に複数の記述方法を混在させることもできます。

Page Top
システム標準メニュー形式でサブメニューを表示させる anchor.png

システム標準のメインメニューと同じように、該当モジュールのページにアクセスしているときのみ付属のサブメニューを展開表示したいときは、[ ]直前に半角のアットマークをおきます。
【例】    @[bulletin]   @[xhnewbb]   @[piCal]

Page Top
サブメニューを表示しない anchor.png

モジュール付属のサブメニューがあっても表示したくないとき(=メインのみ表示したいとき)は[ ]で囲みます。

【例】   [bulletin]  [myalbum]viewcat.php?cid=1 [piCal]index.php?action=Edit

Page Top
カスタムサブメニューのみ表示する anchor.png

モジュールアクセス時にカスタムサブメニューを表示したいときは直前に半角のアンドマークをおきます。
モジュールの付属サブメニューは表示されません。

【例】   &[bulletin]  &[myalbum]viewcat.php?cid=1 &[piCal]index.php?action=Edit

Page Top
常時サブメニューを表示する anchor.png

サイトのどのページを開いていても該当モジュールの付属サブメニューを常に表示させるには[ ]直前に半角のプラスマークをおきます。
【例】
 +[mydownloads] (@マークをつけたときと同じようにサブメニューが展開します)
 +[mydownloads]submit.php (投稿画面が親リンクとなり、mydownloads 付属の全サブリンクが子リンクとして展開します。つまりモジュールのメインページへのリンクはありません)

該当モジュール以外でも適用されます。(← 意味不明です by lunallena)

Page Top
カスタムサブメニューを追加する anchor.png

モジュールサブメニューの有無に関係なく、好みのリンク先をサブメニューとして追加したいときは[ ]の直前に(フルパスの場合も直前に)半角のマイナスマークをおきます。
なお、モジュールサブメニューがある場合は一番下に追加されます。

【例】 -[myalbum]submit.php、-[piCal]index.php?action=Edit
     -http://www.xugj.org/modules/dictionary/entry.php?entryID=30

Page Top
複数の異なったリンク記述方法の凡例いろいろ anchor.png

リンク先一覧およびそれに呼応するhtml表示例のgif 画像があるとわかりやすいと思うのですが、、、

Page Top

ブロックごとの管理 anchor.png

項目を入れ終わったら次にメニューブロックそのものの詳細設定をします。
「ブロック管理」ボタンを押すと、以下のような全メニューブロックの現時点での設定内容が一覧できます。

mmenu3-2.gif

ここで表示させたいグループやページの選択(複数選択可)を、その他の細かな点については「編集」ボタンより編集画面に移り、通常のモジュールブロックを扱う要領で行ってください。また編集はxoops 全体のシステム管理>ブロック管理(ベーシックマニュアル第2章2.5項参照)でもできますし、blocksadmin や altsys モジュール上でも設定変更が可能です。グループ管理に関しても同じことがいえます。

なお、各メニューブロックにあてがわれた名称は以下のように一致します。
テンプレートは設定やブロックの説明につけれれた数字のマイナス1となります。編集の際はくれぐれもご注意ください。

設定ブロックの説明タイトルテンプレート名
メニュー 01マルチメニュー1マルチメニュー1(初期設定名。ブロック編集画面にて変更可)multimenu_block.html
メニュー 02マルチメニュー2マルチメニュー2(同上)multimenu_block01.html
Page Top

Tips anchor.png

Page Top

サブメニューにtargetを指定するには anchor.png

オプションのサブメニュ(”-”マークを先頭につけるケース)を追加した場合に限りますが、まず、blocks/multimenu.phpの114行目あたりに下記コードを追加します。

$block['contents'][$inum-1]['sublinks'][$isub]['url'] = $link;~
COLOR(red){// added target to sublink(-mark)}~
COLOR(red){$target = $myts->makeTboxData4Show($myrow["target"]);}~
COLOR(red){$block['contents'][$inum-1]['sublinks'][$isub]['target'] = $target;}~
}~
continue;

あとはテンプレートを修正して、{$sublink.target}が存在すればtargetをセットするようにします。

<{foreach item=sublink from=$imenu.sublinks}>~
<a class="menuSub" href="<{$sublink.url}>"COLOR(red){<{if $sublink.target}}COLOR(red){> target="<{$sublink.target}}COLOR(red){>"<{/if}}COLOR(red){>}>~
<{$sublink.name}></a>~
<{/foreach}>
Page Top

メニューのID anchor.png

defaultテーマでは、メインメニューに#mainmenuがstyle.cssで設定されています。マルチメニューもコアのメインメニューの代替を考慮している関係上、同じIDが振られています。
これによってコアのメインメニューでもマルチメニューを使った場合でも同じ見栄えになるのですが、コアのメインメニューとマルチメニューを同時に使用した場合、またはマルチメニューのメニューブロックを同時に複数表示させた場合、少々不都合なことが起こります。

それはIDの重複です。IDはページに対して一意の存在ですので、同じIDが同一ページ内に複数あるということはHTML的に間違いということになります。実際にはブラウザが許容して問題なく表示されるのですが、WEB標準化を考えている方などは、テンプレート内のIDをclassに変更するなどの処置が必要でしょう。

Web標準化のための変更例
コアのメインメニューと同じ形式でマルチメニューブロックを表示させたいとき:
テンプレートの mutlimenu_block(数字なし・あり).html 内3つ目のタグ

<td id="mainmenu"> → <td class="multimenu">~

と変更します。
themes/default/style.css 68-72行目にある5つ(あるいは themes/cube_default/style.css 355-388 行目にある6つ)の
td#mainmenu
に導かれたスタイルを同ファイル内にコピーし
.multimenu
と5つ(6つ)とも行頭のtdをカットし、シャープマークをピリオドに変更してください。

Page Top

multimenuを入れると重くなる? anchor.png

これだけ多機能なので重くなると思われがちですが、計ってみれば判りますが通常のメインメニューよりも早く表示することができます。特にモジュールが増えてきたときに、XOOPS自体が重い?と感じるようであれば、通常のメインメニューの代わりに、multimenuを入れてみることをオススメします。

Page Top

その他 anchor.png

1.タイトルにアイコンをつける・タイトルを画像に置き換える
2.アクセス中のページをハイライトにする ←dirname のみが対象(現行の XC2 / XCL 上では $xoops_dirname or $xoops_modulename が使用できるので $module_current をアサインしなくてもよい)。
3.サイトのヘッダーやフッター部分にメニューブロックをおきたい場合はxoops_root_path/themes/mytheme/theme.html に直接リンク先を書き込んでゆくか、あるいはxoops_block Smarty プラグインなどを利用(xoopsCubeLegacy2.1.x 上で使用する場合は、 2.0.16a.JP パッケージ同梱の system モジュールがインストールされていないと正しく動作しません)する

要注意

配布デフォルトでは指定したモジュールがactiveかどうかのチェックがありませんので、もしinactiveなものがあれば、以降の行のリンクがおかしくなります。

トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 27778, today: 3, yesterday: 2
初版日時: 2006-08-10 (木) 15:28:43
最終更新: 2014-03-01 (土) 19:51:16 (JST) (1265d) by marine
Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities