2018-01-26

MODX,サブメニューを常時表示する

MODXはCMSである。
古くからあるもので、余り大胆な変化をしていない印象を受けている。
一時開発が停滞していたようだが、最近は再び開発開始された様子。
特徴的なものの一つに、デザインは一般のホームページ作成ソフトでできること。他のCMS(wordpress、Joomla、Drupal、Xoopsなど)と比較すると作成しやすく、簡単なものであればHTMLとCSSの知識さえあればすぐにでも開発出来そうなくらいだ。
高度なものも作成可能で、Basic言語やPython言語程ではないが、ある種プログラム言語を学習するくらいの知識が必要である。いわゆる機能としての柔軟性もある。

■サブメニューを常に表示するチャンクを作成する。

最上部のメニューで、サブメニューのあるメニューを選択する。
サブメニュー一覧が特定エリアに表示される。
また、サブメニューのいずれかを選択しても、同じサブメニューが常に表示されている。

例として
---------------
メニュー階層
    A
    B━┳BB1
        ┣BB2
        ┣BB3
    C━┳CC1
           ┣CC2
    D
    E
-------------
選択メニュー        表示されるメニュー項目
      A            無し
      B            BB1, BB2, BB3
      BB1       BB1, BB2, BB3
      BB2       BB1, BB2, BB3
      BB3       BB1, BB2, BB3
      C            CC1, CC2
      CC1       CC1, CC2
      CC2       CC1, CC2
      D             無し
      E             無し


【 チャンク 】内容
[[Wayfinder? &startId=`p` &level=`1`
 &hideSubMenus=`true`]]

■応用として

サブメニューがある場合のみ
親メニュー、現在のメニューとサブメニューを表示する。
<@IF: [!Wayfinder? &startId=`i` &level=`2`
 &hideSubMenus=`true`!]>
<!-- 親メニュー --> 
    [*menutitle@u*]
<!-- 現在のメニュー -->
    [*menutitle*]
<!-- サブメニュー -->
    [[Wayfinder? &startId=`i` &level=`2`
 &hideSubMenus=`true`]]
<@ENDIF>
以上