Conditions
Chaque "article" doit être repéré dans la table par un identifiant unique et doit pouvoir être affiché individuellementpar un template.
Votre table pourra également comporter un champ "comments ,
int(11), 0 par défaut, destiné à comptabliser le nombre
de commentaires par "article".
Fichier xoops_version.php
Ajouter ces 3 lignes, en adaptant les parties en rouges à votre
module.
// Comments
$modversion['hasComments'] = 1;
$modversion['comments']['itemName'] = 'item_id';
//
nom de l'identifiant unique d'un "article" dans la base
$modversion['comments']['pageName'] = 'article.php';
//
le fichier qui affichera "l'article" individuellement
(le fichier
article.php devra pouvoir afficher
un article unique en étant appelé par
article.php?item_id=15
p.ex.)
Fichiers comment_delete, comment_edit, ...
Faites une copie des fichiers suivants du module news (p.ex), dans
le répertoire de votre module (rien à modifier dans ces fichiers)
- comment_delete.php
- comment_edit.php
- comment_new.php
- comment_post.php
- comment_reply.php
Fichier article.php
Editez le fichier indiqué dans $modversion['comments']['pageName'],
(article.php
dans notre exemple) et ajoutez immédiatement avant le footer.php
include XOOPS_ROOT_PATH.'/include/comment_view.php';
Fichier template
Dans le fichier template qui affiche individuellement votre "article",
ajoutez les lignes suivantes à la fin
<div style="text-align: center; padding:
3px; margin:3px;">
<{$commentsnav}>
<{$lang_notice}>
</div>
<div style="margin:3px; padding: 3px;">
<!-- start comments loop -->
<{if $comment_mode == "flat"}>
<{include file="db:system_comments_flat.html"}>
<{elseif $comment_mode == "thread"}>
<{include file="db:system_comments_thread.html"}>
<{elseif $comment_mode == "nest"}>
<{include file="db:system_comments_nest.html"}>
<{/if}>
Administration
Votre administration du module prévoit sans doute la possibilité
d'effacer un "article" de la base.
Cette action devra également effacer les commentaires associés
í cet "article".
Il vous faudra insérer (et adapter) la ligne suivante dans la
partie de votre script qui efface un "article".
xoops_comment_delete( $xoopsModule ->
getVar( 'mid' ), $variable_num_id
->item_id() );
Comptage des commentaires
Si vous voulez compter le nombre de commentaires associés à
un "article", insérez dans votre script à l'endroit désiré
l'instruction suivante:
$count = xoops_comment_count($xoopsModule->getVar('mid'),
$this->item_id);
Si vous omettez le second paramêtre (
$this->item_id),
la variable $count vous donnera le nombre total des commentaires associés
aux "articles" de votre module.
Options
Vous pouvez inclure 2 fonctions supplémentaires pour:
- actualiser le nombre de commentaires par "article" dans le champ
comments de votre table (conseillé si c'est le cas)
- exécuter une action lorsqu'un commentaire est approuvé
(dans le cas où les commentaires sont soumis à approbation
évidemment !), tel que l'envoi d'un mail au 'poster' (en principe
non implémenté: voir le fichier include/comment_functions.php).
Fichier xoops_version : rajouter
// Comment callback functions
$modversion['comments']['callbackFile'] = 'include/comment_functions.php';
// nom du fichier contenant les fonctions
$modversion['comments']['callback']['approve']
= 'mymodule_comments_approve';
// fonction approbation
$modversion['comments']['callback']['update']
= 'mymodule_comments_update';
// fonction de mise à jour
Attention de bien insérer le nom exact (dirname) de votre module.