【问题标题】:How to use SiteEdit in DD4T in Tridion如何在 Tridion 的 DD4T 中使用 SiteEdit
【发布时间】:2012-06-04 08:26:42
【问题描述】:

谁能指导我如何在 DD4T 代码中使用 Razor 模板中的 SiteEdit 特定语法或标签?我已经在其中看到了与 Site Edit 相关的类,但无法理解如何在视图中使用 SiteEdit 标签,其中存在一些类似于 Dreamweaver 的语法,例如我们在 Dreamweaver 中使用的 RenderComponentFieldtcdl:ComponentField。我对 DD4T 非常陌生,正在使用 SiteEdit 2009 SP3 和 SDL Tridon 2011 SP1。

提前致谢。

更新:我们已经尝试了答案中提到的实现,但不幸的是,当我们在代理中访问页面时出现错误,指出“无效模板 - HTML 无效,可能是因为您的模板代码生成了无效的 HTML,例如另一个 p 标记内的 ap 标记。使用验证器(例如 W3C 标记验证服务)检查您的 HTML,更正您的模板,然后重新发布。” 我猜这是因为我们在组件和页面模板中使用了动态页面和组件 TBB,因此 Xml 内容被推送到 html 页面中。

让我们知道如何继续前进。

【问题讨论】:

  • 社区正准备为 Tridion 建立一个专门的 Stack Exchange Q 和 A 站点 - 如果您考虑提交,我们将不胜感激您的帮助? area51.stackexchange.com/proposals/38335/…
  • 嗨@L K。我只是注意到这个问题仍然悬而未决。以下任何答案是否有助于您解决问题?如果是这样,您是否可以通过单击左侧的大复选标记来接受该答案?

标签: tridion tridion-2011 dd4t


【解决方案1】:

SiteEdit 标记不会像在 Dreamweaver 模板中那样生成,您自己负责将可编辑字段的标记放置在 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 或其他可以标记组件表示边界的元素中。对于 Component Fields 类似的故事,您可以使用:

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

【讨论】:

  • 感谢 Bart 会带着更多疑问回来 :)
【解决方案2】:

除了对视图的更改,正如 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>

您必须在此处列出所有活跃的出版物。 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>

【讨论】:

  • 感谢 Quirijn 提供更多信息
猜你喜欢
  • 2012-06-06
  • 2012-09-22
  • 2012-11-15
  • 2012-12-21
  • 2012-07-22
  • 2012-10-13
  • 1970-01-01
  • 2013-01-19
  • 2012-06-21
相关资源
最近更新 更多