Outils pour utilisateurs

Outils du site


fr:developpers:documentation_mod

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
fr:developpers:documentation_mod [2016/07/12 15:15] – Page moved from fr:ogspy:documentation_mod to fr:developpers:documentation_mod darknoonfr:developpers:documentation_mod [2021/01/22 13:46] pitch314
Ligne 1: Ligne 1:
 ====== Tutoriel - Création d'un mod pour OGSpy ====== ====== Tutoriel - Création d'un mod pour OGSpy ======
  
-Afin de developper un mod OGSpy plusieurs règles doivent être respectées. +Afin de développer un mod OGSpyplusieurs règles doivent être respectées.
- +
-===== Nom et Version du Mod =====+
  
 +===== 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. 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'utilisateur : il peut être personnalisé dans le fichier version.txt (Vois plus bas la composition de ce fichier)+Ce nom n'est pas le nom affiché à l'utilisateur : il peut être personnalisé dans le fichier version.txt (Voir plus bas la composition de ce fichier)
  
 Le numéro de version devra être de la forme X.Y.Z 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)
-  * 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)   * 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.+  * Z étant le numéro incrémenté pour les corrections de bugs. 
 ===== Organisation du mod ===== ===== Organisation du mod =====
 ==== Fichiers requis ==== ==== Fichiers requis ====
Ligne 20: Ligne 19:
 Les fichiers requis sont les suivants : Les fichiers requis sont les suivants :
  
-  * install.php c'est le fichier d'installation du mod, il ne sera executé que lorsque le mod sera installé via l'administration d'OGSpy. +  * **__install.php__** : fichier d'installation du mod, il ne sera exécuté lorsque le mod sera installé via l'administration d'OGSpy. 
-  * uninstall.php exactement l'inverse, lorsque vous desinstaller le mod via l'administration OGSpy, c'est ce fichier qui sera executé+  * **__uninstall.php__** : l'inverse, fichier de désinstallation du mod, exécuté lorsque le mod sera désinstallé via l'administration OGSpy. 
-  * update.php ce fichier est executé lors de la mise à jour du mod, que ce soit via l'administration OGSpy ou via le mod AutoUpdate. +  * **__update.php__** : fichier exécuté à la mise à jour du mod, que ce soit via l'administration OGSpy ou via le mod AutoUpdate. 
-  * version.txt ce fichier contient certaines informations relative à votre mod, il n'est pas executé mais est lu par OGSpy lors de l'installation du mod.+  * **__version.txt__** : fichier contenant certaines informations relative à votre mod, il n'est pas exécuté mais est lu par OGSpy lors de l'installation du mod.
  
-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'OGSpy).+Voici le code minimum de ces fichiers. Si votre mod ne crée pas de table il n'y a pas grand chose à modifier. Si au contraire votre mod a besoin de tables en plus, nous vous conseillons 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'OGSpy).
  
-<note warning>Tout les fichiers de votre mod doivent utilisé l'encodage UTF-8 (Sans BOM) !</note>+<note warning>Tout les fichiers de votre mod doivent utiliser l'encodage UTF-8 (Sans BOM) !</note>
  
 <file php install.php> <file php install.php>
Ligne 42: Ligne 41:
 } }
 else { else {
-    echo '<script>alert(\'Un problème a eu lieu pendant l'installation du mod, corrigez les problèmes survenus et réessayez.\');</script>';+    echo "<script>alert('Un problème a eu lieu pendant l'installation du mod, corrigez les problèmes survenus et réessayez.');</script>";
 } }
  
-?> 
 </file> </file>
  
Ligne 55: Ligne 53:
 } }
  
-global $db, $table_prefix;+global $table_prefix;
  
 $mod_uninstall_name  = 'nom du mod'; // à modifier $mod_uninstall_name  = 'nom du mod'; // à modifier
Ligne 65: Ligne 63:
 $mod_uninstall_table = $table_prefix .'table1, '. $table_prefix .'table2'; // à modifier $mod_uninstall_table = $table_prefix .'table1, '. $table_prefix .'table2'; // à modifier
  
-uninstall_mod ($mod_uninstall_name, $mod_uninstall_table);+uninstall_mod($mod_uninstall_name, $mod_uninstall_table);
  
-?> 
 </file> </file>
  
Ligne 82: Ligne 79:
 update_mod($mod_folder, $mod_name); update_mod($mod_folder, $mod_name);
  
-?> 
 </file> </file>
  
