首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Tridion中使用DD4T中的SiteEdit

如何在Tridion中使用DD4T中的SiteEdit
EN

Stack Overflow用户
提问于 2012-05-30 13:45:05
回答 2查看 1.3K关注 0票数 9

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

提前谢谢。

更新:我们已经尝试了答案中提到的实现,但不幸的是,当我们在proxy中访问页面时,我们得到了一个错误消息:"Invalid template -The HTML is invalid,很可能是因为您的模板代码生成了无效的HTML.使用W3C标记验证服务等验证器检查您的HTML.更正您的模板,然后重新发布.“我猜这是因为由于使用了我们在组件和页面模板中使用的Dynamic page和Component TBB,Xml内容被推到了html页面中。

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

EN

回答 2

Stack Overflow用户

发布于 2012-05-30 16:17:12

SiteEdit标记不像在Dreamweaver模板中那样生成,您自己负责将可编辑字段的标记放置在Razor视图中。好消息是,它适用于SiteEdit 2009 SP3和UI2012。UI2012的缺点是它没有监听(目前)可以在组件或页面模板上设置的Enable Inline Editing (我们应该在未来的DD4T版本中考虑这一点)。

一切都基于DD4T SiteEditHelper类。在页面视图中(在</body>标记之前),通过执行以下调用开始:

代码语言:javascript
复制
@Html.SiteEditPage(Model)

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

然后,对于每个组件表示和每个可编辑的组件字段,您还需要添加适当的标记。对于组件演示,您可以使用:

代码语言:javascript
复制
@{var ComponentPresentation = ViewBag.ComponentPresentation as IComponentPresentation;}
<div>
  @Html.SiteEditComponentPresentation(ComponentPresentation)
</div>

请确保将其写在DIV或其他可以标记组件表示边界的元素中。对于类似的组件字段,您可以使用:

代码语言:javascript
复制
<div>
  @Html.SiteEditField(Model, Model.Fields["FieldName"])
  @Model.Fields["FieldName"].Value
</div>
票数 13
EN

Stack Overflow用户

发布于 2012-05-31 17:23:49

除了对视图的更改之外,正如Bart所描述的那样,您还需要在web应用程序的根目录中放置一个名为SiteEdit_config.xml的配置文件。它应该看起来像这样:

代码语言:javascript
复制
<?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:新组件和新页面(不用于Tridion UI 2012)
  • publishPublication:页面和组件将从此上下文重新发布(通常与id重合)

还可以轻松配置DD4T,以便与Tridion UI 2012配合使用。只需更改配置中的第一个元素,如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<siteEdit enabled="true" style="SiteEdit2012" tridionHostUrl="http://tridion.my.com">
...
</siteEdit>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10810587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档