在Plone中将标签添加到头部的最佳方法是什么?
我想添加链接标记以将我的网站重定向到我的OpenID提供程序。这些标签应放在head元素中。在Plone中添加它们的最佳方法是什么?
我知道填充head_slot是一种方法,但是只有在将模板添加到页面并且正在渲染该模板时,才会发生这种情况。就我而言,我没有添加任何模板。我应该修改哪个模板(不是main_template.pt,这是我当前的解决方案,但有很大的缺点)。
解决方案
可在此处找到有关支持OpenID的克隆文档。
http://plone.org/documentation/how-to/openid-support/view?searchterm=openid
希望这可以帮助。
我们需要填写在main_template.pt中定义的head_slot。
在基本的plone模板中,添加以下内容:
<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一起工作。最终结果:UI遇到难以解决的问题而破裂。
这是我添加的代码:
<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允许)。