目前,我们创建的所有模板都有源字段,其路径为字符串。
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属性是只读的并且可以修改。 有任何想法吗? 提前谢谢。
答案 0 :(得分:3)
这里最好/最有效的选择是使用Sitecore Powershell Extensions修改项目。
您也可以在代码中执行此操作。
您需要编写以/sitecore/templates/user defined
或任何根文件夹开头的例程(代码或SPE)。
通过树递归并获取包含模板的所有项目:Template Field
。然后,您可以检查Source
字段的值。如果是您要更改的那个,请更新该值并保存该项目。
请记住在更新所有值后发布模板树。