Kentico 9-基于页面模板限制页面类型
我试图限制编辑器在Kentico节点上创建错误的文档。我知道这里有页面类型->范围,但在我的情况下很难配置它。 在我的场景中,我有一个重复的节点结构,如下所示:Kentico 9-基于页面模板限制页面类型,kentico,Kentico,我试图限制编辑器在Kentico节点上创建错误的文档。我知道这里有页面类型->范围,但在我的情况下很难配置它。 在我的场景中,我有一个重复的节点结构,如下所示: Root (template: ROOT) - Page 1 (type: Page; template: PAGE) - Page 2 (type: Page; template: PAGE) - Page 3 (type: Page; template: PAGE) ... - Section A (type:
Root (template: ROOT)
- Page 1 (type: Page; template: PAGE)
- Page 2 (type: Page; template: PAGE)
- Page 3 (type: Page; template: PAGE)
...
- Section A (type: Page; template: SECTION)
- Node 1 (type: Page; template: NODE)
- Node 2 (type: Page; template: NODE)
- Node 3 (type: Page; template: NODE)
...
- Section B (type: Page; template: SECTION)
- Node 1 (type: Page; template: NODE)
- Node 2 (type: Page; template: NODE)
- Node 3 (type: Page; template: NODE)
...
- Section C (type: Page; template: SECTION)
- Node 1 (type: Page; template: NODE)
- Node 2 (type: Page; template: NODE)
- Node 3 (type: Page; template: NODE)
...
编辑器可以创建许多节,但始终使用节模板。
我希望在一个部分下,编辑器只能创建一个类型为“PAGE”的节点
这就是我想做的:
我创建一个新的宏规则(在宏规则应用程序上),检查当前页面是否有特定的模板(传递参数)
然后我创建一个新范围(页面类型->范围)
我认为这一切都没问题(在“A部分”我只能添加“页面”文档),但在“第1页”(模板与该部分不同)我只能添加“页面”文档。看来我的情况总是“真的”
我尝试用“DocumentPageTemplateID”和“NodeTemplateID”来更改宏中的参数字段,但得到了相同的结果
我相信这将接近解决方案。你能帮我吗
PS:我知道我可以为a、B、C节创建不同的页面类型,然后使用页面类型作用域,但我更喜欢在模板的基础上而不是在类型的基础上这样做
谢谢不要为“节”使用页面类型,而是创建一个新的节页面类型并为其设置默认模板。然后可能会创建另一个名为“节点”的新页面类型,并为其设置默认模板。无需对作用域发狂,只需将节和节点页面类型的作用域都设置为根,并且只允许将节点放置在节的下面,节只能放置在根文档的下面。仅供参考,可以设置非常适合您的场景的允许的子页面和parrent页面类型。检查一下 编辑:根据页面模板-在页面模板应用程序中,可以限制在特定路径上使用页面模板创建页面(见下面的附件)。你可以学到更多
我找到了一个解决办法。我将它发布给任何想这样做的人(并帮助我完成它:-)) 我使用以下命令更改宏条件:
{_is}(Documents.Where("NodeID=" + QueryString.parentnodeid)[0].DocumentPageTemplate.CodeName == "{template}")
然后我使用这个条件创建范围
单击节点的新功能时,加载的页面仅显示所需的页面类型(在范围中选择)。
这是因为当我单击“新建”按钮时,Kentico会加载此页面:/CMSModules/Content/CMSDesk/NEW/NEW.aspx?classid=true&parentnodeid=35&parentculture=it
其中,parentnodeid是请求添加新节点时选择的节点。我使用此参数获取文档并检查模板
该解决方案的“问题”在于:
如果我右键单击节点并选择新建。。。弹出菜单将显示所有页面类型。这很明显,因为弹出菜单不调用任何页面,所以没有parentnodeid可供查找
目前这个解决方案对我来说还可以,因为我告诉网站的编辑,当他们想要添加新页面时,点击加号按钮
感谢大家的帮助,我希望我们能找到一个100%有效的解决方案。以下是有关为页面类型创建父子关系的文档,以防您感兴趣:您好,谢谢。我知道用不同的页面类型我可以做到这一点。我是库里奥斯这样做的模板使用。我不明白为什么我的条件总是为真。根据你的宏条件-你能检查宏调试吗?@martin。谢谢,我不知道宏调试。我正在尝试,UI中的CurrentDocument似乎为空。我必须访问单击的文档并检查TemplateID。我一直在尝试…CurrentDocument只在管理UI之外工作。如果您需要管理UI中的当前文档,请使用EditedDocument。谢谢@martin。是的,这可以通过页面类型定义来完成。我的方法是找到一种基于父节点模板限制子类型的方法。如果我理解正确,根据您的回答,我可以限制创建具有确定模板的页面。例如,我可以设置模板部分只能分配给第1级的页面,模板节点只能分配给第2级的页面。。。但这不是我答案的答案(也许我不明白)。我的目标是,当我右键单击节点节A并按下菜单项“新建…”时,文档允许的唯一页面类型是“页面(菜单项)”。但如果我右键单击节点第1页(与A部分的类型和级别相同),然后按NEW。。。我想能够添加其他docsAlberto,这个结构能有多深?它是否仅符合您在上述示例中指出的级别?(如果这不再相关,请忽略我)我通过本文末尾的解决方法解决了这个问题(见我最后的答案),但是如果你有任何建议。。。哇!“这个结构能有多深?”越深越好:-)分享你的想法