[10]リソースの追加
'portal_css'と'portal_javascripts'を使って,スタイルシートやJavaScriptを登録する方法について解説します。
Plone 2.0で新しいスタイルシートやJavaScriptを追加するのは面倒でした。というのは,その種のリソースはPage Templateにハードコードされていたからです。Plone 2.1では,ResourceRegistriesというプロダクトがportal_cssとportal_javascriptsというツールを提供しています。このツールを使ってスタイルシートやJavaScriptを個別に追加します。スタイルシートやJavaScriptはTALES式に従って状況によって読み込むかどうかをコントロールできます。また,ツールのAPIを使って容易に管理できます。
RichDocumentは,'Install.py'で'portal_css'[1] を使ってスタイルシートを登録しています:
portal_css = getToolByName(self, 'portal_css')
portal_css.manage_addStylesheet(id = 'richdocument.css',
expression = 'python:object.getTypeInfo().getId() == "RichDocument"',
media = 'all',
title = 'RichDocument styles',
enabled = True)
expressionに指定されている表記は,スタイルシートを読み込むかどうかを選択するためのTALの条件になっていることに注意して下さい。
portal_cssとportal_javascriptsにどんな機能があるのかを知りたい時には,DocFinderTabを使って下さい。
Ploneのテーマ作成に興味がある方は,DIYPloneStyleというスケルトンプロダクト [2] をご覧下さい。
[1] 厳密には,RichDocumentではportal_cssを使う必要はありません。スタイルシートはrichdocument_view* テンプレートでしか利用されていません。この場合css_slotを定義して利用するのが普通でしょう。とはいえ,よい例題にはなるはずです ;-)。
[2] このプロダクトはSimplePloneStyleというプロダクトを置き換えるものです。SimplePloneStyleはプロダクトの例としては有用です。
以下のURLにあるHow Toの翻訳です。
http://plone.org/documentation/tutorial/richdocument/resourceregistries