Tridion - 在RTF中插入HTML(文字和部分元素)

时间:2013-01-02 08:53:56

标签: html tridion rtf

我正在尝试在Tridion中创建一个GUI扩展,我在单击按钮时将特定的html插入到RTF中....我有工具栏按钮并弹出以通知用户。但是,当我插入HTML“< / div>< div class ='Page'>”时,在弹出窗口中单击“确定”时,会插入“< div class ='Page'/>”。

我发现applyHTML方法是什么修改插入的内容。有没有其他功能/方法可以准确插入我指示的内容,我的意思是无效的html缺少结束标签或打开标签?

2 个答案:

答案 0 :(得分:6)

如果需要进行无效标记,请考虑使用纯文本字段。不确定这会改变您现有的扩展和内容模型的数量,但您可以在纯文本字段中输入任何内容,包括似乎是某种“拆分”或划分占位符。

</div><div class='Page'>

要保留富文本功能并遵循一些典型的Tridion实践,请考虑以下其中一项。

立即完成所有标记更改

假设您的最终标记将有一个开放<div>并关闭</div>,请考虑使您的扩展包装一整套选定的富文本。在此过程中以及更新组件之前,允许作者选择“拆分”的位置并将整个更新保存到RTF。

使用嵌入式架构和模板代码

创建“拆分”

嵌入式架构字段是拆分内容的一种更简单的方法。作者创建一组新的嵌入字段,模板代码可以将其更改为标签,段落或您的案例中可能是页面(分页?)的内容。

我理解为"Paragraph" embedded schema can handle this use case

<!-- TemplateBeginRepeat name="Component.Fields.Paragraph" -->
<div class='Page'>
<!-- author-entered content -->
</div>
<!-- TemplateEndRepeat -->

这将创建</div><div class='Page'>个中间嵌入字段集。它还允许您在将来更改类和标记而不进行扩展更改。

插入非HTML“合并字段”而不是

请参阅我撰写的关于custom tags in rich text fields的帖子的选项,其中包括:

  • Content Manager Explorer中的CSS类,例如class="page-split"。您甚至可以将其设置为以某种方式显示(例如,视觉上为<hr/>),然后将其模板化为最终标记中所需的任何内容。
  • 合并字段占位符标记,例如“[[end-page]][[start-page]
  • 自定义HTML5节点,如果必须

您可以使用扩展插入其中任何一个,可选择将它们设置为在CME中以某种方式显示。

我喜欢为作者提供在富文本字段中插入功能的更简单方法,但是将特定HTML(尤其是无效HTML)插入组件的问题在于将此功能硬编码到内容中。您将遇到迁移和设计更改的问题。

考虑利用Tridion如何将设计与内容分开。

答案 1 :(得分:0)

大概当你说:</div><div class='Page'>时,你的意思是<div class='Page'></div>。如果是这样,那么除非你可以直接控制XML整理,否则唯一剩下的方法(IMO)是确保div有一些内容。最常用的方法是插入一个不间断的空间。

<div class='Page'>&#160;</div>