2016년 6월 8일 수요일

EXM - 새로 추가되어진 리스트의 잠겨진 상태

#Sitecore #사이트코어 #EXM

Sitecore에서 EXM (Email Experience Manager)를 통하여 이메일 캠페인을 만들수가 있다. EXM를 설치 후, 새로운 컨택트 리스트를 추가하다보면 아래처럼 "현재 리스트가 잠겨져있어, 모든정보가 업데이트될때까지 현재 리스트를 사용할수 없습니다." 라고 메세지가 나온다. 현재 추가된 리스트를 보면 "Status"란에 "Building"이라는 상태를 볼수있는데, 이것은 Sitecore가 새로운 리스트를 데이타베이스에 만들고 있다는 것이고, 약 15분에서 30분 (시스템 및 네트워크에 따라 틀림) 기다리다보면, 자동적으로 "Building" 상태가 없어진것을 볼수가 있다.

Sitecore EXM - All lists are locked

- Sitecore 8.0에서 EXM 3.0버전으로 테스트함.

Hyperlink Manager의 URL경로 가져오기

#사이트코어 #RichTextEditor #Telerik

RichText 에디터를 사용하다보면, Telerik을 통하여 Hyperlink를 설정할수가 있다. 이 경우, 해당 URL 필드에 미디어 파일을 선택할수가 있는데, 미디어를 선택하고 나면, 아이템의 Physical file경로가 아닌 "/~/media/[ShortID].ashx"로 변경된다. 물론, 이 세팅은 .config 파일에서 변경이 가능하지만, 시스템적으로 고유의 ID를 통하여 파일을 렌더링하는것이 더 효율적이다라고 할수있다.

GetMediaURI 과 GetItemURL 메서드를 이용하여, 파일의 경로를 찾아낼수있지만, 추가적으로 선택된어진 아이템의 "/~/media/" + item.ID.ToShortID() + ".ashx" 형식으로 정보를 가져와야하므로, 번거로움이 있다. 이럴경우, `MediaUrlOptions()`를 통하여 URL필드의 값을 쉽게 가져올수가 있다.


var mPath = new MediaUrlOptions();

// UseItemPath는 아이템을 경로를 통하여 나타낼것인지, 
// 아니면 아이디를 통하여 나타낼것인지 미리 설정을 할수가 있다.
mPath.UseItemPath = false;

var url = Sitecore.Resources.Media.MediaManager.GetMediaUrl(imageField.MediaItem, mPath);