Prévisualisation des commentaires dans Dotclear 1

J'ai souvent été confronté au problème suivant : Parfois, lorsqu'il m'arrive d'écrire un commentaire sur le blog Dotclear 1 de quelqu'un — c'est aussi valable chez moi — j'éprouve le besoin de me relire. Jusqu'à maintenant l'action du bouton Prévisualiser provoquait l'affichage d'une page vierge contenant uniquement le commentaire en cours d'écriture et le formulaire correspondant.

Dans ces conditions — surtout si le commentaire est long et/ou travaillé — on perd la possibilité de relire les commentaires précédents ou même le billet dont il est question. Dotclear 2 a corrigé ce problème en intégrant la prévisualisation au sein de l'affichage complet du billet.

Il est très facile d'obtenir le même comportement sur un blog Dotclear 1 et je vais vous montrer ce qu'il faut modifier en prenant comme exemple le thème defaut.

Première modification à effectuer, dans le fichier template.php. Vers la ligne 60 vous trouverez ceci :

<?php elseif ($preview) : /* Si on demande la prévisualisation d'un commentaire */?>
    <h3>Commentaire pour <?php dcPostTitle(); ?></h3>
    <div id="comment-preview">
        <blockquote>
        <?php dcCommentPreview(); ?>
        </blockquote>
    </div>
    
    <h3>Changer le commentaire</h3>
    <?php include dirname(__FILE__).'/form.php'; ?>

Supprimez simplement toutes ces lignes et enregistrez le fichier.

Ensuite la deuxième modification à faire, dans le fichier form.php. Vers la ligne 23 vous trouverez ceci :

<form action="<?php dcPostUrl(); ?>" method="post" id="comment-form">

Pour que l'utilisateur soit directement placé au début de sa prévisualisation dans la page (pratique s'il y a déjà plusieurs dizaines de commentaires), il faut rajouter #pr à l'URL fournie dans l'attribut action de la balise <form>. Voilà la nouvelle ligne (qui remplace la précédente) :

<form action="<?php dcPostUrl(); ?>#pr" method="post" id="comment-form">

Enfin, troisième et dernière modification, toujours dans le même fichier. Il suffit d'insérer juste devant la ligne que vous venez de modifier les lignes suivantes :

<?php if ($preview) : /* Si on demande la prévisualisation d'un commentaire */?>
    <h3>Votre commentaire</h3>
    <div id="pr">
        <blockquote>
        <?php dcCommentPreview(); ?>
        </blockquote>
    </div>
<?php endif; ?>

Enregistrez le fichier et appréciez ! Vous voilà muni d'un thème qui intègre la prévisualisation sur la page d'affichage du billet, juste après la liste des commentaires déjà présents et juste devant le formulaire permettant de le modifier.

Il n'est probablement pas difficile d'adapter ce changement à la plupart des thèmes existants et vous pouvez bien sûr adapter le code que je vous propose d'insérer dans le fichier form.php en fonction de vos goûts.

À vous les studios \o/

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

Haut de page