레이블이 item인 게시물을 표시합니다. 모든 게시물 표시
레이블이 item인 게시물을 표시합니다. 모든 게시물 표시

2015년 7월 28일 화요일

템플릿 필드 업데이트 ItemEditing

#HowTo #Template

 사이트코어를 사용하다 보면은 프로그램상으로 해당 페이지 또는 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(); 

2015년 4월 7일 화요일

Sitecore 아이템 정보 가져오기 (Code)

#FYI #ItemInformation

 해당 코드들은 새로운 프로젝트에서 sublayout을 만들때 유용하다.
Sitecore class를 쓰기위해서는 반드는 Sitecore.Kernel.dll 레퍼런스를 프로젝트에 추가하여야 한다.


현재 page editor (xEditor)에서 선택되어진 아이템의 정보 가져오기:

Sitecore.Data.Items.Item contextItem = Sitecore.Context.Item;


선택되어진 아이뎀 정보 가져오기:
만약 해당 아이템이 존재하지 않던지, 또는 현재 유저가 선택되어진 아이템에 접근 권한이 없을시에는 Null값 또는 throw exception이 리턴된다.

Sitecore Content Item Class: Sitecore.Data.Items.Item
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item myItem = master.GetItem("/sitecore/content/Home/myItem");


템플릿 아이템 정보 가져오기:
­
Sitecore Template Item Class: Sitecore.Data.Items.TemplateItem 

// 템플릿 폴더 정보 가져옴
Sitecore.Data.Items.TemplateItem item = master.GetTemplate(Sitecore.TemplateIDs.Folder);


시스템 아이템 정보 가져오기:

Sitecore Item Class: Sitecore.Data.Items.Item 

// 레이아웃 정보가져옴
Sitecore.Data.Items.Item layoutsItem = master.GetItem(Sitecore.ItemIDs.Layouts);


미디어 아이템 정보 가져오기:
­
Sitecore Media Item Class: Sitecore.Data.Items.MediaItem 

// 선택되어진 경로의 미디어 파일정보 가져오기
Sitecore.Data.Items.Item myItem = master.GetItem("/sitecore/content/Media Library/Images/Logo.png");