public virtual Item GetTag(string tagName, CustomTaggerSettingModel settings, List <Item> allTags, Item parentItem = null) { tagName = RemoveDiacritics(tagName); if (parentItem == null) { return(allTags.FirstOrDefault(i => i.Name == ItemUtil.ProposeValidItemName(tagName))); } return(allTags.FirstOrDefault(i => i.Name == ItemUtil.ProposeValidItemName(tagName) && i.ParentID == parentItem.ID)); }
public virtual Item AddTag(TagData data, Item parentItem, CustomTaggerSettingModel settings, List <Item> allTags) { var existingTag = GetTag(data.TagName, settings, allTags, parentItem); if (existingTag != null) { return(existingTag); } return(CreateNewTag(data, parentItem, settings)); }
protected virtual Item CreateNewTag(TagData data, Item parentItem, CustomTaggerSettingModel settings) { string tagName = RemoveDiacritics(data.TagName); string itemName = ItemUtil.ProposeValidItemName(RemoveDiacritics(data.TagName), "tag"); using (new SecurityDisabler()) { var tagItem = parentItem.Add(itemName, settings.TagEntryTemplate); tagItem.Editing.BeginEdit(); tagItem.Fields[Sitecore.FieldIDs.DisplayName].Value = tagName; if (!settings.TagEntryValueFieldId.IsNull) { tagItem.Fields[settings.TagEntryValueFieldId].Value = tagName; } tagItem.Editing.EndEdit(); return(tagItem); } }
public virtual Item CreateNewCategory(string categoryName, CustomTaggerSettingModel settings) { categoryName = RemoveDiacritics(categoryName); if (string.IsNullOrWhiteSpace(categoryName)) { return(null); } using (new SecurityDisabler()) { var categoryItem = settings.TagsCollectionRootItem.Add(ItemUtil.ProposeValidItemName(categoryName), settings.TagCategoryTemplate); categoryItem.Editing.BeginEdit(); categoryItem.Fields[Sitecore.FieldIDs.DisplayName].Value = categoryName; if (!settings.TagCategoryValueFieldId.IsNull) { categoryItem.Fields[settings.TagCategoryValueFieldId].Value = categoryName; } categoryItem.Editing.EndEdit(); return(categoryItem); } }
public List <Item> AllCategories(CustomTaggerSettingModel settings) { var query = $"fast:{settings.TagsCollectionRootItem.Paths.Path}//*[@@templateid='{settings.TagCategoryTemplate.ID}']"; return(settings.TagsCollectionRootItem.Database.SelectItems(query).ToList()); }