navi プラグイン
この拡張は二年以上更新されていません。もはや維持管理や対応がされておらず、互換性に問題がある可能性があります。
この拡張機能は 'plugin' または 'template' 名前空間にないため、無視されます。
類似 indexmenu, navilevel, simplenavi
必要とされるプラグイン grassstains, zenlike
このプラグインは、Wiki ページに定義した一覧に基づいて、ネストされたナビゲーションメニューを作成します。 現在のページに応じて、ナビゲーションの下位レベルが表示されたり非表示になります。 テンプレートのサイドバー(Arcticでテストしました)で使用することを目的としています。 注目すべき特徴は、階層的な名前空間構造なしで、階層メニューが作成できることです。
ダウンロードとインストール
変更履歴
- Version upped (2023-02-15 23:51)
- cleanup and test fixes (2023-02-15 15:40)
- Version upped (2021-02-16 14:10)
- Fix PHP 8 warnings (2021-02-16 14:09)
- Version upped (2021-01-25 15:01)
- Merge pull request #24 from cosmocode/fix-bootstrap3-fix (2021-01-25 14:59)
- Fix look of some menu items in bootstrap3 template (2021-01-25 14:29)
- Revert "Reset previously set style for lists" (2021-01-25 14:16)
使用方法
テンプレートでサイドバーとして定義したページの中に、次の構文を追加します:
{{navi>navigationmenu}}
navigationmenu
はページリンクの番号なし一覧を含む別のページです。
このページを “control page” と呼びます。
注:
- 作成されるメニューは、名前空間構造から完全に独立しています。リストのネストだけで階層構造を作成します。例外は
?ns
オプションを使用した場合です(下記参照)。 navigationmenu
ページには番号なし一覧が一つだけあるべきで、他の内容は無視されます。- 一覧の各項目はリンクであるべきで、他の構文は無視されます。
- 一覧内のリンク先の各ページはそれぞれ一回しか記載できません。
Control Page の例
以下は、4つの上位階層を持ったメニューを作成します:“Welcome”・“Products”・“Service”・ “Wiki Syntax” “Products” ページにいる場合、“Foomatic 2000”・“Foomatic 2010” の副見出しを表示します。
* [[start|Welcome]] * [[Products]] * [[Foomatic 2000]] * [[Foomatic 2010]] * [[Service]] * [[about|About Foo Inc.]] * [[Contact]] * [[syntax|Wiki Syntax]]
このように、階層的な名前空間構造なしで、階層メニューを作成できます。
名前空間の利用
コンテンツがネストされた名前空間で構造化されている場合でも、navi プラグインは折りたたみ可能・編集可能なナビゲーションを作成します。 しかしデフォルトではプラグインは名前空間について何も知らないので、“control page” で定義されていないページを開くとナビゲーションは完全に崩壊します。
?ns
を navi プラグインの構文に追加することで、プラグインは名前空間について賢くなります:
“control page” に記載のないページを呼び出した時、ページの名前空間を一覧します。
名前空間のスタートページが “control page” にいないかを確認します。
もしあれば、現在開いている分岐として使用します。
もしなければ、同じ名前空間の他のページが “control page” にないかを確認します。
もしあれば、現在開いている分岐として使用します。
最上位に到達するかページが一致するまで、それぞれの上位の名前空間でこれを繰り返します。
改造
第二階層の永続化
Persistant level2 を参照して下さい。
子供が項目を持っている場合、クラスを追加する
Add class if child has item を参照して下さい。
バグ
BUG を参照して下さい。