Créer des portlets
Note: Return to tutorial view.
Portlet qui affiche le contenu d'un document
- Créons d'abord le document que nous souhaitons afficher en mode portlet à la racine du site (il existe un moyen beaucoup plus aisé pour les autres pages du site).
Il suffit comme pour un document classique de cliquer sur le lien "ajouter au dossier" et de sélectionner l'élément "document" dans la liste.
Nous nommerons ce document "portlet_photo", "photo" étant la partie du nom qui peut changer selon notre souhait. Nous pourrions ainsi créer une document destiné à la page d'accueil qui s'appellerait "portlet_adresse" pour spécifier l'adresse de la maison communale, etc.
- Il faut maintenant créer une page template dans le dossier "/portal_skins/custom".
Pour ce faire, il faut sélectionner l'élément "Page Template" et cliquer sur le bouton "Add".
Nommez la Page Template: "portlet_document_view"
et insérez-y le code suivant:
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal"
i18n:domain="plone">
<body>
<div metal:define-macro="portlet" tal:omit-tag="">
<tal:block>
<dl class="portlet">
<dt class="portletHeader" tal:content="here/title_or_id">Title</dt>
<dd class="portletItem" tal:content="structure here/getText">Content</dd>
</dl>
</tal:block>
</div>
</body>
</html>
Cliquez ensuite sur "Save Changes" et le tour est joué.
Il reste à appeler le document "portlet_photo" en lui appliquant la vue "portlet_document_view"
dans les propriétés du slot de gauche ou de droite de la racine du site.
Donc, à la racine de la ZMI, cliquez sur l'onglet "Properties" et ajouter la ligne suivante comme valeur pour le "left_slots" ou le "right_slots":
portal/nom du document/nom de la template
soit
portal/portlet_photo/portlet_document_view
Finalement, le document doit être renommé pour ne pas afficher un titre "portlet_photo". Il faut bien sûr le renommer sans changer l'id.
Utiliser le produit seneffeportlets
here/portlet_content_portlets/macros/portlet
à la propriété "left_slots" des dossiers dans lesquels on souhaite utiliser l'outil (les dossiers "thèmes" par exemple).

Pour créer un portlet, on clique sur ajout d'un élément et on sélectionne "Portlet"

Si l'on coche "Portlet local", le portlet ne s'affichera pas dans les sous-dossiers.
Par contre, si l'on crée un portlet dans un sous-dossier, ce dernier prendra le dessus sur celui qui aurait été créé dans le dossier "parent".
Portlet qui affiche le contenu d'un dossier automatique
/portal_skins/custom/
en ajoutant une Page Template
lui donnant un nom de type: portlet_lenomdemonportlet
et en y collant le code suivant:
Il faut maintenant créer un dossier automatique en reprenant le nom mentionné dans le code du portlet.
Créer des critères de recherche pour le dossier automatique.
et finalement
appeler le portlet dans les propriétés du site ou d'un dossier (right_slots , left_slots)
en y ajoutant la ligne
here/nomdemonportlet/macros/portlet
Remarque:
le code suivant repris plus haut:
<img src="#" alt="" tal:replace="structure here/event_icon.gif" />
permet l'affichage d'une image; dans ce cas ci l'icône event_icon.gif
Si l'on ne souhait pas afficher d'image, il suffit de commenter le code ou de le supprimer
Le code commenté =
<!-- <img src="#" alt="" tal:replace="structure here/event_icon.gif" / > -->
on peut aussi utiliser une autre image de plone qui se trouve dans le dossier /portal_skins/plone_images
ou créer sa propre image et l'ajouter dans le dossier custom
Le graphisme du portlet peut aussi être adapté en css