Ploneでドロップダウン・メニューを作る

投稿: 2009年4月14日

最近、個人サイトPloneに切り替えた関係でいろいろと格闘中なわけだが、ようやくメニューをいわゆるドロップダウン・メニューにすることに成功したので、その時のメモ。

Plone 3.xの場合、webcouturier.dropdownmenuという、正確にはいったい何と読んで良いのか分からないプロダクトを使えば、一発で実現できる。はずなのだが、僕の所ではうまくいかず、かなり悩んだ。このプロダクトは、必要なJavaScriptやCSSをインストールした上で、plone.global_sectionsというviewletを置き換えることで、ドロップダウン・メニューを実現している。このviewletは、デフォルトではドロップダウンになっていないページ上部のナビゲーション・リンクを実現しているもので、これを置き換えてJavaScriptなどを使うようにして、この部分がドロップダウン・メニューになるようにしている。 (とここまで突き止めるのに悩みに悩んだ。)

ではなぜ僕のところでドロップダウンにならなかったかというと、このプロダクトをインストールする前にこのviewletをカスタマイズしていたために、そのカスタマイズ済みのplone.global_sectionsが優先されてしまってこのプロダクトがインストールしたviewletが効いてこなかった、というわけだ。それならばこのカスタマイズしたviewletを削除してデフォルトに戻せばいい、ということくらいはすぐに思いつくのだが、その方法が意外に分かりづらい。具体的には以下の手順で行う。

  1. ZMIで当該サイトのルート→portal_view_customizations→COntentsの順にクリック
  2. zope.interface.interface-plone.global_sectionsの左にあるチェックボックスをチェック
  3. Deleteをクリック

これで一件落着。

感想: Plone 3はモジュール化みたいなことが徹底的にされているようで、全貌を理解していればピンポイントに必要なカスタマイズができそうだけど、全貌を何となくしか分かっていない僕みたいなのにとっては結構難易度が高い。

おまけ: 僕がplone.global_sectionsに加えていた変更は、画面には表示されない見出しをh5ではなくてh2にするだけのもの。これをやったがためにこんなに悩むことになるとは…。