1

我正在使用 UMBRACO 6.0.2,我看到一个问题,当我取消发布在其他地方使用的节点时,UMBRACO 不会删除引用节点并导致代码崩溃。

我宁愿不实现逻辑来处理空节点,而是希望实际的 CMS 更优雅地处理它。

有谁知道这是否可能?

4

1 回答 1

1

据我所知,Umbraco 不会将节点之间的引用保存在单独的表中,因此没有标准选项来查看哪些节点引用了另一个节点。

但是,有一种方法可以通过对数据库表使用查询来完成此操作。Umbraco将cmsPropertyData表中documenttype字段的值保存在字段中dataNtext,nodeID保存在contentNodeId字段中

您可以挂钩Document.AfterUnPublish()orDocument.BeforeUnPublish()事件并在cmsPropertyData表上运行查询以检查是否存在dataNtext包含您刚刚未发布的 nodeId 的字段。如果是这样,您还需要从contentNodeId字段中取消发布带有 nodeID 的文档。

这个解决方案不是一个干净的解决方案,但它可以工作。棘手的部分是确定节点是否尚未在您的事件中被处理/取消发布,否则您可能会创建无限循环;)

于 2013-04-12T15:04:14.867 回答