我在Sitecore中有一个布局项目,并且能够通过“链接”按钮识别所有引荐来源项。我有大量的引荐来源商品,我想将其全部删除。我希望我不必逐一检查每个项目即可删除参考项目。我也希望不要删除引用的项目并重新创建它,因为它将为新项目生成不同的GUID。
是否可以通过Sitecore桌面或SQL Server来执行此操作?
您可以在后面的代码中创建具有以下代码逻辑的动态Asp.net页。
public string RemoveReferenceLinks(string nodePath)
{
var db = Sitecore.Configuration.Factory.GetDatabase("master");
var item = db.GetItem(nodePath);
if (item == null) return new ItemLink[0];
var links = Globals.LinkDatabase.GetItemReferrers(item, true);
if (links.Length == 0)
{
return "No referrence found";
}
foreach (var link in links)
{
var sourceItem = link.GetSourceItem();
foreach (var item1 in sourceItem.Versions.GetVersions(true))
{
var field = item1.Fields[link.SourceFieldID];
var field2 = FieldTypeManager.GetField(field);
if (field2 == null) return;
using (new SecurityDisabler())
{
item1.Editing.BeginEdit();
field2.RemoveLink(link);
item1.Editing.EndEdit();
}
}
}
return "All reference removed";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句