gpt4 book ai didi

Sitecore - 如何在特定文件夹下显示模板,在插入选项上下文菜单中

转载 作者:行者123 更新时间:2023-12-01 11:19:05 26 4
gpt4 key购买 nike

假设用户本身能够添加新的分支模板。

在主页项目上,插入选项必须包含该分支模板文件夹内的项目。

在 sitecore 中,插入选项只能设置到特定项目。当我选择一个文件夹作为插入选项时,sitecore 会显示该文件夹项目(这是完全正常的)。

我需要做一些事情,比如在特定文件夹内动态显示项目,或者设置插入选项浏览对话框的起始路径。

这有可能吗?

最佳答案

博文:https://sitecorealekseyshevchenko.wordpress.com/2017/09/19/dynamic-insert-options/

创建“动态插入选项”模板,其中包含唯一字段“起始路径”类型的“Droptree”,源值为“{3C1715FE-6A13-4FCF-845F-DE308BA9741D}' - '/sitecore/templates' 项目的 ID。

然后将“动态插入选项”模板添加到模板的“基本模板”字段中的模板列表中,该模板应该具有动态插入选项。

enter image description here

使用这样的配置修补“uiGetMasters”处理器:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<processors>
<uiGetMasters>
<processor mode="on"
type="DynamicInsertOption.Processors.GetDynamicInsertOption, DynamicInsertOption"
patch:before="processor[@type='Sitecore.Pipelines.GetMasters.CheckSecurity, Sitecore.Kernel']" />
</uiGetMasters>
</processors>
</sitecore>
</configuration>

实现 GetDynamicInsertOption 处理器:

namespace DynamicInsertOption.Processors
{
using Sitecore.Data.Items;
using Sitecore.Diagnostics;
using Sitecore.Pipelines.GetMasters;

public class GetDynamicInsertOption
{
public void Process(GetMastersArgs args)
{
Assert.ArgumentNotNull(args, "args");

var startingPath = args.Item["Starting Path"];

if (!string.IsNullOrEmpty(startingPath))
{
for (int i = args.Masters.Count - 1; i > -1; i--) { args.Masters.RemoveAt(i); }

var startingFolder = args.Item.Database.GetItem(startingPath);

foreach (Item master in startingFolder.Children) { args.Masters.Add(master); }
}
}
}
}

结果见下图:

enter image description here

关于Sitecore - 如何在特定文件夹下显示模板,在插入选项上下文菜单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46293892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com