Sitecore - 以编程方式修改模板的源字段

时间:2016-01-29 08:34:06

标签: c# sitecore

目前,我们创建的所有模板都有源字段,其路径为字符串。

e.g。 :

"sitecore/content/Test"

现在,如果我想将Test文件夹移动到

sitecore/content/Shared/Tags/Test

链接破了。 如果我手动更改它以使用GUID(使用构建选项),我得到:

datasource={62CF8494-B148-4B2E-9D36-52EC4CD75E13}&database=master

如果我现在移动测试文件夹,我的链接保持原样。

我想编写一个遍历树的例程,并更新我的模板的所有源字段(仅在特定文件夹中),以包含GUID和db名称。 这可能吗?

我尝试在继承自PublishItemProcessor的类的Process方法中执行此操作,并在web.config中添加了相应的条目。调用此方法,但该字段的Source属性是只读的并且可以修改。 有任何想法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

这里最好/最有效的选择是使用Sitecore Powershell Extensions修改项目。

这是一个很好的参考点:https://sitecorepowershell.gitbooks.io/sitecore-powershell-extensions/content/working-with-items.html

您也可以在代码中执行此操作。

您需要编写以/sitecore/templates/user defined或任何根文件夹开头的例程(代码或SPE)。

通过树递归并获取包含模板的所有项目:Template Field。然后,您可以检查Source字段的值。如果是您要更改的那个,请更新该值并保存该项目。

请记住在更新所有值后发布模板树。