Orchardcms 如何使没有公共部分的内容项显示在内容列表中?

Orchardcms 如何使没有公共部分的内容项显示在内容列表中?,orchardcms,orchardcms-1.9,Orchardcms,Orchardcms 1.9,我创建了一个自定义类型,它附加了一个UserPart 根据,您不能将公共部分添加到同样具有用户部分的内容中,因为这会导致StackOverflowException,但我仍然希望自定义类型的项显示在内容列表中。我已经将CreatedUtc和PublishedUtc存储在自定义PartRecord中,我可以手动将它们插入某个位置吗 编辑:为了澄清,我的具体场景是,我正在基于目前为止私人应用程序中使用的现有数据构建一个面向公众的Orchard网站。我有一个遗留表,其中包含需要映射到Orchard用户

我创建了一个自定义类型,它附加了一个
UserPart

根据,您不能将
公共部分
添加到同样具有
用户部分
的内容中,因为这会导致
StackOverflowException
,但我仍然希望自定义类型的项显示在内容列表中。我已经将CreatedUtc和PublishedUtc存储在自定义PartRecord中,我可以手动将它们插入某个位置吗


编辑:为了澄清,我的具体场景是,我正在基于目前为止私人应用程序中使用的现有数据构建一个面向公众的Orchard网站。我有一个遗留表,其中包含需要映射到Orchard用户的用户帐户,但它们也代表了游客可以浏览的旅行社,Orchard管理员可以通过仪表板轻松编辑和创建旅行社。我的想法是创建一个TravelAgency类型,其中包含一个用户部分,内容类型不需要在内容列表中显示公共部分。如果我没记错的话,它是通过在迁移中触发createable()来完成的。 另外,如果您有一个UserPart,您可以延迟加载或通过外键引用它

为什么您希望这样的内容成为内容列表的一部分?我通常将我的特定于业务的内容类型隐藏在一个好的部分中,这样用户就可以更容易地看到和使用这些内容

这肯定是一个bug,但正如他们评论的那样,您可以扩展分类法来完成任务,并记住有时更改Orchard代码库可能符合您的目的,您只需在下次升级时跟踪您的更改。为了配合我的项目,我已经做过几次了


如果我没记错的话,已经有一段时间了。。如果查看创建内容列表的核心代码,它会查找可创建()类型。在代码内部挖掘得更多,负责的查询很可能会加入公共部分,因此您的问题就出现了。您可以轻松地在控制器中添加另一个查询,并添加所需的内容。不过,问题在于重构其余操作以适应您的类型。更容易隔离你的新类型。必须为您查看它,检查这个婴儿:Orchard.Core.Contents.Controllers.AdminController

好吧,内容类型既可以创建也可以列出,但只要我不将公共部分附加到它们并重新发布它们,它就不会显示在内容列表中。当我删除公共部分时,项目再次从列表中消失。在我的例子中,类型不是特定于业务的。它既是一个用户,也是访问者可以在前端与之交互的东西。我认为这最终是你的问题所在。如果您能更好地解释一下您的场景,也许我们可以找到一个解决方法。我可以看到您在文章中发表了评论。看起来你正试图以一种非常快速的方式完成这项工作。第一:用户是用户,不能是旅行社。用户可以是旅行社的所有者,您应该能够使用权限限制编辑。第二:客户、旅行社不应该在内容列表中,因为他们没有内容。您可以从列表实现中快速提取功能,以实现您想要做的事情,并使所有内容都井然有序地组织起来。。如果查看创建内容列表的核心代码,它会查找可创建()类型。在代码内部挖掘得更多,负责的查询很可能会加入公共部分,因此您的问题就出现了。您可以轻松地在控制器中添加另一个查询,并添加所需的内容。不过,问题在于重构其余操作以适应您的类型。更容易隔离你的新类型。必须为您查看它,检查这个婴儿:Orchard.Core.Contents.Controllers.AdminController