9

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

前もって感謝します。

更新: 回答に記載されている実装を試しましたが、残念ながら、プロキシでページにアクセスすると、「無効なテンプレート - HTML が無効です。おそらく、テンプレート コードが内部の ap タグなどの無効な HTML を生成するためです」というエラーが表示されます。別の p タグ。W3C マークアップ検証サービスなどの検証ツールを使用して HTML をチェックし、テンプレートを修正して、再公開してください。」これは、コンポーネントおよびページ テンプレートで使用した動的ページおよびコンポーネント TBB の使用により、Xml コンテンツが html ページにプッシュされているためだと思います。

さらに続ける方法を教えてください。

4

2 に答える 2

13

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

SiteEditHelperすべてが DD4Tクラスに基づいています。</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>
于 2012-05-30T08:17:11.797 に答える
5

Bart が説明したように、ビューの変更とは別に、SiteEdit_config.xml という名前の構成ファイルを Web アプリケーションのルートに配置する必要もあります。次のようになります。

<?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: 新しいページがここに作成されます (Tridion UI 2012 では使用されません)
  • publishPublication: ページとコンポーネントはこのコンテキストから再公開されます (通常は ID と一致します)

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

<?xml version="1.0" encoding="utf-8" ?>
<siteEdit enabled="true" style="SiteEdit2012" tridionHostUrl="http://tridion.my.com">
...
</siteEdit>
于 2012-05-31T09:23:49.287 に答える