Fork me on GitHub

Documentations > Développeurs > Fiches techniques > Ajouter des commentaires à  votre module

Ajouter des commentaires à  votre module


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.
Licence, certains droits réservés
Partager Twitter Partagez cette article sur GG+
  Voir cet article en format PDF Imprimer cet article Envoyer cet article

Naviguer à travers les articles
Article précédent Création de blocs Ajouter la recherche à  son module Article suivant
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

35 Personne(s) en ligne (1 Personne(s) connectée(s) sur Documentations) | Utilisateur(s): 0 | Invité(s): 35 | Plus ...