Ligne 88: Ligne 84:
 nom du mod nom du mod
 version du mod (sous la forme x.y.z) version du mod (sous la forme x.y.z)
-title, menu, action, root, link, active, admin +titre, menu, action, root, link, active, admin 
-Version OGSPy Requise (Optionnel mais recommandé)+Version OGSPy minimale requise
 </file> </file>
  
 Le fichier version.txt ne contient donc que 4 lignes. Pour la troisième ligne, les informations sont les suivantes : 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.+  * titre : le nom de votre mod.
   * menu : le nom que votre mod prendra dans le menu OGSpy.   * menu : le nom que votre mod prendra dans le menu OGSpy.
   * action : la valeur du paramètre GET "action" (exemple avec le mod AutoUpdate : http://www.mon-serveur-ogspy.fr/ogspy/index.php?action=**__autoupdate__**).   * action : la valeur du paramètre GET "action" (exemple avec le mod AutoUpdate : http://www.mon-serveur-ogspy.fr/ogspy/index.php?action=**__autoupdate__**).
Ligne 117: Ligne 113:
 ==== Vos fichiers ==== ==== Vos fichiers ====
  
-Le dernier fichier requis est le points d'entree de votre mod, celui que vous avez mis dans a la place de "link" dans le fichier version.txt. part ca, vous etre libre d'organiser vos fichiers et ressources comme vous le souhaitez. Voici un exemple d'un fichier "link" :+Le dernier fichier requis est le points d’entrée de votre mod, celui que vous avez mis dans a la place de "link" dans le fichier //version.txt//À part ça, vous être libre d'organiser vos fichiers et vos ressources comme vous le souhaitez. Voici un exemple d'un fichier "link" :
  
 <file php mon-link.php> <file php mon-link.php>
Ligne 126: Ligne 122:
 } }
  
-require_once 'views/page_header.php';+require_once('views/page_header.php');
  
 ?> ?>
- 
 <style type="text/css"> <style type="text/css">
     body {     body {
Ligne 140: Ligne 135:
     }     }
 </style> </style>
- 
 <?php <?php
  
 echo '<p class="mon-mod-p">Hello World!</p>'; echo '<p class="mon-mod-p">Hello World!</p>';
  
-require_once 'views/page_tail.php';+require_once(views/page_tail.php);
  
-?> 
 </file> </file>
  
 ===== Accès à la base de données ===== ===== Accès à la base de données =====
 +//TODO: wiki à mettre à jour//
  
-L'accès à la base de données ne peut se faire n'importe comment, il doit se faire à travers la variable global $db, instance de classe sql_db definie dans includes/mysql.php. Utiliser les méthodes du genre mysql_query() est possible mais fortement déconseillé ! Les méthodes disponibles sont les suivantes :+L'accès à la base de données ne peut se faire n'importe comment, il doit se faire à travers la variable global $db, instance de classe sql_db définie dans includes/mysql.php. Utiliser les méthodes du genre mysql_query() est possible mais fortement déconseillé ! Les méthodes disponibles sont les suivantes :
  
 <file php includes/mysql.php> <file php includes/mysql.php>
-class sql_db { 
  
 +class sql_db {
     // Permet d'exécuter une requête SQL quelconque.     // Permet d'exécuter une requête SQL quelconque.
     //     //
Ligne 167: Ligne 161:
     // Exemple : $db->sql_query('SELECT user_name, user_password FROM '. TABLE_USER);     // Exemple : $db->sql_query('SELECT user_name, user_password FROM '. TABLE_USER);
     //     //
-    function sql_query ($query, $dieOnSQLError = true, $logQuery = true);+    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'appliquera sur la dernière requête exécutée.     // Récupère une ligne d'une requête SQL. Si $query_id vaut 0, la méthode s'appliquera sur la dernière requête exécutée.
Ligne 179: Ligne 173:
     //           }     //           }
     //     //
-    function sql_fetch_row ($query_id = 0);+    function sql_fetch_row($query_id = 0);
          
     // Équivalent à sql_fetch_row mais retourne un array numérique et associatif.     // Équivalent à sql_fetch_row mais retourne un array numérique et associatif.
Ligne 215: Ligne 209:
     //     //
     function sql_escape_string($str);     function sql_escape_string($str);
- 
 } }
 +
 </file> </file>
  
Ligne 244: Ligne 238:
 </PHP> </PHP>
  
