La page doit être déclarée dans le fichier _admin.php
du plugin :
if (!defined('DC_CONTEXT_ADMIN')) {return;} global $core; # ajouter le plugin dans la liste des plugins du menu de l'administration $_menu['Plugins']->addItem( # nom du lien (en anglais) __('Example'), # URL de base de la page d'administration 'plugin.php?p=example', # URL de l'image utilisée comme icône 'index.php?pf=example/icon.png', # expression régulière de l'URL de la page d'administration preg_match('/plugin.php\?p=example(&.*)?$/', $_SERVER['REQUEST_URI']), # persmissions nécessaires pour afficher le lien $core->auth->check('usage,contentadmin',$core->blog->id));
Important :
Dans le code ci-dessus, remplacezexample
par le nom du répertoire du plugin. L'icône doit mesurer environ 16×16 pixels, vous pouvez en trouver une dans le pack Silk Icons.
Un lien vers la page d'administration apparaît dans le sous-menu Extensions de la page d'administration :
Astuce :
Outre le fait que le plugin dispose de permissions générales dans le fichier _define.php, il peut être parfois nécessaire de restreindre l'accès à la page de configuration à quelques utilisateurs. Pour cela, il suffit d'ajouter en début de fichier après la ligneif (!defined('DC_CONTEXT_ADMIN')) {return;}
if (!$core->auth->isSuperAdmin()) {return;}
Il est bien sur possible d'adapter ce code à la prise en compte de permission particulière avec la fonction check()
de la classe dcAuth
Voici la structure de base du fichier index.php
, notez que la balise <html>
n'a aucun attribut, c'est Dotclear qui les ajoute lors de l'affichage.
<?php # insérer du code PHP ici ?> <html> <head> <title><?php echo(__('Example')); ?></title> </head> <body> <h2><?php echo html::escapeHTML($core->blog->name).' › '. __('Example'); ?></h2> <?php echo(__('Hello World!')); ?> </body> </html>
Voici le résultat :
Le plugin suivant montre quelques exemples d'utilisation de codes décrits dans cette documentation :