我想知道是否有人想出了一个很好的脚注解决方案。 我想在一个包含多个组件的页面上在Tridion中实现脚注,我希望所有脚注都显示在页面底部,并在内容部分中显示正确的脚注编号。
http://i.stack.imgur.com/dAxeh.png
“orem ipsum dolor sit amet,consectetur * 1 * adipiscing elit.Vivamus blandit,ligula pharetra laoreet porta,nibh augue * 2 * fringilla tellus,et aliquet quam lacus mattis risus.Praesent rutrum,leo eu ornare sagittis,tellus ante blandit arcu。“
1个脚注信息
例如,用户将创建包含内容的组件,该组件将具有指向脚注组件的组件链接,并且在发布时它应收集所有脚注和呈现。它应该匹配内容本身的数字。
谢谢
答案 0 :(得分:4)
一个选项可能是使用支持锚tridion:anchor
链接的链接,也可以从Tridion RTF获得OOTB锚链接。
有关锚链接的文档:
http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/idheading-359728360
其他选项,可能是编写自定义TBB,在您页面的末尾处理并生成锚标记。如果你有动态CT,这种方法可能效果不好,因为你可以独立发布它们。
答案 1 :(得分:3)
如果您能够依赖JavaScript,那么这可能是解决此问题的最直接方法。您可以简单地在隐藏元素中“在线”发布脚注,并在浏览器中组合所需的输出。
如果你想在Tridion中这样做,我建议你的页面模板可能首先正常渲染组件表示,然后使用“脚注”组件模板再次渲染相关组件。最难的部分是使数字正确,但是你可以通过确保每个组件按照它们在页面中的顺序处理它们,然后使用上下文变量管理计数器来实现。
标准上下文变量技术在这种情况下不起作用,因为您依赖于一个组件渲染能够“通知”下一个组件的位置。 (当然,重复脚注的全部内容)。我写过a simple illustration of a technique to get round this over at Tridion Practice。这应该指明方向,但我想你的实现需要相当复杂。
编辑:我的回答是假设您的脚注数据与其引用的文本位于同一组件中,但在重新阅读您的问题时,我发现您有单独的组件。仍然 - 一些技术可能仍然适用。
答案 2 :(得分:2)
根据您的实施模型(静态/动态/混合),您还可以选择使用自定义控件在渲染时生成这些模型:
Lorem ipsum dolor sit amet, consectetur<dominic:FootNote>Footnote text goes here</dominic:FootNote> adipiscing elit.
Vivamus blandit, ligula pharetra laoreet porta, nibh augue<dominic:FootNote>Footnote text goes here</dominic:FootNote> fringilla tellus,
et aliquet quam lacus mattis risus. Praesent rutrum, leo eu ornare sagittis, tellus ante blandit arcu.
您将使用FootnoteContainer结束页面:
<dominic:FootNoteContainer />
FootNote控件会为自己指定一个自动增量编号并渲染为
<sup><a href="#footnotes">number</a></sup>
或者您希望作为脚注链接的演示形式。
然后容器会在页面上找到所有FootNote控件,并在列表中写出每个FootNote的内部文本:
<ul>
<li>number 1 footnote info</li>
<li>...</li>
</ul>
或类似的演示形式。
这种方法的优点在于它不会依赖于组件表示是静态的,它会大大简化您的模板化解决方案。显而易见的是,您牺牲了一些请求性能......