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

2015년 9월 29일 화요일

자바스크립트를 통하여 Item 업데이트 하기

#HowTo #Javascript #WebEdit

 Sitecore에서는 자바스크립트를 통하여 Sitecore.Client 또는 Sitecore.Kernel에 포함되어진 Class의 Method를 실행할 수 가 있다.

Sitecore Website폴더에서 /Website/App_Config/ 폴더를 보면 Command.config 파일이 있는데, 해당 파일을 열어보면 각각 커맨드에 해당되는 Assembly와 네임스페이스를 포함하고 있다. 해당 컨맨드 목록을 여기를 참고한다. https://github.com/udt1106/Sitecore-Item-Buckets/blob/master/Sitecore.ItemBucket.Tests/App_Config/Commands.config

먼저 내가 자주 사용하고 Command는 save, new, delete 등등이 있는데, 기본적인 사용법은:


1
2
3
<a href="#" onclick="javascript:Sitecore.PageModes.PageEditor.postRequest('webedit:save()')">Save current item</a>
<a href="#" onclick="javascript:Sitecore.PageModes.PageEditor.postRequest('webedit:delete()')">Delete current item</a>
<a href="#"  onclick="javascript:Sitecore.PageModes.PageEditor.postRequest('webedit:fieldeditor(command={11111111-1111-1111-1111-111111111111},fields=Field Name 1|Field Name 2,id={item-id-to-edit-with-braces})')">Edit Fields</a>

자바스크립트를 통하여 페이지 감지

#HowTo #DetectMode

 Sitecore에서는 자바스크립트를 통하여 Code-behind에서 선언할수있는 클래스의 method들을 실행할수가 있다. 기본적으로 code-behind에서 현재 페이지가 Page Editor인지 아니면 Preview mode인지 확인하는 방법은,


1
2
3
4
5
if (Sitecore.Context.PageMode.IsPageEditor) {
    // this is page page editor
} else if (Sitecore.Context.PageMode.IsPreview) {
    // this is preview
}


이것과 같은 방법으로 자바스크립트를 통하여 현재 페이지를 Detect할 수 가있다.


1
2
3
4
5
6
7
var isPageEditor = function(){
    return !!(Sitecore && Sitecore.PageModes && Sitecore.PageModes.PageEditor);
};

if(isPageEditor()) {
    // this is PageEditor
}