====== Exemple d'une page avec des onglets et un formulaire pour enregistrer des paramètres ====== Nous allons utiliser des [[.:tabs|onglets]], un [[.:forms|formulaire]] et des [[..:settings|paramètres]] pour réaliser une page d'administration. ===== L'affichage XHTML ===== On utilise une [[.:forms#case-a-cocher|case à cocher]] pour le paramètre ''example_active'' :

On l'insère dans un formulaire et dans un onglet dont l'identifiant est ''settings'' :

formNonce(); ?>

''$settings->example_active'' permet de cocher ou non la case lors de l'affichage de la page. Pour pouvoir afficher un message de confirmation, on doit placer ce code dans la balise '' '', sous le ''

'' par exemple : '.$msg.'

';} ?>
Voici le code XHTML complet : <?php echo(__('Example')); ?>

blog->name).' › '. __('Example'); ?>

'.$msg.'

';} ?>

formNonce(); ?>

===== Le traitement par PHP ===== On va placer au début du fichier ''index.php'' le code PHP dont on a besoin. Pour éviter d'écrire $core->blog->settings plusieurs fois, on va créer un //raccourci// : la valeur ''$settings'' : $settings =& $core->blog->settings; $settings->setNameSpace('example'); On enregistre le paramètre ''example_active'' : $settings->put('example_active', !empty($_POST['example_active']), 'boolean','Enable Example'); Ensuite on redirige le navigateur vers la page d'administration, en ajoutant un paramètre ''$_GET'' à l'URL qui servira à afficher un message de confirmation. http::redirect($p_url.'&tab=settings&saveconfig=1'); Pour enregistrer les paramètres seulement quand le formulaire a été envoyé, on utilise ce code : if (!empty($_POST['saveconfig'])) { ... } Voici le bloc d'instruction en entier : if (!empty($_POST['saveconfig'])) { $settings->put('example_active', !empty($_POST['example_active']), 'boolean','Enable Example'); # redirect to the page, avoid conflicts with old settings http::redirect($p_url.'&tab=settings&saveconfig=1'); } Enfin, on définit le message de confirmation : if (isset($_GET['saveconfig'])) { $msg = __('Configuration successfully updated.'); } Voici le code PHP qu'on a utilisé : blog->settings; $settings->setNameSpace('example'); if (!empty($_POST['saveconfig'])) { $settings->put('example_active', !empty($_POST['example_active']), 'boolean','Enable Example'); # redirect to the page, avoid conflicts with old settings http::redirect($p_url.'&tab=settings&saveconfig=1'); } if (isset($_GET['saveconfig'])) { $msg = __('Configuration successfully updated.'); } ?> ===== Résultat et code complet ===== {{:2.0:resources:plugins:admin:example:example.png|}} blog->settings; $settings->setNameSpace('example'); if (!empty($_POST['saveconfig'])) { $settings->put('example_active', !empty($_POST['example_active']), 'boolean','Enable Example'); # redirect to the page, avoid conflicts with old settings http::redirect($p_url.'&tab=settings&saveconfig=1'); } if (isset($_GET['saveconfig'])) { $msg = __('Configuration successfully updated.'); } ?> <?php echo(__('Example')); ?>

blog->name).' › '. __('Example'); ?>

'.$msg.'

';} ?>

formNonce(); ?>

===== Télécharger un plugin exemple ===== [[http://lab.dotclear.org/raw-attachment/wiki/plugin/adminExample/plugin-adminExample.zip|plugin-adminExample.zip]]