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

Tridion-在RTF中插入HTML(文本和部分元素),html,tridion,rtf,Html,Tridion,Rtf,我正在尝试在Tridion中创建一个GUI扩展,当单击按钮时,我会在RTF中插入一个特定的html。。。。我有工具栏按钮和弹出窗口来通知用户。但当我在弹出窗口中单击OK时,当我插入HTML“”时,它会插入“” 我发现applyHTML方法是修改插入的内容。是否有其他函数/方法插入我所指的内容,我指的是缺少关闭标记或打开标记的无效html?可能是在您说:,您是指。如果是这样,那么除非您可以直接控制XML整理,否则唯一剩下的方法(IMO)是确保div包含一些内容。最常用的方法是插入一个不间断的空格

我正在尝试在Tridion中创建一个GUI扩展,当单击按钮时,我会在RTF中插入一个特定的html。。。。我有工具栏按钮和弹出窗口来通知用户。但当我在弹出窗口中单击OK时,当我插入HTML“”时,它会插入“”


我发现applyHTML方法是修改插入的内容。是否有其他函数/方法插入我所指的内容,我指的是缺少关闭标记或打开标记的无效html?

可能是在您说:
,您是指
。如果是这样,那么除非您可以直接控制XML整理,否则唯一剩下的方法(IMO)是确保div包含一些内容。最常用的方法是插入一个不间断的空格

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

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

保留丰富的文本功能并遵循一些典型的三叉树实践,请考虑以下其中之一:

一次完成所有标记更改 假设您的最终标记将有一个打开的
和关闭的
,考虑让您的扩展包装一整套选定的富文本。在更新组件之前的过程中,允许作者选择“拆分”的位置并将整个更新保存到RTF

使用嵌入的模式和模板代码创建“拆分” 嵌入的模式字段是分割内容的一种更简单的方法。作者创建了一组新的嵌入字段,模板代码可以将其更改为选项卡、段落,或者在您的案例中可能是页面(分页?)

A,据我所知

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

这将在两组嵌入字段之间创建
。它还允许您将来在不更改扩展的情况下更改类和标记

插入非HTML的“合并字段” 请参阅我写的一篇文章中的选项,其中包括:

  • 内容管理器资源管理器中的CSS类,如
    class=“page split”
    。您甚至可以将其设置为特定的样式(例如,可视为

    ),然后将其模板化为最终标记中所需的任何内容
  • 合并字段占位符标记,例如“
    [[end page]][[start page]
  • 自定义HTML5节点,如果必须的话
您可以使用扩展插件插入其中任何一个,还可以选择将其样式设置为在CME中以某种方式显示

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


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

我不确定该功能是什么,但我认为不可能绕过HTML整理功能,因为内容必须是格式良好的XHTML。如果您能解释您试图实现的内容,也许可以实现更合适的解决方案。嘿,阿尔文,谢谢bunch man…你为我们节省了大量的研究和工作…你是对的,我们正在尝试完成分页。我就是这样做的…我在applyHTML中使用了占位符标记[PaginateHere]。然后做了一个getSource()。在返回的文本中,我用无效的HTML替换了标记。然后做了一个setSource()。再次感谢!很高兴听到你这么说。我喜欢你的“PaginateHere”选项(让我想起Blogger的
more
功能)。另一种选择是嵌入模式字段——主要是因为它现在是“页面”,但接下来可能是选项卡、可滑动区域或其他导航方式。作者会按开箱即用“+”按钮来分隔内容。无论哪种方式,您也可以将占位符保留在RTF中,并使用模板对其进行更改。