Fiche
Niveau de difficulté : | Avoir de très bonnes bases. |
---|---|
Recommandations : | Aide à la création de plugins. |
A lire aussi : | [Exemple] Faire son plugin personnel |
Le but recherché ici est d'ajouter un section ('categories' est une section par exemple) à la partie publique de la galerie. C'est le premier pas dans la création d'un plugin ajoutant des pages publiques à la galerie.
J'omets sur cette page quelques éléments nécessaire au fonctionnement du plugin, comme les infos dans le fichier main.inc.php où l'anti-hack sur toutes les pages (voir Aide à la création de plugins).
Avant de commencer vous devez choisir le nom de votre section, par exemple ma_section
Ce nom fera partie d'une URL, les espaces et les caractères spéciaux sont à proscrire, tout autant que les majuscules.
Le triger correspondant à l'analyse de l'URL est loc_end_section_init.
add_event_handler('loc_end_section_init', 'monplugin_section_init');
Ensuite chaque morceau de l'URL est contenu dans le tableau $tokens
function monplugin_section_init(){ global $tokens, $page; if($tokens[0] == 'ma_section'){ $page['section'] = 'ma_section'; $page['title'] = 'Ma super nouvelle section'; } }
Si on veut pouvoir avoir des sous-sections il faut récupérer le second token.
function monplugin_section_init(){ global $tokens, $page; if($tokens[0] == 'ma_section'){ $page['section'] = 'ma_section'; $page['title'] = 'Ma super nouvelle section'; if(isset($tokens[1]) AND $tokens[1]){ $page['sub_section'] = $tokens[1]; } } }
Ce coup-ci le triger est loc_end_index
add_event_handler('loc_end_index', 'monplugin_index'); function monplugin_index(){ global $template, $page, $conf; if(isset($page['section']) and $page['section'] == 'ma_section'){ include('monplugin.php'); } }
Vous pouvez aussi inclure des fichiers différents si une sous-section est spécifiée.
function monplugin_index(){ global $template, $page, $conf; if(isset($page['section']) and $page['section'] == 'ma_section'){ if(isset($page['sub_section'])){ include('monplugin_sub_section.php'); }else{ include('monplugin_global_section;php'); } } }
Il ne reste plus qu'à coder votre plugin dans les pages précédemment incluses et dans les fichier templates correspondants que vous appellerez avec
$template->set_filenames(array('index'=> dirname(__FILE__).'/template/xxxxx.tpl'));
à venir
à venir