Le systeme de notation fait appel a une partie du kernel qui s'occupe en grande partie de tout.
Pour avoir acces au notation il y a des pré-requis :
Avoir une table propre au module, qui a des chan spécifique au notes.
Avoir chargé la classe qui permet son utilisation.
Un fichier xmlhttprequest.php
Les chan requis dans la table du module sont la pour stocker la note actuelle, et le nombre de note.
on a donc les chan suivant dans notre table :
users_note contiens les info sur les 'noteurs'
nbrnote contiens le nombre de note.
note contiens la note actuelle.
Lors de la recherche d'info en sql il faudra penser a lire les chan si on interroge que certain chan et non pas tous.
Par exemple dans le module galerie :
A la ligne 507 on a la présence des chan
note et
nbrnote dans une interrogation sql.
(le g. est due a une jointure de table et donc a une indexation des chan par table)
A ce niveau des condition on déjà règlementer l'accès a ces lignes.
A la ligne 572 on a un import de la classe (ou outils) et mise en variable de $Note.
On met en variable le résultat d'une fonctions.
Utilisant une class et des objets on dois déclaré une nouvelle instance
Note, d'ou le
new.
l'utilisation de new (re)met l'instance a zero, donc attention au condition et au boucle.
La fonction Note a besoin de l'identifiant du module, de l'id, l'url, le nombre max de la notation, le dossier du module, un nombre optionnel (en général '0')
Dans le bout de code les renseignement sont tirée de la db.
$script : nom de la table du module ou sont les chan db (un controle est fait avec le config.ini)
$idprov : id de reference
$script_path : la page d'appel du script
$notation_scale : le nombre d'étoile, l'échèle de notation..
$module_folder : le dossier du module. sert a retrouver le config.ini. et surtout : la section "note="
$option : les option d'affichage
Les options : Le plus courrant est "NOTE_DISPLAY_NOTE".
On a le choix entre : 'NOTE_DISPLAY_NOTE' , 'NOTE_NODISPLAY_NBRNOTES' , 'NOTE_DISPLAY_BLOCK'.
qui sont défini a la volée a l'import de la class.
$module_folder est optionnel, le module ayant en principe le même nom que le dossier si il n'y ai pas c'est prévu de prendre le nom de module pour le nom du dossier.
A la ligne 597 on passe dans le template le formulaire comme pour l'éditeur :
Ici il a une condition a la mise en variable. Dans la galerie une option a été faite pour activé ou non les note.
ce n'est que un chan db supplémentaire SET a 0 ou 1.
Pour récupérer les info du formulaire le JS embarquer dans le système de note fait appel a : xmlhttprequest.php.
Ce fichier dois être placer dans la racine de votre module.
Celui de la galerie, a d'autre fonctionnalité. Il inclus d'autre possibilité.
Une forme minimale, épurée et fonctionnelle donne ceci :
Attention de modifier le nom de votre module dans la variable
$module