SDL Tridion 2009 SP1 を使用しています。ページをロックできる CMS の拡張機能である新しい機能を実装しました。ページがロックされている場合、そのページは公開できません (ロックされているページの情報は、この拡張機能用に作成されたデータベースに保持されます)。
ページの新しいステータスをユーザーに通知する新しいアイコンを追加します。
現在、4 つのアイコンの組み合わせがあります (アクションなし、チェック済み、公開済み、チェック済み、公開済み)。
私は CMS インターフェースの経験が長いわけではないので、パフォーマンスに影響を与えず、多くの変更を行わないという点で簡単に実装できるソリューションを見つけるための助けが必要です。
以下は、これに関する私の調査です。
cms でアイコンがレンダリングされる方法は、簡単に更新できる単純なメカニズムではないことに気付きました。CMS の左側のアイテムをクリックするたびに、右側からリストをレンダリングするために、WebGUIResponder.aspx に対して ajax 呼び出し (xml 要求を使用) が行われます。ページ。
返される応答は、属性フィールド Icon を含む xml です。
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0"
ID="tcm:yyy-zzzz-4" Managed="68" ItemType="4">
<tcm:Item ID="tcm:yyy-zzzzz-64" Type="64" Title="NotificationTest"
Modified="2011-05-09T09:42:27" FromPub="400 YYYY Website Master (EN-GB)"
IsNew="false" Icon="T64L0P1"/>
</tcm:ListItems>
このフィールド アイコン属性 (Icon="T64L0P1) に基づいて、イメージ名の処理が開始されます。
- T64 = ページであることを意味します
- L0 = チェックされていません
- P1 = すでに公開されている
このようなフィールドの場合、画像名の結果は = T64.16x16.List.Published.gif になります。
ページ xml を介してこのフィールドを更新する方法が見つかりませんでした。これは、xml に保持されている情報ではなく、xml 要求時に dll に組み込まれている情報です。(公開された他のフィールドに基づいて、この Icon フィールドが計算されます。)
したがって、このフィールドを変更できない場合は、以下のオプションがあります。 dll) であり、私が考えていたロジックをあまり変更せずに、このアプローチを採用しました。
新しいページ WebGUICheckPageLocked.aspx への新しい Ajax 呼び出しを行うことができます (パフォーマンスへの影響をテストする必要があります)。このページのコード ビハインドでは、ページがロックされているかどうかを判断できます (ページがロックされているかどうかを判断する内部関数を使用して、この機能は既に実行されています)。このページで、アイコン フィールドを T64L0P1E01 に変更します (ページの新しいステータスを判断できるようにするための追加情報を追加します)。また、GetPNGIconName javascript 関数を変更して、新しい情報 E01 を考慮して追加のチェックを行うことができます ...)
誰かがこれについてより良いアイデアを持っている場合は、おそらくそれは簡単に実行できるものであり、アイコンフィールドを更新できる方法である可能性があります.
敬具、 クリスティーナ