管理者が現在使用されているテーマを変更できるようにしたいと考えています。おそらく、Cookie または特別な URL を設定することによって。これにより、別のバージョンが他の人のために公開されている間に、テーマのコピーをデバッグできるようになります。
3 に答える
これをサポートするには、plone.app.theming での作業が必要になるため、異なる CMF スキンに対して異なる diazo テーマを構成できるようになります。それは私のロードマップにありますが、いつ実現するかはわかりません。この機能の開発やスポンサーに興味がある場合は、私に連絡してください。
ホスト名を使用して、使用するジアゾテーマを決定する同様のものを作成しました。rules.xml、index.html、およびカスタム リソースが異なっていても問題はありませんでした。themingplugins は別の話 (オーバーライド、ビュー、browserlayer など) でした。リクエストごとに themingplugins を登録/登録解除することがどれほど良いかわかりません。
家に帰ったらこのコメントを更新して、私が何をしたかを確認できるようにします。私の記憶が正しければ、plone.app.theming (テーマを適用するコンポーネント) から登録されたものをサブクラス化して置き換えました。
私はこれを試しませんでしたが、おそらくこのように動作する可能性があります:
現在使用されているテーマのパラメーターを定義します。portal_skins/manage_propertiesForm で「任意のスキンの選択を許可する」を有効にする必要があることに注意してください。
[theme:parameters]
theme = python:self.context.REQUEST.get('plone_skin', 'Plone Default')
rules.xml のこのパラメーターに基づいて、テーマまたはルールセットを選択します。
<theme href="theme1.html" if="$them = 'special theme'"/>
<theme href="default.html" if="$them = 'Plone Default'"/>