我想添加链接标签以将我的网站重定向到我的 OpenID 提供商。这些标签应该放在 head 元素中。在 Plone 中添加它们的最佳方法是什么?
我知道填充 head_slot 是一种方法,但这只能在您向页面添加模板并且正在呈现该模板时发生。就我而言,我没有添加任何模板。我应该修改哪个模板(不是 main_template.pt,这是我目前的解决方案,它有很大的缺点)。
您需要填写head_slot
定义的main_template.pt
在您的基本克隆模板中,添加以下内容:
<head>
<metal:block metal:fill-slot="head_slot">
<link rel="openid.server" href="http://your.provider">
<link rel="openid.delegate" href="http://your.url">
</metal:block>
</head>
最后,您必须将它们直接放在 main_template 中,或者必须将它们插入到 mail_template 中的插槽之一中。
我将它们放在样式槽中,紧挨着其余的 css/javascript 链接:
<metal:myopenid fill-slot="style_slot">
<link rel="openid.server" href="http://www.myopenid.com/server" />
<link rel="openid.delegate" href="http://reinout.myopenid.com/" />
</metal:myopenid>
您必须将其放在某个模板中。我把它放在一个单独的 homepage.pt 中,因为我正在自定义主页。这会将 openid 标头放在主页上。如果您不想要自定义模板,您可以自定义 document_view 模板(假设您的主页是一个文档)并将上面的代码片段输入其中。
如果 plone 本身有一个选项,那将是最好的,类似于“在此处添加用于统计的 javascript”选项。
我无法理解如何在没有产品或任何东西的情况下填补空缺。我知道您可以从模板中填充插槽,但如果 Plone 没有选择该模板,则填充代码将永远不会运行。我最终修改了 main_template 并将我的代码直接放在 . 这很糟糕,因为不同的皮肤会有不同的 main_templates 并且确实它咬了我,因为当我使用另一个模板时,我已经为一个模板修改了它。这不是一种无害的体验,而是一个令人讨厌的问题,因为 main_template 在自定义中并且它被拾取,所以你有一个皮肤与另一个皮肤的 main_template 一起工作。最终结果:用户界面因难以发现的问题而损坏。
这是我添加的代码:
<head>
...
<link rel="openid.server" href="http://www.myopenid.com/server" />
<link rel="openid.delegate" href="http://pupeno.myopenid.com/" />
<link rel="openid2.local_id" href="http://pupeno.myopenid.com" />
<link rel="openid2.provider" href="http://www.myopenid.com/server" />
<meta http-equiv="X-XRDS-Location" content="http://www.myopenid.com/xrds?username=pupeno.myopenid.com" />
</head>
我可能会将此答案标记为已接受,因为这是我目前正在使用的(这是我的政策,我将最终使用的解决方案标记为已接受,没有其他问题被标记为已接受),但如果任何其他问题在如何注入这个新模板,我将使用它并恢复接受(如果 StackOverflow 允许的话)。
可以在此处找到有关支持 OpenID 的 Plone 文档。
http://plone.org/documentation/how-to/openid-support/view?searchterm=openid
希望这可以帮助。