AlphaUserPoints - Comment créer un plugin (base)

La création d'un plugin (création d'une nouvelle règle pour un composant tier) se décompose en 2 étapes.

Etape 1 - Insertion de l'API dans le composant
Ceci s'adresse bien sûr en priorité aux développeurs ou à toute personne ayant un niveau de connaissance suffisament avancé en PHP.

Il suffit d'insérer l'API suivante dans le code du composant à l'endroit souhaité. L'idéal est de faire suite une action pouvant rapporter des points à l'utilisateur connecté. Par exemple, dans un composant de commentaires ou de forum, il suffit d'ajouter l'API après l'insertion du commentaire ou du nouveau topic dans la base de données.

API:

$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP))
{
    require_once ($api_AUP);
    AlphaUserPointsHelper::newpoints( 'nom_de_la_fonction' );
}

nom_de_la_fonction représente la règle qui va être utilisée pour attribuer des points à l'utilisateur en cours (s'il est enregistré et loggé).
Pour l'ensemble des règles intégrées dans AlphaUserPoints (fonctions systèmes), les noms de fonction sont rédigées comme suit:

exemple: sysplgaup_newregistered pour l'attribution de points à un nouvel utilisateur enregistré.

Il conviendrait de garder un nomage standard pour les plugins des composants tiers comme suit :

plgaup_nomdelafonction

Exemple plgaup_newcomment ou plgaup_newtopic pour reprendre l'exemple de l'insertion de cette API dans un composant de commentaire ou de forum.
Le nom d'une fonction pour attribuer des points lors de la création d'un nouveau topic posté dans le composant Fireboard pourrait être, par exemple, plgaup_newtopic_fb.

Etape 2 - Création du fichier XML
Il convient ensuite de créer un fichier xml pour faciliter l'installation de la règle dans AlphaUserPoints.
5 éléments ont besoin d'être spécifiés:

Le nom de la règle, sa description, le nom du composant utilisant la règle (com_exemple), le nom de la fonction utilisée par la règle et le dernier paramètre pour spécifier si les points sont fixes ou susceptibles de changer (boolean true ou false).

<?xml version="1.0" encoding="utf-8"?>
<alphauserpoints type="plugin">
    <rule>Nom court de la règle</rule>
    <description>Description de la règle</description>
    <component>com_exemple</component>
    <plugin_function>plgaup_nomdelafonction</plugin_function>
    <fixed_points>true ou false</fixed_points>
</alphauserpoints>

Ce fichier XML doit être encodé en utf-8 et peut être ensuite archivé (.zip).

Note aux développeurs

Vous trouverez une documentation plus complète sur l'insertion et l'utilisation de cette API sur le site officiel de l'auteur www.alphaplug.com.