Créer un module : Différence entre versions

De PGVWiki
Sauter à la navigation Sauter à la recherche
(Nouvelle page : == Modules File Structure == modules (dir) | +--your_module (dir) | | | +--languages (dir) | | +--ym_lang.en.php | | | +--images (dir) | | +--icon.gif | | | +--...)
 
 
(5 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
== Modules File Structure ==
+
== Structure de fichiers du module ==
  
 
  modules (dir)
 
  modules (dir)
Ligne 22 : Ligne 22 :
  
 
=== /modules/your_module.php ===
 
=== /modules/your_module.php ===
Copy the following code into your file and save it:
+
Copiez le code suivant dans votre fichier et sauvegardez-le:
  
 
  <?php exit; ?>
 
  <?php exit; ?>
Ligne 28 : Ligne 28 :
 
  type = PGV_MOD_OO
 
  type = PGV_MOD_OO
  
As far as I can tell, this will tell PGV that your module is a PGV module.
+
Ce code signifiera à PGV que votre module est un module de PGV.
  
  
Ligne 35 : Ligne 35 :
  
  
=== /modules/your_module/menu.php ===
+
=== /modules/votre_module/menu.php ===
Replace instances of your_module with your module's name and ym with the initials for your module
+
Remplacez les instances de votre_module par le nom de votre module et remplacez ym par les initiales de votre module
  
 
  <?php
 
  <?php
 
   
 
   
  //-- security check, only allow access from module.php. Include this code in each of your module files
+
  //-- vérifications de sécurité, l'accès n'est autorisé que pour le module.php. Incluez ce code dans
 +
chacun des fichiers de votre module
 
  if (strstr($_SERVER["SCRIPT_NAME"],"menu.php")) {
 
  if (strstr($_SERVER["SCRIPT_NAME"],"menu.php")) {
 
     print "Now, why would you want to do that.  You're not hacking are you?";
 
     print "Now, why would you want to do that.  You're not hacking are you?";
Ligne 65 : Ligne 66 :
 
       if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
 
       if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
 
   
 
   
       //-- main menu item - this uses the icon as the Welcome Page menu
+
       //-- rubrique du menu principal - utilise l'icône en tant que menu de la page d'accueil
 
       $menu = new Menu($pgv_lang["your_module"], "module.php?mod=your_module", "down");
 
       $menu = new Menu($pgv_lang["your_module"], "module.php?mod=your_module", "down");
 
       if (!empty($PGV_IMAGES["gedcom"]["large"]))
 
       if (!empty($PGV_IMAGES["gedcom"]["large"]))
Ligne 71 : Ligne 72 :
 
       $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff");
 
       $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff");
 
      
 
      
       //'First Task' ddl menu item //this is the first sub menu option
+
       //'Première tâche' ddl menu item //il s'agit de la première option du sous-menu
       if (getUserAccessLevel(getUserName())<= $SHOW_FIRST_OPTION)//set $SHOW_FIRST_OPTION is set in ym_privacy.php
+
       if (getUserAccessLevel(getUserName())<= $SHOW_FIRST_OPTION)//set $SHOW_FIRST_OPTION is set in
 +
ym_privacy.php
 
         {
 
         {
 
             $submenu= new Menu($pgv_lang["first_option"], "module.php?mod=your_module&amp;action=firstop");
 
             $submenu= new Menu($pgv_lang["first_option"], "module.php?mod=your_module&amp;action=firstop");
Ligne 79 : Ligne 81 :
 
             $menu->addSubmenu($submenu);
 
             $menu->addSubmenu($submenu);
 
         }
 
         }
           //Additional sub menu options can be added by repeating the code above
+
           //Des options complémentaires peuvent être ajoutées au sous-menu en répétant le code
 +
ci-dessus
 
            
 
            
 
           return $menu;
 
           return $menu;
Ligne 90 : Ligne 93 :
  
 
<!-- Category links...DO NOT DELETE -->
 
<!-- Category links...DO NOT DELETE -->
[[Category:Developers Guide]]
+
[[Category:Guide du développeur]]
 
[[Category:phpGedView]]
 
[[Category:phpGedView]]
  
 
[[en:Creating a Module]]
 
[[en:Creating a Module]]

Version actuelle datée du 25 mars 2008 à 09:19

Structure de fichiers du module

modules (dir)
|
+--your_module (dir)
|  |
|  +--languages (dir)
|  |  +--ym_lang.en.php
|  |
|  +--images (dir)
|  |  +--icon.gif
|  |
|  +--your_module.php
|  +--menu.php
|  +--ym_privacy.php
|  +--ym_functions.php
|
+--your_module.php


/modules/your_module.php

Copiez le code suivant dans votre fichier et sauvegardez-le:

<?php exit; ?>
[Module]
type = PGV_MOD_OO

Ce code signifiera à PGV que votre module est un module de PGV.




/modules/votre_module/menu.php

Remplacez les instances de votre_module par le nom de votre module et remplacez ym par les initiales de votre module

<?php

//-- vérifications de sécurité, l'accès n'est autorisé que pour le module.php. Incluez ce code dans
chacun des fichiers de votre module
if (strstr($_SERVER["SCRIPT_NAME"],"menu.php")) {
   print "Now, why would you want to do that.  You're not hacking are you?";
   exit;
}

class your_module_ModuleMenu {
   /**  
     * get the Your Module menu
     * @return Menu 	the menu item
     */
  function &getMenu() {
      global $TEXT_DIRECTION, $PGV_IMAGE_DIR, $PGV_IMAGES, $GEDCOM, $pgv_lang;
      global $PRIV_USER, $PRIV_PUBLIC;

      include('ym_privacy.php');

      if (!file_exists("modules/your_module.php")) return null;
      if ($PRIV_USER<getUserAccessLevel()) return null;  

      if (!file_exists('modules/your_module/languages/ym_lang.en.php')) return null;

      require_once 'modules/your_module/languages/ym_lang.en.php';
      if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";

      //-- rubrique du menu principal - utilise l'icône en tant que menu de la page d'accueil
      $menu = new Menu($pgv_lang["your_module"], "module.php?mod=your_module", "down");
      if (!empty($PGV_IMAGES["gedcom"]["large"]))
      $menu->addIcon($PGV_IMAGE_DIR."/".$PGV_IMAGES["gedcom"]["large"]);
      $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff");
   
      //'Première tâche' ddl menu item //il s'agit de la première option du sous-menu
      if (getUserAccessLevel(getUserName())<= $SHOW_FIRST_OPTION)//set $SHOW_FIRST_OPTION is set in
ym_privacy.php
       {
           $submenu= new Menu($pgv_lang["first_option"], "module.php?mod=your_module&action=firstop");
           $submenu->addIcon('modules/your_module/images/icon.gif');
           $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff");
           $menu->addSubmenu($submenu);
        }
          //Des options complémentaires peuvent être ajoutées au sous-menu en répétant le code
ci-dessus 
          
         return $menu;
        }
}
?>