インストールには、手動でプラグイン用のディレクトリを作成し、適切なディレクトリへファイルをコピーする必要があります。
以下の説明で、
を表しています。
<body dir="{direction}">
<div class="header-navigation-container clearfix">
<ul>
{menu_elements}
</ul>
</div>
<div class="header-logobg-container-inner">
<a class="header-logo" href="{site_url}/" rel="home">
<img src="{site_logo}" width="151" height="56" alt="{site_name}"{xhtml}>
</a>
<span class="header-slogan">{site_slogan}</span>
</div>
{header_navigation} <!-- ここに、ヘッダーメニュー用のテンプレート変数を挿入します -->
<table cellspacing="0" cellpadding="0" style="width:100%;">
<tr>
{left_blocks}
<td class="story-container">
{breadcrumbs} <!-- ここに、パンくずリスト用のテンプレート変数を挿入します -->
<p class="header-welcomeanddate-text">
<b>{welcome_msg_jp}</b><br{xhtml}>{datetime}
</p>
<!-- START OF CONTENT AREA -->
アップグレードの前に、必ずNavman プラグインのアーカイブ内の UPGRADE_ja を参照してください。
本プラグインを導入することにより、Geeklogサイトに多階層メニューを設置することができます。その簡略化したイメージは下図のようなものです。
ナビゲーションは一つのメニューアイテムグループと関連づけられています。
メニューアイテムグループには、複数のメニューアイテムが属しています。
メニューアイテムは、親アイテムIDという情報を持ち、それによりメニューアイテム間の親子関係を設定します。
これらのデータを基に入れ子構造のリストのHTMLを出力します。
ナビゲーションやメニューアイテムのデータには、IDに加えて、スタイルシートのクラス名を持たせることができます。これらをHTMLに組み込み、スタイルシートを用いることにより、ドロップダウンメニューなど自由なデザイン・レイアウトのメニューをブラウザに表示させることができます。
本プラグインを導入することにより、Geeklogサイトにパンくずリストを設置することができます。その簡略化したイメージは下図のようなものです。
データの構成は多階層メニューのものと全く同じですが、パンくずリスト専用のレンダーにより評価・出力します。パンくずリスト専用のレンダーは、多階層メニューのレンダーとはメニューアイテムデータの評価内容が異なります。
パンくずリストの出力では、カレントURLと、メニューアイテムのURL照合文字列がマッチしたとき、そのメニューアイテムがパンくずリストの最右端の要素として取扱われます。
パンくずリストの最右端の要素となるメニューアイテムから、親アイテムIDを順々に辿って、パンくずリストを生成します。
親アイテムIDが未設定のメニューアイテムは、ホームページ(トップページ)にぶら下がっているものと見なされます。(このためパンくずリスト用のホームページ(トップページ)のメニューアイテムは存在しません。)
パンくずリストでは、カレントURLから読み取れる情報を基にして、メニューアイテムのタイトルやURLを動的に生成する必要があるため、PHPフィルターの活用が必須となります。このため、パンくずリストのメニューアイテムを作成する場合には、Geeklogシステムや、PHP、MySQLの知識がある程度必要となります。
しかし、記事や掲示板など主要なプラグインのデータはあらかじめ登録済みのため、比較的容易に導入できると思います。
ナビゲーションの編集で設定する項目を以下に示します。
項目 | 説明 |
---|---|
ナビゲーション名 | ナビゲーションの名前を設定します。 |
ナビゲーションID | ナビゲーションのIDを設定します。半角英数、ハイフン、アンダーラインを用います。ナビゲーションIDの重複は許されません。 |
メニューアイテムグループ | ナビゲーションに関連づけるメニューアイテムグループを選択します。 メニューアイテムグループは コンフィギュレーション / ナビゲーション で編集可能です。 |
有効 | ナビゲーションの有効/無効を切り替えます。システムへの負荷を抑えるため、使用しないナビゲーションは無効にすべきです。 |
レンダー | レンダーを選択します。今のところ、レンダーは次の2つがあります。 [多階層メニュー] : 複数の階層をもったメニューを生成します。 [パンくずリスト] : パンくずリスト(階層構造の上位ページへのリンクのリスト)を生成します。 |
レンダリングの対象 | ナビゲーションを何処に展開するかを指定します。 [ヘッダー] : テンプレート header.thtml の中に展開します。 [フッター] : テンプレート footer.thtml の中に展開します。 [ブロック] : PHPブロックに展開します。 |
クラス名 | テンプレート変数 {navi_class_property} または {navi_class_name} を使って出力するクラス名を設定します。 スタイルシート ( navman.css ) 内でこのクラス名を有効に活用して、ナビゲーションのスタイルを自由かつ大胆に変えて下さい! |
順序 | ナビゲーションリストにおける順番を指定します。レンダリングの順番にも影響します。なお、自動的に10づつの値に調整されます。 |
PHPフィルター名 | PHPフィルターの名前を指定します。 PHPフィルターはナビゲーションのデータが評価される直前に実行されます。 PHPフィルターの関数名が "phpfilter_abcd" の場合は、"abcd" を指定します。スペースで区切って複数指定が可能です。 ある条件によって、メニューアイテムグループやクラス名を変更するPHPフィルターを用意するとおもしろいかも。 |
URL照合文字列 | URLと比較する文字列を指定します。 表示中のページのURLがこの文字列とマッチした場合に、このナビゲーションがレンダリングされます。 空欄の場合は、URL照合を行いません。 |
モード | URL照合文字列の動作モードを選択します。 [部分一致] : 部分的に一致した場合にマッチしたと見なします。 [完全一致] : 完全に一致した場合にマッチしたと見なします。 [正規表現] : 正規表現でマッチングを行います。 [正規表現]モード以外では、"[site_url]" 及び "[site_admin_url]" のマクロが使用できます。 |
テンプレート名 | ナビゲーションのレンダリングに用いられるテンプレートの参照先をディレクトリ名で指定します。 'default' は <public_html>/navman/templates/default と対応します。 |
テンプレート変数名 | テンプレートに埋め込むテンプレート変数名を選択します。 テンプレート変数名は コンフィギュレーション / ナビゲーション で編集可能です。 |
メニューアイテムの編集で設定する項目を以下に示します。
項目 | 説明 |
---|---|
メニューアイテムグループ | メニューアイテムが所属するニューアイテムグループを指定します。 |
タイトル(固定) | メニューアイテムのタイトルを指定します。サイトの言語モードの変更にかかわらず表示は固定です。 多言語サイトを構築しない場合は、この指定だけで十分です。 |
タイトル(可変) | メニューアイテムのタイトルを指定します。サイトの言語モードの変更に応じて表示は変化します。 多言語サイトを構築する場合に有用です。 ここでは言語ファイル内で定義されている配列変数を指定します。 例えば、$MY_WORD['label'] をタイトルにする場合は MY_WORD['label'] を設定します。 |
有効 | メニューアイテムの有効/無効を切り替えます。 有効/無効にするとメニューアイテムは表示/非表示が切り替わります。 |
URL | メニューアイテムのリンク先URLを指定します。 "[site_url]" 及び "[site_admin_url]" のマクロが使用できます。 |
メニューアイテムID | メニューアイテムのIDを設定します。半角英数、ハイフン、アンダーラインを用います。メニューアイテムIDの重複は許されません。 |
親アイテムID | 多階層メニューの階層構造を定義するため、メニューアイテムの親に相当するメニューアイテムのメニューアイテムIDを選択します。 |
クラス名 | テンプレート変数 {class_property} または {menuitem_class} を使って出力するクラス名を設定します。 スタイルシート ( navman.css ) 内でこのクラス名を有効に活用して、ナビゲーションのレイアウトやデザインを自由かつ大胆に変えて下さい! |
話題 | 話題を選択します。話題により表示/非表示を切り替えたい場合に使用します。
|
順序 | メニューアイテムの表示の順序を整数値で指定します。なお、自動的に10づつの値に調整されます。 |
タイプ | タイプは編集できません。 メニューアイテムは内部的に "Geeklog Default"、"Plugins"、"Custom" の3タイプに分類されています。 |
PHPフィルター名 | PHPフィルターの名前を指定します。 PHPフィルターはメニューアイテムのデータが評価される直前に実行されます。 PHPフィルターの関数名が "phpfilter_abcd" の場合は、"abcd" を指定します。スペースで区切って複数指定が可能です。 PHPフィルターにより、メニューアイテムのタイトルやリンク先URLを動的に変更することが可能です。 |
URL照合文字列 | URLと比較する文字列を指定します。 表示中のページのURLがこの文字列とマッチした場合に、このメニューアイテムがレンダリングされます。 空欄の場合は、URL照合を行いません。 |
モード | URL照合文字列の動作モードを選択します。 [部分一致] : 部分的に一致した場合に、結果は真となります。 [完全一致] : 完全に一致した場合に、結果は真となります。 [正規表現] : 正規表現でマッチングを行います。 [正規表現]モード以外では、"[site_url]" 及び "[site_admin_url]" のマクロが使用できます。 |
静的ページID | 静的ページIDを設定します。 このメニューアイテムを静的ページのパンくずとして使用する場合などに設定します。 |
アイコンURL | テンプレート変数 {menuitem_icon_url} を使って出力する画像データのURLを設定します。 |
Navman プラグインの設定は、「管理者用メニュー - コンフィギュレーション - ナビゲーション」から変更できます。
項目 | 説明 |
---|---|
IDに付加するプレフィックス | ナビゲーションのIDに付加するプレフィックス文字列を設定します。 ナビゲーションのIDは、テンプレート変数{nid}に出力されます。 初期値 : 'navmitem-' |
自動タグ名 | 自動タグ名を設定します。 初期値 : 'navi' |
テンプレート変数 | ナビゲーションをテンプレートに埋め込むときに用いるテンプレート変数を定義します。 初期値 : 'header_navigation', 'footer_navigation', 'breadcrumbs' |
メニューアイテムグループ | メニューアイテムグループを定義します。 ナビゲーションとメニューアイテムは、このメニューアイテムグループを介して関連づけます。 |
テーマのテンプレートを使う | 'はい' にすると、<public_html>/layout/theme/navman を探し、見つかった場合は、その中のテンプレートとスタイルシートを用いてレンダリングします。 あなたのテーマに最適化されたテンプレートとスタイルシートを作成してください。 初期値 : 'いいえ' |
項目 | 説明 |
---|---|
パンくずリストを有効にする | 'はい' にすると、パンくずリストが有効になります。 別途、レンダーを「パンくずリスト」に設定したナビゲーションの用意とテンプレート変数の埋め込みを行う必要があります。 初期値 : 'はい' |
カレントのパンくずにリンクを張る | 'はい' にすると、現在表示中のページのパンくず(右端のパンくず)にリンクを張ります。 初期値 : 'いいえ' |
ホームでパンくずを表示する | 'はい' にすると、ホームページ(トップページ)でパンくずを表示します。 初期値 : 'はい' ホームのタイトルを変更したい場合は、言語ファイル(日本語用は japanese_utf-8.php )の$LANG_NAVM['label_home']の値を変更してください。 |
項目 | 説明 |
---|---|
パーミッション[0] | 所有者のパーミッションを設定します。この値がメニューアイテム作成時の初期値となります。 初期値 : 表示・編集 |
パーミッション[1] | グループのパーミッションを設定します。この値がメニューアイテム作成時の初期値となります。 初期値 : 表示 |
パーミッション[2] | メンバーのパーミッションを設定します。この値がメニューアイテム作成時の初期値となります。 初期値 : 表示 |
パーミッション[3] | ゲストのパーミッションを設定します。この値がメニューアイテム作成時の初期値となります。 初期値 : 表示 |
ユーザの言語設定に応じて、単にナビゲーションのタイトルの言語を切り替えたい場合は、メニューアイテムの「タイトル(可変)」を設定してください。
ナビゲーションのタイトルの言語に加えて、リンク先まで切り替える場合は、以下に説明する「多言語切り替え機能」を利用してください。
本プラグインではGeeklog1.5.1から追加された「ブロックの多言語切り替え機能」と同様の機能をサポートします。
「ブロックの多言語切り替え機能」の詳細については以下のWikiを参照してください。
一例として、英語と日本語を切り替える場合の使用方法を示します。
about
about_en
about_ja
about 有効
about_en 無効
about_ja 無効
本プラグインのテンプレートは、<public_html>/navman/templatesに配置されています。
このうちナビゲーションの表示に用いられるテンプレートおよびスタイルシートは、<public_html>/navman/templates/defaultに配置されています。
例えば、ナビゲーション「Header Navigation 1」のテンプレート名は 'default' となっていますが、これは「 <public_html>/navman/templates/default のテンプレートを使用する」という意味になります。
この仕組みにより、オリジナルのテンプレートおよびスタイルシートを作成し、新しいスタイルのナビゲーションを追加することが可能です。
また、テーマに固有のナビゲーションを用意することが可能です。そのための方法を次に示します。
ナビゲーションごとに次のテンプレート変数をサポートします。
テンプレート変数名 | 説明 |
---|---|
{nid} | ナビゲーションID (スタイルシートのIDとして使用します。) |
{navi_class_name} | ナビゲーションのクラス名 (スタイルシートのクラス名として使用します。例:'navi_001') |
{navi_class_property} | ナビゲーションのクラスプロパティ (スタイルシートのクラスプロパティとして使用します。例:'class="navi_001"') |
また、メニューアイテムごとに次のテンプレート変数をサポートします。
テンプレート変数名 | 説明 |
---|---|
{menuitem_url} | メニューアイテムのリンク先URL |
{menuitem_text} | メニューアイテムのタイトル |
{menuitem_id} | メニューアイテムのID (スタイルシートのIDとして使用します。) |
{menuitem_class} | メニューアイテムのクラス名 (スタイルシートのクラス名として使用します。例:'last') |
{class_property} | メニューアイテムのクラスプロパティ (スタイルシートのクラスプロパティとして使用します。例:'class="last"') |
{menuitem_icon_url} | メニューアイテムのアイコンとして用いる画像のURL |
{level} | メニューリストの階層の深さを示す値。トップレベルは '1' です。 |
{class_level} | メニューリストの階層の深さを示すクラス名。トップレベルは 'level1' です。 |
ブロックメニュー(左右サイドバーにブロックとして表示されるメニュー)のサンプルデータがあらかじめ登録済みです。以下にブロックメニューの設置手順を示します。
ナビゲーション管理画面で、ナビゲーション「Block Navigation」を有効にします。
次にブロック管理画面で、ブロックを次のように作成します。
これで、準備できました。
PHPフィルターはナビゲーションやメニューアイテムのデータを動的に設定・変更するために用意された仕組みです。
PHPフィルターは<geeklog_dir>/plugins/navman/filters.phpに記述します。
あらかじめ登録されたサンプルデータから呼び出されるPHPフィルター群が既に記述されています。
PHPフィルターは、'phpfilter_'で始まる名前のPHP関数です。
PHPフィルターは、ナビゲーションやメニューアイテムの情報が格納された配列変数を、参照渡しで受け取り、必要な処理を行います。
ナビゲーションを自動タグ(Autotag)を使用して出力することができます。
静的ページにこの自動タグを埋め込んで、センターエリア内にナビゲーションを表示することを想定しています。
タグ書式: [navi:ナビゲーションID]
例: [navi:global_navi_1]
本作品で、削除および矢印アイコンとして使用している delete.png, arrow-dn.png, arrow-up.pngは Joseph North さんの著作物です。
ライセンスは次のリンクをご覧ください。
Sweetie Icon Set
----------------
Author: Joseph North
Email: sublick@gmail.com
License: Creative Commons Attribution-ShareAlike 2.0
Year: 2005
本作品で、Navmanプラグインアイコンとして使用している navman.png (オリジナル名は Safari.png) は Fast Icon さんの著作物です。
ライセンスは次のリンクをご覧ください。
iComic Applications Icons Set
----------------
Author: Fast Icon
HomePage: http://www.fasticon.com
License: Commercial usage: Allowed license.txt
バージョン | 公開日 | 説明 |
---|---|---|
0.2.1 | 2010.11.6 | 修正 メニューアイテムを編集すると、そのメニューアイテムが「無効」に設定されてしまう問題を修正。 |
0.2.0 | 2010.10.11 | Mediagalleryプラグイン及びDownloadsプラグインのパンくずリストに対応。 |
0.1.1 | 2010.3.8 | 修正 URL照合文字列を正規表現で設定したメニューアイテムを、更新した直後にクラッシュする問題を修正。 |
0.1.0 | 2009.6.15 | 初期バージョン |