GCweb à été prévu pour que ses fonctionnalité puisse être étendue à l'aide de plugins.
Ces plugins doivent être placer dans le répertoires “plugins”. Les fichiers commençant par un prefix “render”, “item”, “bdd”, “aftercache” et “config” s'installeront automatique1). En fonction du prefix les fichier seront inclus (via un include) à différent endroit dans le code de GCstar.
render_<nom_plugin>.php
$_GET
dans l'url.Exemples :
A partir de GCweb svn#220 / v1.1 ces plugins peuvent/pourront ajouter des balises dans l'entêre de la page (entre <head>
et </head>
). Pour cella complétez le tableau $info['array_add_header']
.
Exemples :
$info['array_add_header'][] = '<link rel="stylesheet" href="plugins/mon_plugin/style.css" type="text/css" media="screen" />';
item_<nom_plugin>.php
Exemples :
A partir de GCweb svn#220 / v1.1 ces plugins peuvent/pourront ajouter du code html dans l'ensemble des pages (en complétant le tableau $item['array_add_to_all_pages']
) ou uniquement sur la page de détail (en complétant le tableau $item['array_add_to_page_detail']
).
Exemples :
$item['array_add_to_all_pages'][] = 'Un text à afficher sur <strong>toutes les pages</strong>'; $item['array_add_to_page_detail'][] = 'Un text à afficher sur <strong>la page de détail</strong>';
bdd_<nom_plugin>.php
aftercache_<nom_plugin>.php
config_<nom_plugin>.php
S'inclue dans la page de configuration de GCweb pour permettre la configuration du plugin.
$checkUserPasswd == True
. Les entrés utilisateur peuvent être vérifiée avec checktype($_POST['<champs>'],'<type>')
.<nom_plugin>_<champs>
. Les fonctions d'écriture de champs de formulaire (ex : input_type_texte('nom_champs','label champs','valeur_par_défaut')
peuvent être utilisé.Principe de ces pages :
<?php if ($checkUserPasswd) { //Ecriture du fichier de config $fp = fopen(PATH_GCWEB.'/conf/plugin_machin.php','w'); fwrite($fp, "<?php $config_plugin_machin = array ( 'option1' => ".checktype($_POST['machin_option1'],'string').", 'option2' => ".checktype($_POST['machin_option2'],'boolean')." );\n?> "); fclose($fp); } include PATH_GCWEB.'/conf/plugin_machin.php'; echo ' <fieldset><legend>Plugin machin</legend> '.input_type_texte('machin_option1','Première option',$config_plugin_machin['option1']).' '.input_checkbox('machin_option2','Activé l\'option 2',$config_plugin_machin['option2']).' </fieldset>'; ?>