Créer un module : Différence entre versions
Sauter à la navigation
Sauter à la recherche
Ligne 40 : | Ligne 40 : | ||
<?php | <?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")) { | 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=""; | ||
− | //-- | + | //-- 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"); | ||
− | //' | + | //'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 | ||
{ | { | ||
Ligne 79 : | Ligne 80 : | ||
$menu->addSubmenu($submenu); | $menu->addSubmenu($submenu); | ||
} | } | ||
− | // | + | //Des options complémentaires peuvent être ajoutées au sous-menu en répétant le code |
+ | ci-dessus | ||
return $menu; | return $menu; |
Version du 25 mars 2008 à 08:05
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.
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; } } ?>