如何在Tridion中的DD4T中使用SiteEdit

Gue*_*122 8 tridion dd4t tridion-2011

任何人都可以指导我如何在DD4T代码中使用Razor模板中的SiteEdit特定语法或标签?我已经在其中看到了Site Edit相关的类,但是无法理解如何在视图中使用SiteEdit标签,其中有一些类似于Dreamweaver的语法RenderComponentFieldtcdl:ComponentField我们在Dreamweaver中使用的语法.我是DD4T的新手,我正在使用SiteEdit 2009 SP3和SDL Tridon 2011 SP1.

提前致谢.

更新:我们已经尝试了答案中提到的实现,但遗憾的是,当我们访问代理页面时出现"无效模板"时,我们收到错误 - HTML无效,可能是因为您的模板代码产生了无效的HTML,例如内部的ap标签使用W3C标记验证服务等验证程序检查HTML,更正模板并重新发布." 我想这是因为我们在组件和页面模板中使用了动态页面和组件TBB,因此Xml内容被推送到html页面.

让我们知道如何继续下去.

Bar*_*man 13

SiteEdit标记的生成方式与Dreamweaver模板中的标记不同,您自己负责在Razor视图中放置可编辑字段的标记.对此有用的是它适用于SiteEdit 2009 SP3和UI 2012的类似功能.UI 2012的下行是它还没有收听你可以在组件或页面模板上设置的启用内联编辑(我们应该做的事情)考虑未来的DD4T版本).

一切都基于DD4T SiteEditHelper类.您可以</body>通过以下调用从页面视图(标记之前)开始:

@Html.SiteEditPage(Model)
Run Code Online (Sandbox Code Playgroud)

这将写出页面标记,如果在SiteEdit_config.xml中将样式设置为"SiteEdit2012",它还将写出UI 2012所需的引导脚本.

然后,对于每个Component Presentation和每个可编辑的Component Field,您还需要添加适当的标记.对于Component演示文稿,您可以使用:

@{var ComponentPresentation = ViewBag.ComponentPresentation as IComponentPresentation;}
<div>
  @Html.SiteEditComponentPresentation(ComponentPresentation)
</div>
Run Code Online (Sandbox Code Playgroud)

确保在DIV或其他可以标记Component Presentation边界的元素中写出来.对于组件字段类似的故事,您可以使用:

<div>
  @Html.SiteEditField(Model, Model.Fields["FieldName"])
  @Model.Fields["FieldName"].Value
</div>
Run Code Online (Sandbox Code Playgroud)


Qui*_*ijn 5

除了对视图的更改之外,如Bart所述,您还需要将配置文件放在Web应用程序的根目录中,名为SiteEdit_config.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>
Run Code Online (Sandbox Code Playgroud)

您必须在此列出所有有效的出版物.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>
Run Code Online (Sandbox Code Playgroud)