Pour faire ça, il faut éditer le fichier template.php
du thème utilisé.[1]
Pour le premier cadre, intitulé Informations, j'ai choisi d'afficher les éléments suivants : date et heure de publication, auteur, catégorie à laquelle appartient le billet et la liste des mots-clés associés. Pour n'afficher ce cadre uniquement dans le cadre de la visualisation d'un billet en entier, il suffit de tester la variable $mode
de la manière suivante :
<?php if ($mode == 'post') : ?> <!-- nous sommes dans le cas ou le billet est affiché en entier -->
Ensuite, pour mettre en place l'affichage des informations associées au billet, j'ai inséré ceci :
<div id="postmetadata"> <h2>Informations</h2> <ul>
En premier, la date de publication :
<li><strong>Date de publication :</strong><br /> le <?php dcPostDate(); ?> à <?php dcPostTime(); ?></li>
Ensuite l'auteur :
<li><strong>Auteur :</strong><br /><?php dcPostAuthor(); ?></li>
Ensuite la catégorie :
<li><strong>Catégorie :</strong><br /> <a href="<?php dcPostCatURL(); ?>"><?php dcPostCatTitle(); ?></a></li>
Et enfin, comme j'utilise le plugin Tags, la liste des mots-clés :[2]
<!-- Franck Paul : ajout de la liste des mots-cles --> <li><strong>Mots-clés :</strong><br /> <div class="twtags"> <?php twTags::show(', ', true); ?></div> <!-- Franck Paul -->
Finalement je referme la liste et le cadre puis je ferme le bloc conditionnel (endif;
) :
</ul> </div> <?php endif; ?>
Pour le cadre actions, le principe est le même à la différence que certaines de ces actions ne seront affichées que si elles sont autorisées. On teste toujours avec la même condition :
<?php if ($mode == 'post') : ?> <!-- nous sommes dans le cas ou le billet est affiché en entier -->
Ensuite j'ouvre le cadre actions et je positionne son titre :
<div id="postaction"> <h2>Actions</h2> <ul>
Si les commentaires sont permis, à la fois pour le blog dans son ensemble et pour le billet en particulier, j'affiche un lien commenté permettant de se rendre directement au formulaire de saisie des commentaires :
<?php if (dcPostOpenComments() && dc_allow_comments) : /* Si les commentaires sont permis */?> <li>Pour rédiger un commentaire sur ce billet, rendez-vous <a href="#respond">ici</a>.</li> <?php endif; ?>
Puis, je fournis le lien vers le fil rss des commentaires de ce billet :
<li>Pour suivre le fil des commentaires de ce billet, abonnez-vous à ce <a href="<?php dcInfo('rss'); ?>?type=co&post=<?php dcPostID(); ?>" title="fil RSS des commentaires de : <?php dcPostTitle(); ?>">fil rss</a>.</li>
Ensuite, j'indique le lien permanent vers ce billet (appellé parfois permalien
) :
<li>Pour citer ce billet ailleurs, utilisez ce <a href="<?php dcPostURL(); ?>" title="Lien permanent vers : <?php dcPostTitle(); ?>">lien</a> [#<?php dcPostID(); ?>].</li>
Si les rétroliens (appellés aussi trackbacks
) sont permis, à la fois pour le blog dans son ensemble et pour le billet en particulier, j'affiche le lien permettant d'enregistrer un rétrolien sur ce billet :
<?php if (dcPostOpenTrackbacks() && dc_allow_trackbacks) : /* Si les trackbacks sont permis */ ?> <li>Pour faire un rétrolien chez vous sur ce billet, utilisez ce <a href="<?php dcPostTrackBackURI(); ?>">lien</a>.</li> <?php endif; ?>
J'ai installé le plugin PDF4DC qui permet d'enregistrer un billet au format PDF. J'indique donc ici le lien permettant cet enregistrement :
<!-- Franck Paul : ajout du lien pour l'enregistrement au format PDF --> <li>Pour pouvez <?php dcPdf::link('enregistrer'); ?> ce billet au format PDF.</li> <!-- Franck Paul -->
Enfin, je donne les liens vers le billet précédent et vers le billet suivant de cette manière :
<li>Vous pouvez aussi lire :<ul> <?php dcPostNext(-1,'<li><a href="%3$s" title="Billet précédent : %2$s"> Le billet précédent : %2$s</a></li>'); ?> <?php dcPostNext(1,'<li><a href="%3$s" title="Billet suivant : %2$s"> Le billet suivant : %2$s</a></li>'); ?></ul></li>
Finalement je referme la liste et le cadre puis je ferme le bloc conditionnel (endif;
) :
</ul> </div> <?php endif; ?>
Voilà, c'est tout. Je précise que tout ceci est inséré dans la sidebar
définie dans le fichier template.php
du thème.
Notes
[1] Si votre thème ne comporte pas de fichier template.php
, faites une copie de tout les fichiers .php
du thème default
dans le répertoire de votre thème, puis modifiez les fichiers copiés.
[2] Les ajouts que j'ai fait et qui dépendent de la présence d'un plugin particulier sont encadrés par deux lignes de commentaires du type <!-- Franck Paul -->
.
1 De Ingolmo -
Merci beaucoup, c'est intéréssant... :) m'enfin, je suis un peu bête, juste un test du mode... ^^
Je vais peut-être adapter mon blog pour cela... il faudra voir :D
2 De Franck -
Et on peut même imaginer de rajouter des infos (statistiques, …) et des liens (édition du billet, …) si une session d'administration est en cours. Le test à faire dans ce cas est :
3 De Groumphy -
Hello,
Sympa la description... Concernant le plugin PDF4DC, tu devrais mettre cette fonctionnalité plus en évidence... Je la trouve tellement sympathique.
G.
4 De Franck -
Je préfère pour ma part laisser tel quel. Après tout c'est une fonction sympatique mais pas plus que les fils rss par exemple, alors pourquoi la mettre particulièrement en avant ?
5 De Groumphy -
Hum ... Vu de ce fait là oui ;) Mais ce que je voulais surtout souligner c'est que cette nouvelle fonctionnalité (pour ma part du moins) n'a pas été facile à trouver sur le blog (j'ai du chercher au moins 40 secondes ;) ).
Quelque chose qui me parait sympathique pour un dev. futur, ce serait avoir une adaptation pour l'impression avec impression et à coté l'exportation au format PDF...
De fait l'un et l'autre pourrait être couplé sous forme d'icône spécifique :)
Enfin, c'était une idée.
G.
6 De Franck -
Pour l'impression, c'est prévu, j'ai une feuille de style spéciale à adapter. C'était une fonctionnalité présente avec l'ancien thème que je n'ai pas encore reportée ici.
Je ne pense pas que j'ajouterai d'icône(s), par contre je verrai si je peux trouver un moyen de rendre ça plus lisible. De toute les manières, une ré-écriture du billet d'aide est dans les cartons !
7 De Groumphy -
Aaaah, je vois que toi aussi tu es... Hum, ... Légèrement débordé ! Un point de plus à la 'to-do-list' :) ...
D'un point de vue personnel cela avance (future version de blog) :) En espérant de même pour toi ! A défaut, dans mes moments libres (rares mais encore existant) n'hésite pas à me demander de l'aide...
Ce qui serait amusant, c'est que tu fasses toi aussi un 'changelog', une 'to-do-list', etc.
G.
8 De Franck -
Et bien c'est une sacré to-do list que tu as ! Heureusement que la mienne tient sur un post-it. Tiens d'ailleurs, où l'ai-je fourré ce post-it ?
Bon tant pis je vais ré-écrire les trois lignes qu'il y avait dessus :
Voili, voilà
9 De Groumphy -
Hum, ... Eh bien, tu me déçoit ! N'utilises-tu pas GanttProject pour retenir tout cela ?? ;) (A défaut, je te le conseille, excellent pour la planification et l'administration des tâches !).
Hum, mais comment que tu fais pour ne rien oublier ?
(Concernant la longueur de la 'to-do-list', c'est normal, j'suis encore plongé en plein dans le code, j'ai encore rien automatisé !)
10 De TiBen -
Tu pourrais décrire un peu plus les possibilités dans ce sens? ça m'interesse bien ce genre de choses, et j'avoue que le code php ne me vient décidément pas facilement..
11 De Franck -
Je ferais un petit billet la dessus demain (je pense) …
12 De TiBen -
merci de ta réactivité, ça me laisse juste le temps d'intégrer déjà cette partie, et ensuite de faire un cadre admin :D pendant que j'y suis, une petite question à propos des commentaires, as tu un lien dans le mail d'alerte qui te permet de valider directement le commentaire? merci
13 De Romuald -
Je reviens mettre de l'huile sur le feu, car en fait je me demandais comment pas exemple, en suivant ton exemple, afficher des infos supplémentaires dans la sidebar, en mode post, mais en supprimant par exemple la liste des catégories, archives, etc. Quels sont les autres "modes" à exploiter ?
14 De Franck -
Ici je me suis limité à faire la distinction entre le mode post et le reste. Dans le cas du mode post j'affiche quelques infos et actions possibles pour le billet affiché, et par contre j'enlève la liste de liens (blogroll) et la liste des billets sélectionnés afin de ne pas trop alourdir la sidebar.
Par exemple, pour enlever la liste de liens, il suffit, dans le fichier
template.php
d'encadrer le code d'affichage de la liste par :Les autres modes possibles sont :
Plus les modes spéciaux mis en place par certains plugins comme la table des matières (mode toc) ou le plugin galerie.
15 De Romuald -
Ah ben c'est génial, merci beaucoup
16 De Jo -
Bonjour, Je travail sur un blog ou j'ai mis mon menu en statique. J'affiche les rollovers et les images actives selon les catégories affichées. J'ai cependant un problème, je n'arrive pas à "activer" la catégorie de mon menu lorsque je suis sur un billet. Pouvez vous m'aider? Merci, Jo
17 De Franck -
À mon avis ça relève plus d'un traitement PHP fait au moment de la construction de la page dans le fichier
template.php
. Votre soucis s'apparente assez à ce qu'on peut faire avec le menu du thème freshy que j'ai porté pour DotClear. J'en parle dans ce billet et dans celui-ci.18 De Sou. -
Merci Franck, j'ai mis en place ce système de mise en page sur mon site et ton aide a été encore une fois précieuse. Merci encore.
19 De Franck -
Zizir ;-)