4

Plone をカスタマイズする典型的な「インテグレーター」プログラマーとして、より効果的にコーディングするために ZMI について何を知っておくべきですか? 時間を節約し、より良いコードを書くのに役立つ設定、ツール、落とし穴、ショートカット、暗いコーナーは何ですか?

編集: GenericSetupプロファイルを使用して設定を変更し、ファイルシステムでコーディングしていることを読んでください。ZMI を変更することは悪い考えであり、一般的には避けてください。ただし、ZMI が役立つ場合もあります。ワークフローの調査、コンテンツ アイテムのアクセス許可の調査、または portal_setup を介したプロファイルの一部のみのインストールなどです。ZMI について知っておくべきことは本当に何もないのでしょうか? それとも、他に役立つちょっとした情報がありますか?

4

8 に答える 8

9

ZMI には、診断情報を求めて戻ってくる場所がいくつかあります。

  • /Control_Panel/Database: ZODB マウントポイントを選択します。[キャッシュ パラメータ] タブには、指定した ZODB キャッシュ サイズがどれだけ使用されたかが表示されます。[Activity] タブには、キャッシュにロードされて書き込まれているオブジェクトの数が表示されます。

  • /Control_Panel/DebugInfo/manage: 現時点で各スレッドが処理しているリクエストの表示など、多くの情報。「キャッシュ詳細」および「キャッシュ極詳細」リンクは、現在 ZODB キャッシュにあるオブジェクトのクラスに関する情報を提供します。

  • Plone サイト ルートの Components タブ: どのローカル アダプタとユーティリティが登録されているかをすばやく確認できます。適用ボタンを押さないでください!

  • ほとんどのオブジェクトの [元に戻す] タブ: 最近オブジェクトに影響を与えるトランザクションを誰がコミットしたかを確認します。

  • [セキュリティ] タブ: オブジェクトに対して実際に有効な権限を確認します。90% の確率で、ここでパーミッションを変更したくはありません。アクセス許可が設定されている場所を追跡するのは非常に難しく、ワークフローによってリセットされる可能性があります。代わりに、Plone UI の共有タブを使用して、ローカルの役割を割り当てます。(唯一の例外は、特定のコンテキストで特定のタイプのパーミッションを追加できるようにすると便利な場合が多いということです。) Zope 2.12 では、このタブに新しい機能があり、ユーザー名を入力して、どのようなパーミッションとロールが含まれるかを確認できます。これは便利です。

  • portal_catalog の [カタログ] タブ: 特定のパスに格納されているインデックス データとメタデータを確認します。(インデックスから偽のエントリを削除することもできます。)

  • portal_catalog の [インデックス] タブ: インデックスを選択し、その [参照] タブをクリックして、インデックスが作成されたキーと各キーに関連付けられているアイテムの概要を取得します。

于 2011-02-26T17:13:25.030 に答える
7

知っておくべき重要なことは、多くの ZMI ツールが Web 経由の迅速なカスタマイズを提供する一方で、この方法で行ったカスタマイズをデータベースからエクスポートするのは難しいということです。そのため、開発環境から運用環境へ、またはある展開から別の展開へと簡単に移動することはできません。

理想的には、新しい開発者は ZMI を使用して調査し、介入点を見つける必要があります。次に、ある展開から別の展開に移行するポリシー アドオン (製品) で同じ変更をより再現性よく実装する方法を学びます。

于 2011-02-24T00:11:37.440 に答える
6

Plone 用のコードを書きたい場合は、ZMI を避けるのが最善です。ZMI を介して物事を行うという概念は非常に限定的であり、推奨されていません。ZMI で利用できないものがますます増えており、ある時点でなくなるでしょう。

実際の Plone コントロール パネルには、使用できる設定オプションのほとんどが用意されています。それ以外の場合は、ファイル システムを調べるのが最適です。

于 2011-02-24T00:10:13.613 に答える
4

ZMI はバージョン管理されておらず、変更を簡単に見失う可能性があるため、ZMI を介してあまり構成しないでくださいという他のポスターに同意します。

しかし、ZMI は依然としてデバッグや特定のサイト構成の確認に非常に役立ちます。

