사이트코어를 사용하다 보면은 프로그램상으로 해당 페이지 또는 Sublayout/Rendering component의 템플릿 필드 값을 업데이트 해야하는 경우가 있다.
Sitecore.Data.Items.ItemEditing
아래의 코드는:
- 아이템 저장
- 업데이트 아이템 정보 (수정날짜, 에디터 및 통계정보)
- 아이템 저장과 관련된 이벤트를 실행한다
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master"); Sitecore.Data.Items.Item path = master.GetItem("/sitecore/content/the/path/you/want/to/get"); //Begin Editing Sitecore Item path.Editing.BeginEdit(); try { path["fieldName"] = "This is updated value"; // This will commit the field value path.Editing.EndEdit(); } catch (Exception) { //Revert the Changes path.Editing.CancelEdit(); }
Sitecore.Data.Items.EditContext
아래의 코드는 윗 코드와 달리, 선택적으로 통계정보를 업데이트할수있으며, 또한 파라미터를 전달하는데 있어서 보안체크 또한 가능하다.
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master"); Sitecore.Data.Items.Item path = master.GetItem("/sitecore/content/the/path/you/want/to/get"); //Enable or disable statistics information bool updateStatistics = false; //Temporary enable or disable events bool silent = true; //Begin Editing Sitecore Item path.Editing.BeginEdit(); using (new EditContext(path, updateStatistics, silent)) { path["fieldName"] = "This is updated value"; } path.Editing.EndEdit();
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master"); Sitecore.Data.Items.Item path = master.GetItem("/sitecore/content/the/path/you/want/to/get"); // Disable security check path.Editing.BeginEdit(); using (new EditContext(path, SecurityCheck.Disable)) { path["fieldName"] = "This is updated value"; } path.Editing.EndEdit();