몇 달 전 우리는 조용한 비슷한 문제가있었습니다. 우리는 UGC를 구하기위한 작업을했습니다.
이 문제에 대한 우리의 솔루션은 Sitecore 사용자 지정 이벤트를 사용하는 것이 었습니다. 이 로컬 큐 경우 기본적으로 우리는 사용자가 생성 된 데이터를 수집하고, 이벤트 전역 대기 경우 첫번째 인수가 판정하는 이벤트
CommentsRemoteSavingEvent eventmodel = new CommentsRemoteSavingEvent(commentModel);
EventManager.QueueEvent(eventModel, true, false);
를 전용 모델을 생성하고 큐, 두번째 결정한다. 이벤트 모델은 모든 필수 정보를 저장하는 사용자 지정 클래스입니다. 형상 관리 시스템 우리에
은 이제 구독 후크를 만들어야했습니다에 논문이 코드 줄은 CommentsRemoteSavingEvent에 가입
public class CommentsRemoteSavingEventHook : IHook
{
public void Initialize()
{
EventManager.Subscribe(new Action<CommentsRemoteSavingEvent>(CommentsRemoteSavingHandler.Run));
}
}
에서, EVENTTYPE는 형상 관리 시스템에 발사와 특정을 할 수
사용자 정의 이벤트 이벤트가 dequeued 될 때 처리기가 실행됩니다.
훅 자체
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<hooks>
<hook type="YOURNAMESPACE.CommentsRemoteSavingEventHook, YOURDLL" />
</hooks>
</sitecore>
</configuration>`enter code here`
핸들러 자체 코드의 첫 번째 행으로부터 안전하게 이벤트를 제거이
public class CommentsRemoteSavingHandler
{
/// <summary>
/// This method is used handle the dequeued event
/// </summary>
/// <param name="e">The event</param>
public static void Run(CommentsRemoteSavingEvent e)
{
EventManager.RemoveQueuedEvents(new EventQueueQuery() { EventType = typeof(CommentsRemoteSavingEvent) });
//// Use the CommentsRemoteSavingEvent which holds now all data
}
같이 구현 될 수있는 간단한 구성을 통해 고리에 첨가 될 수있다 이벤트 대기열, 그래서 그것은 다시 대기열을 떼지 않을 것이다.
매개 변수로 주어진 CommentsRemoteSavingEvent에서 이제 CD쪽에 넣은 모든 정보가 이제는 CM쪽에 있습니다.
이러한 논문 정보를 기반으로 사용자 생성 주석과 마찬가지로 CM 시스템에 직접 있기 때문에 간단하게 항목을 만들고 게시 할 수 있습니다.
이 정보가 CD에서 CM로 데이터를 전송하고 CM 시스템에서 처리하는 데 도움이되기를 바랍니다.
Ok 어떻게 마스터 DB에 액세스 할 수 있습니까? 예를 들어 제 경우에는 사용자 생성 콘텐츠가 있습니다. 사용자가 웹 사이트에 입력 한 콘텐츠는 어떻게 게시합니까? –
내 대답에서 첫 번째 링크를 확인하십시오. "sitecore 사용자 생성 콘텐츠"에 대한 Google 검색입니다. 세부 사항에서 모두 설명 된 많은 다른 접근 방식이 있습니다. –