イントロダクション
DIYPloneStyleの紹介とチュートリアルの目的
バージョン2.1からPloneはResourceRegistriesを同梱するようになりました。これはploneのページ(テンプレート)にスタイルシートやjavascriptファイルをリンクさせるための管理ツールです。これはportal_css、portal_javascriptsによって実現されていますが、これらのツールはportal_actionsによってアクションが登録されるのとほとんど同じようなやり方でCSSやjavascriptを登録することを可能にします(例えば条件を付けることができる、など)。ResourceRegistriesのおかげで、よりクリアで強力な方法で、Ploneの見た目をカスタマイズできるのです。
Ploneをカスタマイズする一般的な方法は、Zope Management Interfaceから、Skinsツールの中のcustomレイヤーを利用するやり方です。もちろんそれでもいいのですが、このやり方はファイルシステムにアクセスできないような小規模なカスタマイズの場合に適していますが(Plone2.0 Bookのchapter 7参照)、Ploneの完全なビジュアル環境を構築したいと考えているような場合は、やはりPythonによってファイルシステム上にプロダクトを書くのが一番です。
このチュートリアルでは、スタイルシートやjavascriptがどのように動作するかを把握し、カスタマイズされたPloneのスタイルをインストールするための新しいプロダクトを構築するために、DIYPloneStyleというPlone2.1用のシンプルなスキンプロダクトを使っていきます。
DIYPloneStyleは2つのプロダクトを基本としています:
- Martin AspeliのMySkin:独自のレイヤーによってPloneにスキンの選択を可能にする枠組みを提供するプロダクト(ただしResourceRegistriesは利用しない)
- 私(david convent)が書いたSimplePloneStyle:ResourceRegistriesを利用したプロダクトだが、スキンの枠組みを生成するものではない
これらのプロダクトはお互いに有効です。例えばすべてのPloneスキンに有効ないくつかのスタイルシートを登録しなければならない場合にはSimplePloneStyleを使うかもしれませんし、Ploneに複数レイヤーを持たせることの出来ない場合にはMySkinをベースにしてスキンの選択肢を加えるようなプロダクトを作るかもしれません。
- 注意点
- このチュートリアルは、Ploneのマクロの中のHTMLを上書きすることによって見た目をカスタマイズするようなやり方は意図的にカバーしていませんし、推奨しません。なぜならHTML部分はPloneをアップグレードしたときに変更される可能性があるため、これを編集するとトラブルの元になるからです。
本当にページテンプレートをカスタマイズする必要がある場合は、Creating a custom skinにあるBen Calderのhow-toやJet Wildaのチュートリアル"Where is what?"に有用な情報が見つかると思います。

