Ploneで親フォルダーからリソースを取得する良い方法は?
-
10-10-2019 - |
質問
フォルダーに応じてレイアウトを変更する必要があるPlone(4.0.1)サイトがあります。次のような構造を想像してください:
University > Faculty A > Institute A1 > Person A11
> Person A12
> Institute A2 > Person A21
...
必要なすべてのリソース(カスタムCSSファイル、画像など)をZODBに入れた場合、Person A11のページは、ファカルティAフォルダーにあるFAC-IMAGE.gifを自動的にピックアップします。
ただし、混乱を避けるために、fac-image.gifをユーザーに公開したくありません。 (これはすべて、とにかく触れるべきではないフレームワークの一部です。)
リソースを登録すると、++リソース++ themages.images/pathで物をアクセスできますが、両親からの取得は行われていないため、++ resource ++ themage.images/fanfultya/institutea1/fac-image.gif画像が見つかりません。さらに悪いことに、私は今維持するための別のディレクトリ構造を持っています。
私が現在していることは、ファイルシステムディレクトリビューを介して「最善の努力」トラバーサルプロセスを手でロールすることです。これは、パスを下ってみようとします。サブディレクトリが存在しない場合にとどまります(つまり、リソースツリーが行いません'Tsern A11のサブディレクトリがあります。404を叫ぶ代わりに、Institute A1)を獲得してから、バックアップを取得してみてください。 Portal_FactoryとViewsにはいくつかのトリックが関係しており、私はもっと逃したと確信しています。
だから:それは確かにそれをするべき方法ではないが、何ですか?
解決
このユースケースをplone3に実装するCollective.phantasyからインスピレーションを与えることができます(フォルダーコンテナのL&Fを変更します)。
他のヒント
CSSを使用します。
現在のセクション /ファカルティ /選択のアスペクトに基づいてクラスでタグをタグ付けし、それらのクラスに基づいて画像を変更するだけです。コンテンツとは別に視覚的なデザインを保管してください!
そうあるようです。最終的に、コンテキストパスを調べてマングルするヘルパービューを登録し、他の場所をファイルシステムディレクトリビューに指していることになりました。