私はこの質問を plone ユーザーのメーリング リストにも投稿しました。
私の質問は一般的な質問に入れるのが難しいので、(できれば) 説明的な例で説明しようと思います。これについてはご容赦ください。
コンテンツ タイプ: 製品
各製品には、セクションの内容として、タイトルとリッチ テキストを含むいくつかの説明セクションが必要です。上記のタイトルは、定義済みのタイトルのリッスンから (編集者が) 取得するか、一度自由に入力する必要があります (例外)。
このサイトは Dexterity を使用し、多言語アプローチ (plone.app.multilingual) を必要とするため、タイトルを一元化することで翻訳者の頭痛の種を減らし、不要な重複を回避できます。また、一般的に、スタイリングは Diazo を介して行われるため、セクションは素敵なウィジェットにマッピングされます。
私の問題は、編集者と翻訳者の使いやすさとソフトウェアスタックの効率を念頭に置いて、これをどのように Plone にマッピングするかです。
アプローチ1
タイトルを非表示のフォルダーに入れ、Product コンテンツ タイプの語彙を使用します。また、Product をフォルダー風コンテンツ タイプにし、編集者が各セクションを個別のアイテムとしてフォルダーに入力することを要求します (例: ProductSection 非フォルダー風コンテンツ タイプ)。そのプロセスを製品ごとに繰り返します。しかし、これはあまりユーザーフレンドリーではないようで、製品やセクションの数に合わせてうまく拡張できません.
アプローチ 2
当然のことながら、Product コンテンツ タイプを一般的に 1 つのリッチ テキスト フィールドに減らし、ユーザーに見出しと段落を含む div ブロックとして各セクションを入力させることもできます。これはこれを実装するためのより簡単な方法ですが、翻訳者 (多くの重複した翻訳) と編集者に負担がかかります (たとえば、マーケティングなどのためにタイトルを変更すると、すべての製品で手動で変更する必要があります)。
繰り返しますが、これは私の問題を説明するための例であることを覚えておいてください。ここでの製品は実際には会社のポートフォリオからの製品であり、Plone アドオンではありません。;)
したがって、私の質問は基本的に次のようになります。どのアプローチがより合理的に聞こえますか? または、この問題を解決するためのより標準的および/または創造的な方法はありますか?
事前に提案と助けをありがとう。それは非常に高く評価されています...
アップデート
plone ユーザー リストで非常に啓発的な回答を受け取った後、私の現在の考え (未検証、ブレインストーミング) は次のとおりです。
- 製品はカスタム フォームになります (MultiWidget により、以下を参照)
- セクション ブロックは製品オブジェクトのリストに保存されます (タイトルは選択フィールドのみになります)
- セクションのタイトルは別の場所に保存され、さまざまな方法で管理できます (サイト管理者がアクセスできる必要があるため、ZMI は問題外です)
- z3c.form の MultiWidget による簡単な編集 (実際には、これが重要な要素です)
これが機能し、Dexterity と多言語でうまく機能する場合、関係者全員にとって最適なソリューションであると思います。当然のことながら、あらゆる種類のコメントや提案をいただければ幸いです。多分私は今完全に間違った方向に進んでいるかもしれませんが、私が読んだことに基づいて、これは実際にはうまくいくはずです。