Documentation PHPBoost 3

Les Commentaires.

Le système de commentaires fait appel a une partie du kernel qui s'occupe en grande partie de tout.
Pour avoir accès aux commentaires il y a des pré-requis :

Avoir une table propre au module, qui a des chan spécifique au commentaires.
Avoir chargé la classe qui permet son utilisation.

La partie qui concerne la table sql :
Code SQL :
`nbr_com` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`lock_com` tinyint(1) NOT NULL DEFAULT '0',


nbr_com contiens le nombre de commentaires. ( Attention a la case ce chan est remplis par le kernel)
lock_com permet de verrouillé le système de commentaires.
Ce verrou n'est pas codé, il faut le faire.


Lors de la recherche d'info en sql il faudra penser a renseigné le chan si on en interroge que certain et non tous. (*)

Je vais prendre comme exemple la galerie.

Avant la ligne 502 on trouve des références aux commentaires, mais c'est principalement pour la langue ou le trie d'affichage.

A la ligne 502 on charge la class qui défini les outils pour les commentaires :
Code PHP :
import('content/comments');


A la ligne 507 la lecture sql fait une selection du chan nbr_com. Il est précédé d'un g. due a une jointure sql.
Code PHP :
$result = $Sql->query_while("SELECT g.id, g.idcat, g.name, g.user_id, g.views, g.width, g.height, g.weight, g.timestamp, g.note, g.nbrnote, g.nbr_com, g.aprob, m.login
FROM " . PREFIX . "gallery g


A la ligne 596 on fait passer directement le systeme de commentaire en template :
Code PHP :
'COM' => Comments::com_display_link($info_pics['nbr_com'], '../gallery/gallery' . url('.php?cat=' . $info_pics['idcat'] . '&id=' . $info_pics['id'] . '&com=0&sort=' . $g_sort, '-' . $info_pics['idcat'] . '-' . $info_pics['id'] . '.php?com=0&sort=' . $g_sort), $info_pics['id'], 'gallery'),


Il y a pas mal de chose a détaillé :
Comments::com_display_link() est une fonction qui utilise une constante de class. plus d'info sur php.net

La fonction en elle meme a besoin de : Le nombre de commentaires, l'url de la page, l'id (qui lie a cet élément), Le nom du module/dossier du module. et en fin optionnellement des option non utiliser.

Code PHP :
com_display_link($nbr_com,$path,$idprov,$script,$options=0)



A la ligne 642 on a la meme chose mais par un controle d'envoi de n° d'un commentaire
Code PHP :
//Commentaires
if (isset($_GET['com']))
{
$Template->assign_vars(array(
'COMMENTS' => display_comments('gallery', $g_idpics, url('gallery.php?cat=' . $g_idcat . '&id=' . $g_idpics . '&com=%s', 'gallery-' . $g_idcat . '-' . $g_idpics . '.php?com=%s'))
));
}


Ligne 712 on a encore la meme chose mais soumise a la condition d'avoir une variable lier au chan lock_com (plus haut dans le code)
Code PHP :
'COM' => ($CONFIG_GALLERY['activ_com'] == 1) ? '<br />' . Comments::com_display_link($row['nbr_com'], '../gallery/gallery' . url('.php?cat=' . $row['idcat'] . '&id=' . $row['id'] . '&com=0', '-' . $row['idcat'] . '-' . $row['id'] . '.php?com=0'), $row['id'], 'gallery') : '',


Avec ses info le systeme de commentaire est oprationnel.
il n'y a rien a inclure pour la gestion de l'enregistrement des commentaire en sql, c'est fait directement par le kernel.
Les commentaires sont stoquer dans une table a part des modules.
la table a un chan qui permet de retrouver le module, l'id, et d'autre choses a qui est lier le commentaire.
Cette page a été vue 2525 fois