fr:developpers:documentation_mod
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
fr:developpers:documentation_mod [2016/07/12 15:15] – modification externe 127.0.0.1 | fr:developpers:documentation_mod [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Tutoriel - Création d'un mod pour OGSpy ====== | ||
- | |||
- | Afin de developper un mod OGSpy plusieurs règles doivent être respectées. | ||
- | |||
- | ===== Nom et Version du Mod ===== | ||
- | |||
- | |||
- | Le nom du mod devra être écrit en minuscules et ne devra pas contenir de caractères spéciaux. Ce nom de mod est utilisé sur le système de fichier du serveur donc doit être à la fois simple et concis. | ||
- | |||
- | Ce nom n'est pas le nom affiché à l' | ||
- | |||
- | Le numéro de version devra être de la forme X.Y.Z | ||
- | |||
- | * X étant le numéro de version Majeur (Incrémenté lors d'une évolution Importante du Mod) | ||
- | * Y étant le numéro de version Mineur (Incrémenté lors d'une évolution légère) | ||
- | * Z étant le numéro incrémenté pour les corrections de Bugs. | ||
- | ===== Organisation du mod ===== | ||
- | ==== Fichiers requis ==== | ||
- | |||
- | Les fichiers requis sont les suivants : | ||
- | |||
- | * install.php : c'est le fichier d' | ||
- | * uninstall.php : exactement l' | ||
- | * update.php : ce fichier est executé lors de la mise à jour du mod, que ce soit via l' | ||
- | * version.txt : ce fichier contient certaines informations relative à votre mod, il n'est pas executé mais est lu par OGSpy lors de l' | ||
- | |||
- | Voici le code minimum de ces fichiers. Si votre mod ne créer pas de table il n'y a pas grand chose à modifier. Si au contraire votre mod a besoin de tables en plus, je vous conseille de regarder comment cela est fait dans des mods déjà existants (prenez exemple sur des mods qui fonctionnent correctement avec la dernière version d' | ||
- | |||
- | <note warning> | ||
- | |||
- | <file php install.php> | ||
- | <?php | ||
- | |||
- | if (!defined(' | ||
- | exit(' | ||
- | } | ||
- | |||
- | $mod_folder = 'nom du dossier du mod'; // à modifier | ||
- | |||
- | if (install_mod($mod_folder)) { | ||
- | // Si besoin de créer des tables, à faire ici | ||
- | } | ||
- | else { | ||
- | echo '< | ||
- | } | ||
- | |||
- | ?> | ||
- | </ | ||
- | |||
- | <file php uninstall.php> | ||
- | <?php | ||
- | |||
- | if (!defined(' | ||
- | exit(' | ||
- | } | ||
- | |||
- | global $db, $table_prefix; | ||
- | |||
- | $mod_uninstall_name | ||
- | |||
- | // S'il n'y a qu'une seule table à supprimer | ||
- | $mod_uninstall_table = $table_prefix .' | ||
- | |||
- | // S'il y en a plusieurs à supprimer | ||
- | $mod_uninstall_table = $table_prefix .' | ||
- | |||
- | uninstall_mod ($mod_uninstall_name, | ||
- | |||
- | ?> | ||
- | </ | ||
- | |||
- | <file php update.php> | ||
- | <?php | ||
- | |||
- | if (!defined(' | ||
- | exit(' | ||
- | } | ||
- | |||
- | $mod_folder = 'nom du dossier du mod'; // à modifier | ||
- | $mod_name | ||
- | |||
- | update_mod($mod_folder, | ||
- | |||
- | ?> | ||
- | </ | ||
- | |||
- | <file text version.txt> | ||
- | nom du mod | ||
- | version du mod (sous la forme x.y.z) | ||
- | title, menu, action, root, link, active, admin | ||
- | Version OGSPy Requise (Optionnel mais recommandé) | ||
- | </ | ||
- | |||
- | Le fichier version.txt ne contient donc que 4 lignes. Pour la troisième ligne, les informations sont les suivantes : | ||
- | |||
- | * title : le nom de votre mod. | ||
- | * menu : le nom que votre mod prendra dans le menu OGSpy. | ||
- | * action : la valeur du paramètre GET " | ||
- | * root : le nom du dossier contenant les fichiers de votre mod. | ||
- | * link : le fichier PHP qui sera appelé lorsqu' | ||
- | * active : un mod peut être actif ou inactif (installé mais impossible de l' | ||
- | * admin : mettez 1 si votre mod ne peut être utilisé que par des administrateurs, | ||
- | |||
- | <note important> | ||
- | |||
- | La dernière ligne contient la version OGSpy demandée. | ||
- | |||
- | Exemple complet: | ||
- | |||
- | <file text version.txt> | ||
- | Superapix | ||
- | 0.1.1 | ||
- | superapix, | ||
- | 3.2.0 | ||
- | </ | ||
- | |||
- | ==== Vos fichiers ==== | ||
- | |||
- | Le dernier fichier requis est le points d' | ||
- | |||
- | <file php mon-link.php> | ||
- | <?php | ||
- | |||
- | if (!defined(' | ||
- | exit(' | ||
- | } | ||
- | |||
- | require_once ' | ||
- | |||
- | ?> | ||
- | |||
- | <style type=" | ||
- | body { | ||
- | | ||
- | } | ||
- | | ||
- | .mon-mod-p { | ||
- | color: black; | ||
- | font-size: 26px; | ||
- | } | ||
- | </ | ||
- | |||
- | <?php | ||
- | |||
- | echo '<p class=" | ||
- | |||
- | require_once ' | ||
- | |||
- | ?> | ||
- | </ | ||
- | |||
- | ===== Accès à la base de données ===== | ||
- | |||
- | L' | ||
- | |||
- | <file php includes/ | ||
- | class sql_db { | ||
- | |||
- | // Permet d' | ||
- | // | ||
- | // $query : requête SQL | ||
- | // $dieOnSQLError : si la requête provoque une erreur, arrête le script PHP et affiche l' | ||
- | // $logQuery : enregistre la requête dans les logs si $server_config[' | ||
- | // | ||
- | // Retourne le résultat de la requête SQL. | ||
- | // | ||
- | // Exemple : $db-> | ||
- | // | ||
- | function sql_query ($query, $dieOnSQLError = true, $logQuery = true); | ||
- | | ||
- | // Récupère une ligne d'une requête SQL. Si $query_id vaut 0, la méthode s' | ||
- | // Équivalent à mysql_fetch_array($query_id, | ||
- | // | ||
- | // Retourne donc un tableau indexé numeriquement. | ||
- | // | ||
- | // Exemple : while (list($username, | ||
- | // echo ' | ||
- | // echo 'Hash du password : "' | ||
- | // } | ||
- | // | ||
- | function sql_fetch_row ($query_id = 0); | ||
- | | ||
- | // Équivalent à sql_fetch_row mais retourne un array numérique et associatif. | ||
- | // | ||
- | function sql_fetch_assoc($query_id = 0); | ||
- | | ||
- | // Nombre de ligne concernées par la dernière requête (ou celle spécifiée). | ||
- | // | ||
- | // Exemple : $db-> | ||
- | // | ||
- | function sql_numrows($query_id = 0); | ||
- | | ||
- | // Retourne le nombre d' | ||
- | // | ||
- | function sql_affectedrows(); | ||
- | | ||
- | // ID (int) de la dernière requête exécutée par $db-> | ||
- | // | ||
- | function sql_insertid(); | ||
- | | ||
- | // Libère les ressources renvoyées par la dernière requête (ou celle spécifiée) | ||
- | // | ||
- | function sql_free_result($query_id = 0) { | ||
- | | ||
- | // Retourne un tableau avec l' | ||
- | // générée par la dernière requête (ou celle spécifiée). | ||
- | // | ||
- | function sql_error($query_id = 0); | ||
- | | ||
- | // Retourne le nombre de requête exécutée. | ||
- | // | ||
- | function sql_nb_requete(); | ||
- | | ||
- | // Échappe la chaîne de caractères donnée. Équivalent à mysql_real_escape_string(). | ||
- | // | ||
- | function sql_escape_string($str); | ||
- | |||
- | } | ||
- | </ | ||
- | |||
- | Afin d' | ||
- | |||
- | <PHP> | ||
- | <?php | ||
- | |||
- | // ... | ||
- | |||
- | global $db; // c'est tout ! | ||
- | |||
- | $db-> | ||
- | |||
- | // ... | ||
- | |||
- | ?> | ||
- | </ | ||
- | |||
- | ===== Les variables OGSpy ===== | ||
- | |||
- | Pour une raison de sécurité, toutes les variables POST et GET ont été remplacées. | ||
- | |||
- | <PHP> | ||
- | echo $pub_exemple; | ||
- | echo $pub_exemple; | ||
- | </ | ||
- | |||
- | En ce qui concerne les tables d' | ||
- | |||
- | <PHP> | ||
- | define(" | ||
- | </ | ||
- | |||
- | et voici la liste des tables OGSpy: | ||
- | |||
- | <PHP> | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | define(" | ||
- | </ | ||
- | |||
- | dans TABLE_CONFIG se trouve toutes les configurations d' | ||
- | |||
- | <PHP> | ||
- | $server_config[' | ||
- | </ | ||
- | |||
- | |||
- | ===== Utilisation des Paramètres ===== | ||
- | |||
- | Des fonctionnalités ont été développées au sein d' | ||
- | |||
- | Ici nous allons décrire la gestion des paramètres. Ces paramètres sont enregistrés dans la base de données dans la table " | ||
- | |||
- | ==== mod_set_option ==== | ||
- | |||
- | Permet d' | ||
- | <PHP> | ||
- | function mod_set_option ( $param, $value) | ||
- | |||
- | @param string $param Nom du paramètre de configuration | ||
- | @param string $value Valeur du paramètre de configuration | ||
- | @return boolean Retourne true/false selon le résultat de l' | ||
- | </ | ||
- | |||
- | |||
- | ==== mod_del_option ==== | ||
- | |||
- | Permet d' | ||
- | <PHP> | ||
- | function mod_del_option ( $param ) | ||
- | |||
- | * @param string $param Nom du paramètre de configuration | ||
- | * @global $db | ||
- | * @return boolean Retourne true/false selon le résultat de l' | ||
- | </ | ||
- | |||
- | |||
- | ==== mod_get_option ==== | ||
- | |||
- | Permet de lire la valeur d'un paramètre de configuration pour un mod donné | ||
- | |||
- | <PHP> | ||
- | function mod_get_option ( $param ) | ||
- | |||
- | * @param string $param Nom du paramètre de configuration | ||
- | * @global $db | ||
- | * @return string Retourne la valeur du paramètre demandé | ||
- | </ | ||
fr/developpers/documentation_mod.1468329312.txt.gz · Dernière modification : 2021/03/12 14:09 (modification externe)