Dotclear : un seul message entier sur la page d’accueil et des liens de navigation


Comment faire pour avoir le dernier message, seul et entier (commentaires, trackback inclus) en page d’accueil du blog et des liens de navigation vers le message précédent et le message suivant.

1) Modifier les paramètres du blog pour n’afficher 1 seul message à la fois. Dans Options -> Configuration de Dotclear, mettre le « Nombre de billets par pages à 1 ».

2) Remplacer le contenu du fichier list.php par ce qui suit :

 <?php while ($news->fetch()) : ?>     <?php $comments=$blog->getComments($GLOBALS['news']->f('post_id')); ?> 	<?php $trackbacks = $comments->extractTrackbacks();                          //les 2 ligne suivantes servent à générer les liens suivant et précédent,                          // à enlever si la fonctionalité n'est pas utilisée. 		$rs_prev = $blog->getNextID($news->getTS(),-1); 		$rs_next = $blog->getNextID($news->getTS(),1); 	?> 	<?php include dirname(__FILE__).'/post.php'; ?> <?php endwhile; ?> 

Evidemment, cela a une influence sur tout le blog : si on se trouve ensuite dans une catégorie, on aura un seul message affiché. Et dans les vues par jours et par mois : tous les messages seront affichés en entier (avec commentaires et formulaires) les uns à la suite des autres, ce qui n’est pas forcément pratique. C’est pour cela que j’ai modifié la façon dont on est géré l’affichage des catégories, jours, mois, mais ce sera explqiué plus tard…

Comme un seul message est affiché sur la page d’accueil, il est utile de mettre des liens de navigation. Pour ma part, j’ai mis 2 types de liens : navigation par date, navigation dans la catégorie. Pour ce dernier, il faut installer le plug-in Billets voisins catégoriques. Ces liens apparaissent sur tous les messages. Pour se faire, modifier post.php de votre thème en ajoutant les lignes en bleu.

 	<?php dcPostChapo('<div class="post-chapo">%s<div>'); ?> 	<div class="post-content"><?php dcPostContent(); ?></div> <div>  <table width=100% border=0> <tr><td width=33%> 		<?php 		$previous='<span class=left><img src="'. $GLOBALS['theme_uri']. $GLOBALS['__theme'] . '/img/arrow-previous.gif" align=middle>  <a href="%3$s" title="%2$s"> Précédent<?a></span>' ; 		dcPostNext(-1,$previous ); ?> <td><td width=33%> 			<span class=centre><center>Naviguer par date<center></span> <td><td width=33%> 		<?php 		$next='<span class=right><a href="%3$s" title="%2$s">Suivant</a>  <img src="'. $GLOBALS['theme_uri']. $GLOBALS['__theme'] . '/img/arrow-next.gif" align=middle></span>'; 		dcPostNext(1,$next); ?> </td></tr> <tr><td> 	<?php $previous='<span class=left><img src="'. $GLOBALS['theme_uri']. $GLOBALS['__theme'] . '/img/arrow-previous.gif" align=middle>  <a href="%3$s" title="%2$s">Précédent dans la catégorie</a></span>' ; 	dcPostNextIncat(-1,$previous,65); ?> </td><td> 	<span  class=centre><center>Naviguer dans <?php dcPostCatTitle(); ?> </center></span> </td><?d> 	<?php $next='<span class=right><a href="%3$s" title="%2$s">Suivant dans la catégorie</a>  <img src="'. $GLOBALS['theme_uri']. $GLOBALS['__theme'] . '/img/arrow-next.gif" align=middle></span>' ; 	dcPostNextIncat(1,$next,65); ?> </td></tr> </table> <hr>  

Pour que ça marche bien, il est nécessaire d’avoir 2 images arrow-next.gif et arrow-previous.gif dans le répertoire img de votre thème + ajouter les lignes suivantes dans le fichier style.css du thème :

 left{ text-align: left; } .right { text-align: right; } .centre { text-align: center; 
    

Un commentaire sur “Dotclear : un seul message entier sur la page d’accueil et des liens de navigation”

  1. A noter : ce blog a migré sous wordpress, donc il ne fonctionne plus forcément comme décrit ci-dessus.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *