Sidebar adaptative

Un petit billet inspiré par une question d'Ingolmo dans son commentaire à propos de mon nouveau thème.

Comment ajouter un cadre d'informations et un cadre d'actions comme ceux qui sont affichés ici lorsqu'on visualise un billet dans son intégralité (soit après avoir cliqué sur son titre, soit après avoir cliqué sur Lire la suite ...) ?

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(); ?> &agrave; <?php dcPostTime(); ?></li>

Ensuite l'auteur :

  <li><strong>Auteur :</strong><br /><?php dcPostAuthor(); ?></li>

Ensuite la catégorie :

  <li><strong>Cat&eacute;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&eacute;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&eacute;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 &agrave; ce 
 <a href="<?php dcInfo('rss'); ?>?type=co&amp;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&eacute;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&nbsp;:<ul>
   <?php dcPostNext(-1,'<li><a href="%3$s" title="Billet pr&eacute;c&eacute;dent : %2$s">
   Le billet pr&eacute;c&eacute;dent&nbsp;: %2$s</a></li>'); ?>
   <?php dcPostNext(1,'<li><a href="%3$s" title="Billet suivant : %2$s">
   Le billet suivant&nbsp;: %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 -->.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/2939

Haut de page