Plone 3.xの場合、webcouturier.dropdownmenuという、正確にはいったい何と読んで良いのか分からないプロダクトを使えば、一発で実現できる。はずなのだが、僕の所ではうまくいかず、かなり悩んだ。このプロダクトは、必要なJavaScriptやCSSをインストールした上で、plone.global_sectionsというviewletを置き換えることで、ドロップダウン・メニューを実現している。このviewletは、デフォルトではドロップダウンになっていないページ上部のナビゲーション・リンクを実現しているもので、これを置き換えてJavaScriptなどを使うようにして、この部分がドロップダウン・メニューになるようにしている。 (とここまで突き止めるのに悩みに悩んだ。)
ではなぜ僕のところでドロップダウンにならなかったかというと、このプロダクトをインストールする前にこのviewletをカスタマイズしていたために、そのカスタマイズ済みのplone.global_sectionsが優先されてしまってこのプロダクトがインストールしたviewletが効いてこなかった、というわけだ。それならばこのカスタマイズしたviewletを削除してデフォルトに戻せばいい、ということくらいはすぐに思いつくのだが、その方法が意外に分かりづらい。具体的には以下の手順で行う。
- ZMIで当該サイトのルート→portal_view_customizations→COntentsの順にクリック
- zope.interface.interface-plone.global_sectionsの左にあるチェックボックスをチェック
- Deleteをクリック
これで一件落着。
感想: Plone 3はモジュール化みたいなことが徹底的にされているようで、全貌を理解していればピンポイントに必要なカスタマイズができそうだけど、全貌を何となくしか分かっていない僕みたいなのにとっては結構難易度が高い。
おまけ: 僕がplone.global_sectionsに加えていた変更は、画面には表示されない見出しをh5ではなくてh2にするだけのもの。これをやったがためにこんなに悩むことになるとは…。


はじめまして、ぴゅんまと申します。
Ploneでのドロップダウンメニュー実現の参考とさせていただきました。ありがとうございました。
一つご質問があるのですが、個人サイトでのドロップダウンメニューにはアイコンが表示されていないようですが、ご自分でカスタマイズされたのでしょうか。
よろしければ、その方法を教えていただけないでしょうか。
よろしくお願いします。
コメントありがとうございます。
ご質問いただいた点ですが、他の方の参考にもなるかもしれないと思いましたので、新たな記事として投稿しました:
http://www.trashpot.org/scratch/2009/05/post_129.html
よろしければご覧ください。
>Maxさん
わざわざ、新たに記事にしていただき、ありがとうございます。
非常に参考になりました。