2008-09-26 5 views
3

Je souhaite ajouter les tags de liens pour rediriger mon site vers mon fournisseur OpenID. Ces étiquettes devraient aller dans l'élément principal. Quelle est la meilleure façon de les ajouter à Plone? Je comprends que le remplissage de head_slot est une façon de le faire, mais cela ne peut se produire que lorsque vous ajoutez un modèle à la page et que ce modèle est rendu. Dans mon cas, je n'ajoute aucun modèle. Quel template dois-je modifier (ce n'est pas main_template.pt, qui est ma solution actuelle, avec ses énormes inconvénients).Quel est le meilleur moyen d'ajouter des tags à la tête dans Plone?

Répondre

0

Je ne pouvais pas comprendre comment remplir un emplacement sans produit ou quoi que ce soit. Je comprends que vous pouvez remplir un emplacement à partir d'un modèle, mais si Plone ne sélectionne pas ce modèle, le code de remplissage ne sera jamais exécuté. J'ai fini par modifier main_template et mettre mon code directement dans le. C'est mauvais parce que différents skins auront des main_templates différents et en effet cela m'a mordu parce que je l'ai modifié pour un modèle quand j'utilisais l'autre. Ce n'est pas une expérience inoffensive-rien-qui arrive mais un vilain problème parce que main_template est sur coutume et il est ramassé pour que vous ayez un skin travaillant avec le main_template de l'autre. Résultat final: l'interface utilisateur s'est brisée avec un problème difficile à trouver.

Voici le code I ajouté:

<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> 

Je marquerai sans doute cette réponse comme acceptée parce qu'elle est ce que je suis actuellement en utilisant (et c'est ma politique, je marque des solutions je finis à l'aide acceptée, rien d'autre n'est marqué comme accepté), mais si l'une des autres questions devient claire dans la façon d'injecter ce nouveau modèle, je vais l'utiliser et annuler l'acceptation (si StackOverflow le permet).

5

Vous devez remplir le head_slot défini dans main_template.pt

Dans votre modèle plone de base, ajouter ce qui suit:

<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> 
+0

Comment remplir le head_slot en personnalisant un template?(note: je n'écris pas un produit) – Pablo

+0

Si vous personnalisez un modèle TTW ou si vous le remplissez entièrement dans un système de fichiers, l'approche doit être la même: ajouter l'extrait de remplissage dans la section head de votre nouveau modèle. faire l'affaire. Je suppose que ça ne marche pas? – michaeljoseph

+0

Vous dites "votre modèle" mais je ne suis pas sûr de quel modèle est-ce. Je personnalise TTW, et je n'ai pas pu trouver d'autre moyen que de personnaliser main_template et d'ajouter l'en-tête directement. Quel autre modèle devrais-je personnaliser ou créer pour ajouter l'extrait ci-dessus et maigre main_template seul? – Pablo

1

En fin de compte, vous devez soit les placer directement dans le main_template ou vous avez pour les insérer dans l'un des emplacements du modèle mail_template.

Ce que je les met dans la fente de style, à côté du reste des css/javascript liens:

<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> 

Vous devez mettre cela dans un modèle quelque part. Je l'ai mis dans une homepage.pt séparée car je personnalisais la page d'accueil de toute façon. Cela met les en-têtes openid juste sur la page d'accueil. Si vous ne voulez pas de modèle personnalisé, vous pouvez personnaliser le modèle document_view (en supposant que votre page d'accueil soit un document) et entrer l'extrait de code ci-dessus.

Il serait préférable d'avoir une option pour cela dans plone lui-même, similaire à l'option "ajouter javascript pour les statistiques ici".

+0

Comment est-ce que homepage.pt est utilisé ou récupéré par Plone? – Pablo

+0

Dans Genericsetup, vous pouvez le définir comme vue disponible pour le PloneSite. Cela le rend sélectionnable dans le menu "affichage". Une alternative est d'imiter l'action du menu d'affichage et de faire quelque chose comme http://yoursite.com/selectViewTemplate?templateId=homepage. –

Questions connexes