我们可以替换SiteEdit 2012中的<add text>标签(在Tridion 2011上)吗?

MDa*_*MDa 11 tridion siteedit

现在我一直在实施用户界面2012,经过一些障碍后,它运行得很好.我一直在寻求优化任何UI可编辑字段的可用性,并遇到相关的挑战.

在一个组件中,有几个非强制字段,因此当它们为空时不应显示.一旦编辑器进入UI并选择包含所述字段的组件<add text>,就会<add internal link to component media>出现几个标签,如和.

我希望将这些标签更改为更能描述其内容的内容,因为当字段不为空时,将在页面中添加其他html.

例如(使用Razor Mediator):

@if(Component.Fields.location != null) {
  <span class="row">
    <strong>Where:</strong>
    <span>@RenderComponentField("location", 0)</span>
  </span>
} else {
  <tcdl:ComponentField name="location"></tcdl:ComponentField>
}
Run Code Online (Sandbox Code Playgroud)

当位置字段为空时,它只是说<add text>.我想改变它<Add location to event>.

我已经尝试在tcdl-tags之间放置一些东西,但即使在UI2012中没有编辑它们也会显示.我一直在搜索SDL Live内容网站,但我找不到任何参考.有人有想法吗?

Ram*_*m G 2

当我检查这个时,我也在寻找同样的东西,但我认为这并不容易做到。我深入了解了一下,发现标签是资源文件的一部分Tridion.Web.UI.Editors.SiteEdit.Strings.resx EmptyTextField。我没有选择摆弄这个,因为它不是受支持的方式,也没有记录在案,而且最重要的是,我仍然没有为每个字段添加自己的文本的灵活性。

回到你的问题,我正在折腾一个想法(不一定回答你的问题)并想在这里分享,以便专家可以提供一些有价值的建议。我没有尝试这个选项(我觉得工作量太大),这在我很长的待办事项列表中,并且可能也有一些缺点。

  • 创建具有“默认值”的架构字段(例如“将位置添加到事件”)。默认文本将显示在您的 UI 中。

  • 如果架构字段值与默认值相同,则编写模板

@@if(Component.Fields.location.value == [Compare the schema field definition - default value of the field]) { 
    //--> Note: I could not find a straight API for this.. but I am assuming it should be there.
    @RenderComponentField("location", 0)
} else {
    <span class="row">
        <strong>Where:</strong>
        <span>@RenderComponentField("location", 0)</span>
    </span>
}
Run Code Online (Sandbox Code Playgroud)
  • 根据启用的目标类型 UI 执行上述条件检查,因为我们不想显示实时目标等的默认文本。

另外,将 Tridion Idea 作为增强请求发布也很棒。如果还没有的话,我会在接下来的几天内完成。