如何在 2sxc 应用程序的详细信息视图上使用演示设置?

How can I use presentation settings on a details view of a 2sxc app?

我有一个 2sxc 应用程序,其中包含详细信息视图列表。所以我有两个模板:_listing.cshtml 和 _details.cshtml.

我的详细信息模板使用“URL 路径中的名称”字段,如下所示:resource/.* 因此当用户浏览到其 URL.

时它会过滤单个项目

在列表设置中,我可以为列表配置演示设置,当我去编辑列表中的项目时它们会显示。但是当我在详细信息模板上配置演示设置时,它们不会出现在编辑模式中。

如何让演示设置适用于我的应用程序中项目的详细信息视图? (我知道我可以将这些字段作为内容类型中的普通内容字段,但这似乎是一个棘手的解决方法......但如果必须的话我会这样做)

我是在没有尝试或测试的情况下回答的,所以希望像 Daniel 这样的人能提出更好的方法,但我认为问题出在上下文上。我假设您是从列表视图编辑的?通过 TabToolbar 显示编辑蓝圈铅笔?当您在列表视图上编辑项目时,Presentation 实体位于该模块和列表视图的上下文中。

因此,当您在详细视图中显示时,Presentation 项不存在,因为您没有从那里启动编辑。

您是否尝试过不在列表视图中发出 TagToolbar 而只允许在详细视图中编辑?或者也可以在详细信息视图中发出它,看看是否有不同的设置?

如果这可行,那将非常有趣。这意味着对于每个内容项,您可以连接不同的 Presentation 内容类型,并且您可以为 List 与 Detail 设置不同的 Presentation 设置。

可以做到,但必须正确接线。

通常,详细信息视图仅使用查询来获取具有 ID 的项目。但在这种情况下,您希望从当前列表/模块中获取带有 ID 的项目。因为只有在列表的上下文中,该项目才具有 Presentation 属性.

所以使用CmsBlockDataSource(v12)或者ModuleDataSource(之前的版本)获取当前模块的数据,然后过滤输出通过 ID.

一个简单的开始方法就是创建一个新查询 - 它将向您显示初始设置以获取当前 list/module 的数据。