2016-10-16 10 views

答えて

3

できません。そしてそれ以上のことは、あなたも試してはいけません。このサーバーはContent Deliveryサーバーと呼ばれ、その唯一の目的はコンテンツの配信です。また、Sitecore masterデータベースには、公開されていないコンテンツが格納されており、エンドユーザーに配信するべきではありません。

私は推測していますが、推測しているところですが、ユーザが生成したコンテンツをmasterデータベースに保存して、ある時点でエンドユーザーに公開したいとします。それが必要な場合は、Sitecore User Generated Contentに関するすべての記事をチェックしてください。

masterデータベースにアイテムを作成するためにSitecore Web APIを使用していることが他の質問でわかりました。 Publishing items using Sitecore Web APIについて考えることもできます。

+0

私はコンテンツをどのように公開するのですか?例えば、私の場合、ユーザーが生成したコンテンツがあります。ユーザーがウェブサイトに入力したコンテンツをどのように公開するのですか? –

+0

私の答えから最初のリンクを確認してください - それは "sitecoreユーザー生成コンテンツ"のgoogle検索です。すべての異なるアプローチが詳細に説明されています。 –

2

数ヶ月前に私たちは静かな同様の問題を抱えていました。私たちは、UGCを救うための仕事を、ケース・コメントで行った。

問題の解決方法は、Sitecoreカスタムイベントを使用することでした。イベントをグローバルにキューに入っている場合 は基本的に、我々は、ユーザによって生成されたデータを収集し、専用のモデルを作成し、イベント

CommentsRemoteSavingEvent eventmodel = new CommentsRemoteSavingEvent(commentModel); 

EventManager.QueueEvent(eventModel, true, false); 

をキュー最初の引数が決定し、それがローカルにキューに入っている場合、もう一つは決定されます。イベントモデルは、すべての必要な情報を格納するためのカスタムクラスです。

に論文カスタムイベント

購読我々は今だけフックを作成する必要がありましたCMシステム・オン

public class CommentsRemoteSavingEventHook : IHook 
{ 
    public void Initialize() 
    { 
     EventManager.Subscribe(new Action<CommentsRemoteSavingEvent>(CommentsRemoteSavingHandler.Run)); 
    } 
} 

このコード行はCommentsRemoteSavingEventに加入して、EVENTTYPEは、CMシステムに発砲し、特定をすることができますイベントがデキューされるとハンドラが実行されます。

フック自体がフックに追加することができ、簡単な設定

<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 
    } 

ように実装することができますイベントキューは、再びデキューされません。

Commentsであなたに与えられたCommentsRemoteSavingEventは、あなたがCD側に入れたすべての情報ですが、今CM側です。

これらの情報に基づいて、ユーザーが作成したコメントと同様に、CMシステムに直接アクセスできるため、これらの情報に基づいてアイテムを簡単に作成して公開することができます。

これは、CDからCMへデータを転送し、CMシステムで処理する際に役立つことを願っています。

0

私はタスクを実行する3つの関数しか必要ないので、実際にはSitecore Item Web APIを使用していませんでした。私自身のコントローラを作成し、そこにメソッドを追加しました。私はCM環境からそれらを公開し、CDサーバーから私はCM URLを使ってそれらにアクセスしていました:

example : http://cmsitecore/yourcontroller/yourmethod 
関連する問題