以下は、私が定期的に参照している ZMI のツールの一部です。

  • portal_javascripts : デバッグをオフにします。どのスクリプトが存在するか、それらのレンダリングの条件は何か、それらは見つかったかを確認します。
  • portal_css : 基本的に portal_javascripts と同じですが、スタイルシート用です。
  • portal_types : タイプのプロパティを確認します。グローバルに作成できますか?その中にどのようなタイプを作成できますか? デフォルトのビューは何ですか? 等。
  • portal_catalog : どんなインデックスがありますか? カタログにはどのようなメタデータがありますか? カタログをクリアして再構築し、カタログを参照することもできます。
  • portal_workflow : 特定のワークフローにはどのような状態/遷移/権限がありますか? 特定のタイプでアクティブなワークフローは?
  • portal_properties/site_properties : サイト全体のプロパティを表示および設定します。これらの設定の多くは plone_control_panel (つまり、ZMI の外部) にありますが、ここではそれらが 1 つのページにあり、ZMI の方がナビゲートが高速です。
  • portal_skins : インストールされているスキン フォルダーを確認します。スキン レイヤーの順序を確認します ([プロパティ] タブを使用)。スキン ディレクトリ内のテンプレート、スタイルシート、および JavaScript を編集することもできます。お勧めしません!しかし、デバッグには便利です。
  • portal_setup : 非常に大規模で複雑な Plone ウェブサイトの中には、勝手にアドオンを追加/削除/再インストールしただけでは壊れてしまうものがあります。多くの場合、特定の GenericSetup 更新を実行する方が安全です。たとえば、新しいポートレットを追加した場合は、portlets.xml の特定の手順を portal_setup ([インポート] タブ) からインポートしてから、製品全体を再インストールします。
  • portal_actions : 表示/存在するアクションを構成します。
  • portal_quickinstaller : アドオンをすばやく再インストール、アンインストールします。多くの場合、Plone コントロール パネルの同等のものをロードするよりも高速で軽量です。
  • acl_users : LDAPUserFolder のようなアドオンを使用する場合、設定とテストのために acl_users を掘り下げる必要がある場合があります。ここでユーザーを作成することもできますが、Plone コントロール パネル (つまり、ZMI ではなく) を介して行う方がよいでしょう。

ZMI には他にも調整する (そしてサイトを壊す) べきツールやものがたくさんありますが、上記のものは私が 90% の時間使用しているものです。

于 2011-02-28T08:38:58.753 に答える
2

portal_historystorage ツールは、大量のディスク容量を消費する可能性があります。リビジョンを保存するように設定されたコンテンツ タイプはここに保存され、デフォルトで Plone はすべてのリビジョンを保持します (portal_purgepolicy ツールを参照してください)。

本番 Data.fs のすべてのリビジョンが必要ですが、開発用にコピーを作成した後、最初に行うことは、portal_historystorage を消去することです。手順は次のとおりです。

  • ZMI で Plone サイトに移動します
  • portal_historystorage ツールを削除する
  • portal_setup の [インポート] タブに移動します
  • [プロファイルまたはスナップショットの選択] で、[CMFEditions] を選択します。
  • ハンドラー Products.GenericSetup.tool.importToolset でステップを選択します
  • 「依存関係を含めますか?」のチェックを外します。
  • 「選択したステップをインポート」を押して、portal_historystorage を再度追加します
  • Data.fs をパックし、生成された Data.fs.old をファイルシステムから削除します。

私の 3G Data.fs では、この小さなシーケンスで 2.5G が削除されます!

私は開発用Data.fsでこれを行ったことがあります。本当に詳しい人のアドバイスがなければ、本番サイトでこれを行うことはお勧めしません。

于 2011-02-23T23:14:31.147 に答える
1

通常、インテグレーターまたは開発者が可能なメンテナンスタスクのために他のZMIに触れる理由はありません。ほとんどすべてのカスタマイズは、PythonまたはGenericSetupプロファイルを使用して実行できます。プロファイルの利点は次のとおりです。再現性-ファイルシステム上で維持できる-ファイルをリビジョン管理下に置くことができる。

ZMIを介して作業および構成できることは、 Ploneに対して部分的に機能しています。特に、Ploneが内部で余分な作業を行っている場合はそうです。したがって、唯一の推奨事項は次のとおりです。可能であれば、ZMIを維持します。ZMIはPloneUIを使用するための適切な代替品ではなく、自分が何をしているかを本当に理解している場合にのみタッチする必要があります。

于 2011-02-24T03:37:27.307 に答える
1

はい、ZMI は時折のメンテナンス タスク用であり、必要に応じて CSS やテンプレートの微調整を行うためのものです。それは実際の「コーディング」作業を意図したものではなく、Plone のコンテキストでは、Zope の歴史からの奇妙で最小限の有用な残り物と考えるのが最善です。

于 2011-02-24T04:32:50.280 に答える
0

portal_actionsは、より柔軟なトップレベルのナビゲーションにも役立ちます。ただし、ここでもgnericsetupを使用して構成するのが最適です。

于 2011-02-27T04:28:50.667 に答える