-En ce qui concerne les tables d'OGSpy de base, vous avez le droit d'insérer des éléments dedans, ou de supprimer celles que vous avez mises mais vous avez en aucun cas, le droit de les supprimer ou de les altérer, par contre vous avez le droit de créer vos propres tables. N'oubliez pas lors de la création de vos tables que le préfixe existe et peux changer... c'est pour cela que je vous conseille de définir vos table en haut de la page comme ceci:+En ce qui concerne les tables d'OGSpy de base, vous avez le droit d'insérer des éléments dedans, ou de supprimer celles que vous avez mises mais vous avez en aucun cas, le droit de les supprimer ou de les altérer, par contre vous avez le droit de créer vos propres tables. N'oubliez pas lors de la création de vos tables que le préfixe existe et peux changer. C'est pour cela que nous vous conseillons de définir vos tables en haut de la page comme ceci:
  
 <PHP> <PHP>
-define("TABLE_EXEMPLE", $table_prefix."exemple");+define('TABLE_EXEMPLE', $table_prefix.'exemple');
 </PHP> </PHP>
  
Ligne 253: Ligne 247:
  
 <PHP> <PHP>
-define("TABLE_CONFIG", $table_prefix."config"); +define('TABLE_CONFIG', $table_prefix.'config'); 
-define("TABLE_GROUP", $table_prefix."group"); +define('TABLE_GROUP', $table_prefix.'group'); 
-define("TABLE_RANK_PLAYER_FLEET", $table_prefix."rank_player_fleet"); +define('TABLE_RANK_PLAYER_FLEET', $table_prefix.'rank_player_fleet'); 
-define("TABLE_RANK_PLAYER_POINTS", $table_prefix."rank_player_points"); +define('TABLE_RANK_PLAYER_POINTS', $table_prefix.'rank_player_points'); 
-define("TABLE_RANK_PLAYER_RESEARCH", $table_prefix."rank_player_research"); +define('TABLE_RANK_PLAYER_RESEARCH', $table_prefix.'rank_player_research'); 
-define("TABLE_RANK_ALLY_FLEET", $table_prefix."rank_ally_fleet"); +define('TABLE_RANK_ALLY_FLEET', $table_prefix.'rank_ally_fleet'); 
-define("TABLE_RANK_ALLY_POINTS", $table_prefix."rank_ally_points"); +define('TABLE_RANK_ALLY_POINTS', $table_prefix.'rank_ally_points'); 
-define("TABLE_RANK_ALLY_RESEARCH", $table_prefix."rank_ally_research"); +define('TABLE_RANK_ALLY_RESEARCH', $table_prefix.'rank_ally_research'); 
-define("TABLE_SESSIONS", $table_prefix."sessions"); +define('TABLE_SESSIONS', $table_prefix.'sessions'); 
-define("TABLE_SPY", $table_prefix."spy"); +define('TABLE_SPY', $table_prefix.'spy'); 
-define("TABLE_STATISTIC", $table_prefix."statistics"); +define('TABLE_STATISTIC', $table_prefix.'statistics'); 
-define("TABLE_UNIVERSE", $table_prefix."universe"); +define('TABLE_UNIVERSE', $table_prefix.'universe'); 
-define("TABLE_UNIVERSE_TEMPORARY", $table_prefix."universe_temporary"); +define('TABLE_UNIVERSE_TEMPORARY', $table_prefix.'universe_temporary'); 
-define("TABLE_USER", $table_prefix."user"); +define('TABLE_USER', $table_prefix.'user'); 
-define("TABLE_USER_BUILDING", $table_prefix."user_building"); +define('TABLE_USER_BUILDING', $table_prefix.'user_building'); 
-define("TABLE_USER_DEFENCE", $table_prefix."user_defence"); +define('TABLE_USER_DEFENCE', $table_prefix.'user_defence'); 
-define("TABLE_USER_FLEET", $table_prefix."user_fleet"); +define('TABLE_USER_FLEET', $table_prefix.'user_fleet'); 
-define("TABLE_USER_FAVORITE", $table_prefix."user_favorite"); +define('TABLE_USER_FAVORITE', $table_prefix.'user_favorite'); 
-define("TABLE_USER_GROUP", $table_prefix."user_group"); +define('TABLE_USER_GROUP', $table_prefix.'user_group'); 
-define("TABLE_USER_SPY", $table_prefix."user_spy"); +define('TABLE_USER_SPY', $table_prefix.'user_spy'); 
-define("TABLE_USER_TECHNOLOGY", $table_prefix."user_technology"); +define('TABLE_USER_TECHNOLOGY', $table_prefix.'user_technology'); 
-define("TABLE_USER_PLANET", $table_prefix."user_planet"); +define('TABLE_USER_PLANET', $table_prefix.'user_planet'); 
-define("TABLE_MOD", $table_prefix."mod"); +define('TABLE_MOD', $table_prefix.'mod'); 
-define("TABLE_MOD_CAT", $table_prefix."mod_cat"); +define('TABLE_MOD_CAT', $table_prefix.'mod_cat'); 
-define("TABLE_MOD_RESTRICT", $table_prefix."mod_restrict"); +define('TABLE_MOD_RESTRICT', $table_prefix.'mod_restrict'); 
-define("TABLE_PARSEDSPY", $table_prefix."parsedspy"); +define('TABLE_PARSEDSPY', $table_prefix.'parsedspy'); 
-define("TABLE_PARSEDRC", $table_prefix."parsedRC"); +define('TABLE_PARSEDRC', $table_prefix.'parsedRC'); 
-define("TABLE_PARSEDRCROUND", $table_prefix."parsedRCRound"); +define('TABLE_PARSEDRCROUND', $table_prefix.'parsedRCRound'); 
-define("TABLE_ROUND_ATTACK", $table_prefix."round_attack"); +define('TABLE_ROUND_ATTACK', $table_prefix.'round_attack'); 
-define("TABLE_ROUND_DEFENSE", $table_prefix."round_defense"); +define('TABLE_ROUND_DEFENSE', $table_prefix.'round_defense'); 
-define("TABLE_MP", $table_prefix."mp");+define('TABLE_MP', $table_prefix.'mp');
 </PHP> </PHP>
  
