CME のリスト (フォルダーと構造グループ) をブラウズするときに、いくつかの項目の追加列を適切に表示するデータ エクステンダー クラスとエディター拡張機能を作成しました。GetList、GetListSearch、GetListUserFavorites、GetListCheckedOutItems などのコマンドを処理するには、クラスを登録する必要がありました。
私が気付いたのは、たとえばスキーマのリストがCMEのドロップダウンリストにロードされている場合でもコードが実行されることです(新しいコンポーネントを作成し、ドロップダウンでスキーマのリストを取得する場合など) . そのため、その状況では追加のデータ列は必要ありませんが、コードはまだ実行されており、処理が遅くなります。
そのような状況で呼び出されるのは GetList コマンドのようです。だから、コマンドに基づいて処理をスキップすることはできません。そのため、クラスがリスト用に受け取る XML を調べ始めたところ、ドロップダウン用のコードを実行すると、XML に があることに気付きましたManaged="0"
。例えば:
- 構造グループ リストの場合:
<tcm:ListItems Managed="64" ID="tcm:103-546-4">
- フォルダ リストの場合:
<tcm:ListItems Managed="16" ID="tcm:103-411-2">
- ただし、スキーマ リストの場合:
<tcm:ListItems ID="tcm:0-103-1" Managed="0">
- カテゴリのキーワード値を表示するドロップダウンの場合:
<tcm:ListItems Managed="0" ID="tcm:103-506-512">
では、この Managed="0" をフラグとして使用して、処理中のリストに追加の列が表示されず、処理を終了できることを示すことができますか?