我是一个用户,而不是程序员,他即将推出的Plone 4新网站需要在页面和文件夹的Description字段中添加超链接。这需要将特定单词指向我们的网站词典,就像过去10年我们在EZ Publish上所做的那样。
我们的开发人员说这不能在Plone中完成。我希望帮助他们找到如何做到这一点(他们似乎没有使用英语论坛)。
是否有现有的附加代码或现有代码?如果没有,是否可以对此进行编码?怎么样?如果没有,它会成为Plone 5的标准吗?
答案 0 :(得分:3)
<a href="http://python.org>Python</a>
将不起作用,因为description-field是ment并用作项目的元信息,仅保留纯文本,并且不允许使用html元素,也不允许使用的JavaScript。这可能是T. K. Nguyen建议提供额外的富文本字段的原因。
但您可以使用reStrucuredText代替。告诉开发人员将相关模板中的description-snippet交换为:
<div tal:define="Std modules/Products.PythonScripts/standard;
restructured_text nocall: Std/restructured_text;"
tal:content="structure python: restructured_text(context.Description())">
</div>
它会将以“http:”或“https:”开头的任何单词转换为链接,此外还会识别“someone@plone.org”等邮件地址,并将其转换为邮件链接(点击打开用户的默认邮件客户端(如果可用),其中地址预先填充在“收件人”字段中。
如果您想要命名链接,请使用reStrucutredText语法作为输入,如下所示:
`Check out Python`_, you'll love it.
`Write a mail`_ to someone.
.. _Python: http://www.python.org
.. _Write a mail: someone@example.org
棘手的部分是要弄清楚哪些模板会受到影响,但这是我的经验(在列表视图中保留换行符,而不是reStructuredText)。
或者使用由T. K. Nguyen提出的JS解决方法。但请注意,它可能会破坏某些用户的可访问性。
答案 1 :(得分:2)
可以将描述字段自定义为富文本(HTML)而不是纯文本,但它需要开发人员。
您还可以使用JavaScript查看描述字段并替换(例如)以&#34; http&#34;开头的任何字符串。带有指向该URL的超链接。您的开发人员必须查找此类JavaScript代码的示例,然后必须知道如何在您的站点上注册它然后调用它。
这描述了如何为PloneFormGen字段帮助文本(也是纯文本)做类似的事情:
让开发人员创建新的富文本描述字段并让所有内容类型都包含该新字段可能更容易。但是,这需要您更新这些已修改内容类型的视图模板。使用Plone 5附带的Dexterity可以更容易地使用它,并且可以与Plone 4.x一起使用。
答案 2 :(得分:2)
imho将描述字段转换为任何richttext
(html,rst,md)字段是一个非常糟糕的主意。您需要更改一堆模板以避免在任何地方呈现html代码。
示例:
该描述通常也用作链接上的title
属性,在这些情况下,您需要将其转换为纯文本/文本。还有几个问题,你可能会碰到。
作为@T。 Kim Nguyen写道:考虑添加一个新的文本字段并在必要时显示它,可能在下面的标题插槽中实现为Viewlet。