-dans TABLE_CONFIG se trouve toutes les configurations d'OGSpy (allez directment dans phpmyadmin pour voir ce qui peux vous intéresser), alors si vous souhaitez en lire une, utilisez simplement ça:+dans TABLE_CONFIG se trouve toutes les configurations d'OGSpy (allez directement dans phpmyadmin pour voir ce qui peux vous intéresser), alors si vous souhaitez en lire une, utilisez simplement ça:
  
 <PHP> <PHP>
Ligne 293: Ligne 287:
  
  
-===== Utilisation des Paramètres =====+===== Utilisation des paramètres =====
  
 Des fonctionnalités ont été développées au sein d'OGspy pour faciliter la vie des Modders. Des fonctionnalités ont été développées au sein d'OGspy pour faciliter la vie des Modders.
Ligne 301: Ligne 295:
 ==== mod_set_option ==== ==== mod_set_option ====
  
-Permet d'ajouter un paramètre de configuration et sa valeur pour un mod donné+Permet d'ajouter un paramètre de configuration et sa valeur pour un mod donné.
 <PHP> <PHP>
-function mod_set_option ( $param, $value)  +/** 
- + @param string $param Nom du paramètre de configuration 
-@param string $param Nom du paramètre de configuration + @param string $value Valeur 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'enregistrement en base de données 
-@return boolean Retourne true/false selon le résultat de l'enregistrement en base de données+*/ 
 +function mod_set_option($param, $value) 
 </PHP> </PHP>
  
Ligne 315: Ligne 310:
 Permet d'effacer un paramètre de configuration pour un mod donné. Permet d'effacer un paramètre de configuration pour un mod donné.
 <PHP> <PHP>
-function mod_del_option ( $param ) +/** 
- + * @param string $param Nom du paramètre de configuration 
-* @param string $param Nom du paramètre de configuration + * @global $db 
-* @global $db + * @return boolean Retourne true/false selon le résultat de l'enregistrement en base de données 
-* @return boolean Retourne true/false selon le résultat de l'enregistrement en base de données+*/ 
 +function mod_del_option($param)
 </PHP> </PHP>
  
Ligne 325: Ligne 321:
 ==== mod_get_option ==== ==== mod_get_option ====
  
-Permet de lire la valeur d'un paramètre de configuration pour un mod donné+Permet de lire la valeur d'un paramètre de configuration pour un mod donné.
  
 <PHP> <PHP>
-function mod_get_option ( $param ) +/** 
- + * @param string $param Nom du paramètre de configuration 
-* @param string $param Nom du paramètre de configuration + * @global $db 
-* @global $db + * @return string Retourne la valeur du paramètre demandé 
-* @return string Retourne la valeur du paramètre demandé+*/ 
 +function mod_get_option($param)
 </PHP> </PHP>