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
ます。
この解決策はきれいなものではありませんが、うまくいく可能性があります。注意が必要な部分は、ノードがまだイベントで処理/非公開されていないかどうかを判断することです。そうしないと、無限ループが作成される可能性があります;)