我问了这个问题over on the Kentico devnet,但还没有明确答案。
我对Kentico 8.2的实现有一个特殊的要求,在代码中,给定一个特定的TreeNode
,我想首先找到所使用的模板上的所有区域,然后为每个区域获取详细信息这些区域中使用的所有Web部件和小部件。
在我的情况下,我不需要担心模板继承。我的所有页面都没有实现模板继承。
我发现this post on the old Kentico forums建议我可以使用PageInfoProvider
获取相关PageInfo
的{{1}}对象,然后使用其TreeNode
属性获得我需要的东西。
但是,我没有看到PageTemplateInfo
的{{1}}属性。有PageTemplateInfo
和CMS.DocumentEngine.PageInfo
。我想也许DesignPageTemplateInfo
可能就是那个,它确实包含了UsedPageTemplateInfo
集合中的正确区域。但我没有看到我期望在区域'UsedPageTemplateInfo
集合中的Web部件(实际上是小部件)。
我想我要问的是,如何使用API从WebPartZones
作为结构化对象访问WebParts
列的内容?我已经意识到我可以通过调用DocumentWebParts
上的dbo.CMS_Document
来访问我需要的信息,但这是非结构化的XML。我假设API中的某个地方我可以将这些信息作为结构化对象。
有谁知道我如何获取我需要的细节?感谢。
P.S。我的模板使用ASPX +门户模型。
答案 0 :(得分:1)
正如我在DevNet的第二个回答中所提到的,你不能专门使用cms_document
表,因为webparts在模板中运行而不是在特定页面上运行。另一方面,即使页面具有与另一页面相同的模板,窗口小部件也是每页特定的。拿一个我提供的look at the example on the DevNet,它可以帮到你找到你想要的东西。