Sitecore Item CURD

基础 CURD


Database db = Sitecore.Configuration.Factory.GetDatabase("master");
Language lang = Language.Parse("en");
TemplateItem  folderTemplate = db.GetTemplate("	/sitecore/templates/Common/Folder");

// 获取 Home Item
Item homeItem = db.GetItem("/sitecore/content/Home");


// 判断 ItemName 是否合规
bool isVaildItemName = ItemUtil.ProposeValidItemName("NewItemName");

// 添加一个 Item
Item newItem = homeItem.Add("NewItemName");
// 或
newItem = homeItem.Add("NewItemName", TemplateItem);

// 添加一个 Version,当 Item 不存在时,即是添加一个 Item
newItem = newItem.Versions.AddVersion();

// 切换 Language 上下文
using (new LanguageSwitcher(language))
{
    // 在此 Block 内获取的 Item 将会指定语言的 Item
    Item helloItem = db.GetItem("/sitecore/content/Home/Hello");
}


// 编辑内容
if (!item.Editing.IsEditing){
    newItem.Editing.BeginEdit();
    newItem.Field["Content"] = "Hello, this is a demo.";
    // 也可以使用 ID 来指定其中的 Field,此处的 ID 是 FieldIDs.Workflow。
    newItem.Field["{A4F985D9-98B3-4B52-AAAF-4344F6E747C6}"] = "Hello, this is a demo.";
    newItem.Editing.EndEdit();

    // 也可以使用 using 来 Edit
    using(new EditContext(newItem)){
        // TODO: Item Editing...
    }
}

// 因为有时会出现权限问题,可使用 SecurityDisabler 来处理
using (new SecurityDisabler()){
    // TODO: Item Editing...
}

// 如果出现权限或 Site 的问题,可以使用下面这个 Switcher 和 SecurityDisabler 一起处理
using (new SiteContextSwitcher(SiteContext.GetSite("shell")))
using (new SecurityDisabler()){
    // TODO: Item Editing...
}


// 删除 Item,这个没啥好说的
newItem.Delete();
newItem.DeleteChildren();

Sitecore 提供的 Fields 和 Utils

Sitecore.Fields

  1. FieldIDs
  2. ItemIDs
  3. TemplateIDs
  4. RenderingIDs
  5. DeviceFieldIDs
  6. LayoutFieldIDs
  7. TemplateSectionFieldIDs
  8. WorkflowFieldIDs
  9. UserFieldIDs
  10. TemplateFieldIDs
  11. ShellFieldIDs
  12. SecurityDatabaseTemplateIDs
  13. ScheduleFieldIDs
  14. RuleIds
  15. RoleFieldIDs
  16. RibbonButtonIDs
  17. PublishingTargetFieldIDs
  18. PackageRegistrationFieldIDs
  19. ItemBucketIDs
  20. PackageRegistrationFieldIDs
  21. FieldButtonIDs
  22. UsedBlobIdsPagedListProviderFacade
  23. UsedBlobIdsPagedListProvider
  24. PagedBlobIdsResult
  25. CommandsCommandFieldIDs
  26. CommandFieldIDs
  27. ArchivedItemFieldIDs
    image

Utils

  1. ItemUtil
  2. DateUtil
  3. MainUtil
  4. StringUtil
  5. LanguageUtil
  6. UIUtil
  7. XmlUtil
  8. XmlPatchUtils
  9. XmlDiffUtils
  10. WebUtil
  11. WebEditUtil
  12. GridUtil
  13. HtmlUtil
  14. CustomHandlerUtil
  15. GuidUtility
  16. EmailUtility
  17. FeedUtil
  18. DeviceSimulationUtil
  19. SecuritySerializationUtils
  20. SecurityUtility
  21. SecurityUtil
  22. ConditionsUtility
  23. HashingUtils
  24. TypeUtil
  25. ReflectionUtil
  26. StreamUtil
  27. IOUtils
  28. PackageUtils
  29. ItemKeyUtils
  30. PathUtils
  31. ZipUtil
  32. FileUtil
  33. DefaultZipUtil
  34. SqlUtil
  35. PathUtils
  36. SerializationUtils
  37. CommonUtils
  38. QueryUtil
  39. FieldUtil
    image

Managers

  1. ItemManager
  2. MediaManager
  3. LinkManager
  4. SiteManager
  5. TemplateManager
  6. LanguageManager
  7. LayoutManager
  8. Manager
  9. ModeManager
  10. XamlManager
  11. TicketManager
  12. RuleManager
  13. FeedManager
  14. CommandManager
  15. GutterManager
  16. GalleryManager
  17. LicenseManager
  18. DomainManager
  19. HttpAuthenticationManager
  20. AuthenticationManager
  21. UserManager
  22. RolesInRolesManager
  23. AuthorizationManager
  24. AccessRightManager
  25. MediaPathManager
  26. PreviewManager
  27. PresentationManager
  28. ControlManager
  29. JobManager
  30. HookManager
  31. ValidatorManager
  32. StandardValuesManager
  33. BaseItemSerializationManagerExtensions
  34. ThemeManager
  35. HistoryManager
  36. LanguageFallbackFieldValuesManager
  37. InternManager where T : class
  38. FieldTypeManager
  39. ArchiveManager
  40. PagePreviewManager
  41. AuthorizationManager
  42. ApplicationsManager
  43. ControlManager
    image
posted @ 2023-12-12 12:31  灵火  阅读(54)  评论(0)    收藏  举报