UMBRACO 6.0.2 を使用していますが、別の場所で使用されているノードを非公開にすると、UMBRACO が参照ノードを削除せず、コードがクラッシュするという問題が発生しています。
null ノードを処理するためのロジックを実装したくはありませんが、実際の CMS がそれをより適切に処理することを望みます。
それが可能かどうか知っている人はいますか?
UMBRACO 6.0.2 を使用していますが、別の場所で使用されているノードを非公開にすると、UMBRACO が参照ノードを削除せず、コードがクラッシュするという問題が発生しています。
null ノードを処理するためのロジックを実装したくはありませんが、実際の CMS がそれをより適切に処理することを望みます。
それが可能かどうか知っている人はいますか?
私の知る限り、Umbraco はノード間の参照を別のテーブルに保存しないため、どのノードが別のノードを参照しているかを確認する標準オプションがありません。
ただし、データベース テーブルでクエリを使用してこれを実現する方法があります。Umbraco はcmsPropertyDataテーブルの documenttype フィールドの値をフィールドにdataNtext保持し、nodeID はcontentNodeIdフィールドに保持されます。
Document.AfterUnPublish()またはDocument.BeforeUnPublish()イベントにフックし、cmsPropertyDataテーブルでクエリを実行しdataNtextて、非公開にした nodeId を含むフィールドがあるかどうかを確認できます。その場合は、フィールドの nodeID を使用してドキュメントを非公開にする必要もありcontentNodeIdます。
この解決策はきれいなものではありませんが、うまくいく可能性があります。注意が必要な部分は、ノードがまだイベントで処理/非公開されていないかどうかを判断することです。そうしないと、無限ループが作成される可能性があります;)