Как лучше всего добавлять теги к голове в Plone?
Вопрос
Я хочу добавить теги ссылок для перенаправления моего веб-сайта к моему провайдеру OpenID.Эти теги должны находиться в элементе head.Как лучше всего добавить их в Plone?
Я понимаю, что заполнение head_slot — это способ сделать это, но это может произойти только тогда, когда вы добавляете шаблон на страницу и этот шаблон отображается.В моем случае я не добавляю шаблон.Какой шаблон мне следует изменить (это не main_template.pt, который является моим текущим решением с огромными недостатками).
Решение 3
Я не мог понять, как заполнить слот без товара или чего-то еще.Я понимаю, что слот можно заполнить по шаблону, но если 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 это позволяет).
Другие советы
Вам нужно заполнить head_slot
определено в main_template.pt
В базовый шаблон Plon добавьте следующее:
<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 (при условии, что ваша домашняя страница является документом) и ввести в него приведенный выше фрагмент кода.
Было бы лучше, если бы в самом Plon была опция для этого, похожая на опцию «добавить сюда javascript для статистики».
Документацию Plone по поддержке OpenID можно найти здесь.
http://plone.org/documentation/how-to/openid-support/view?searchterm=openid
Надеюсь это поможет.