2012-05-30 9 views
8

DD4TコードのRazorテンプレートでSiteEdit固有の構文またはタグを使用する方法を教えてもらえますか? Site Edit関連のクラスを見たことがありますが、Dreamweaverで使用されているDreamweaverに似た構文(例:RenderComponentFieldまたはtcdl:ComponentField)があるビューでSiteEditタグを使用する方法を理解できませんでした。私はDD4Tの新機能で、SiteEdit 2009 SP3とSDL Tridon 2011 SP1を使用しています。TridionのDD4TでSiteEditを使用する方法

ありがとうございます。

更新:回答に記載されている実装を試しましたが、残念ながら「無効なテンプレート - テンプレートコードが無効なHTMLを生成するなどの理由で無効です」というプロキシのページにアクセスしているときにエラーが発生します別のpタグの中のapタグとして.W3C Markup Validation Serviceなどのバリデータを使用してHTMLをチェックし、テンプレートを修正して、再発行してください。 これは、コンポーネントとページテンプレートで使用した動的ページとコンポーネントTBBを使用しているため、XMLコンテンツがHTMLページにプッシュされているためです。

さらに進めてください。

+0

コミュニティは、Tridion専用のStack Exchange QとAサイトを設定しようとしています。コミットを検討すると助けになるでしょうか? http://area51.stackexchange.com/proposals/38335/tridion?referrer=7XNO_dQBJoWNn9xqeeO2NA2 –

+0

こんにちは@L K。私はちょうどこの質問がまだ開いていることに気づいた。以下の回答のいずれかを使用して問題を解決するのに役立ちましたか?もしそうなら、あなたはそれの左側にある大きなチェックマークをクリックして答えを受け入れることができますか? –

答えて

13

Dreamweaverテンプレートで行われたようにSiteEditマークアップが生成されないため、編集可能なフィールドのマークアップをRazorビューに配置する責任があります。良いことは、SiteEdit 2009 SP3とUI 2012で同様に機能することです.UI 2012の欠点は、コンポーネントやページテンプレートで設定できるインライン編集を有効にしていることです。将来のDD4Tバージョンを考慮してください)。

すべては、DD4T SiteEditHelperクラスに基づいています。あなたは、次の呼び出しを配置することによって、(</body>タグの前)、ページビューで起動します。

@Html.SiteEditPage(Model) 

これは、ページのマークアップを書き出すと、あなたのSiteEdit_config.xmlにスタイルに「SiteEdit2012」に設定している場合しますUI 2012に必要なブートストラップスクリプトも書き出します。

各コンポーネントプレゼンテーションと編集可能なコンポーネントフィールドごとに、適切なマークアップも追加する必要があります。あなたが使用できるコンポーネントのプレゼンテーションのために:

@{var ComponentPresentation = ViewBag.ComponentPresentation as IComponentPresentation;} 
<div> 
    @Html.SiteEditComponentPresentation(ComponentPresentation) 
</div> 

あなたがDIVたり、コンポーネントのプレゼンテーションの境界をマークすることができますいくつかの他の要素内にこれを書き出すことを確認してください。コンポーネントフィールド似たような話については、使用することができます:あなたのビューへの変更は別に

<div> 
    @Html.SiteEditField(Model, Model.Fields["FieldName"]) 
    @Model.Fields["FieldName"].Value 
</div> 
+0

ありがとうBartはもっと疑念を持って戻ってくるでしょう:) – Guestuser1122

5

を、バートは説明したように、あなたもSiteEdit_config呼ばれるWebアプリケーションのルートに設定ファイルを配置する必要があります。 xml。これは次のようになります。

<?xml version="1.0" encoding="utf-8" ?> 
<siteEdit enabled="true" tridionHostUrl="http://tridion.my.com"> 
    <contextPublications> 
    <contextPublication id="10" componentPublication="3" pagePublication="9" publishPublication="10" /> 
    <contextPublication id="11" componentPublication="3" pagePublication="9" publishPublication="11" /> 
    </contextPublications> 
</siteEdit> 

アクティブなパブリケーションはすべてここにリストする必要があります。 DD4Tは現在のページを( 'id'属性に基づいて)正しいコンテキストパブリケーションにマッチさせようとします。それが見つからない場合、SiteEditは無効になります。その他の属性を使用すると、SiteEditの動作を制御できます。

  • componentPublication:新しいコンポーネントは、ここで作成されます
  • pagePublication:ページおよびコンポーネントが(この文脈から再版される通常一致:新しいページが
  • publishPublication(TridionのUI 2012年に使用されていない)、ここで作成されます。 IDで)

DD4Tも簡単に次のようにするだけの構成の最初の要素を変更TridionのUI 2012で使用するように構成することができる。

<?xml version="1.0" encoding="utf-8" ?> 
<siteEdit enabled="true" style="SiteEdit2012" tridionHostUrl="http://tridion.my.com"> 
... 
</siteEdit> 
+0

ありがとうQuirijn – Guestuser1122