lumo:creation_plugin_dokuwiki_namespacelogo:accueil
Ceci est une ancienne révision du document !
Création plugin Dokuwiki namespace_logo
plugin.info.txt
base namespacelogo author Votrenom email votre@email.com date 2026-03-16 name Namespace Logo desc Affiche un logo spécifique par namespace
action.php
<?php /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Votrenom */ class action_plugin_namespacelogo extends DokuWiki_Action_Plugin { /** * Enregistrer les hooks */ public function register(Doku_Event_Handler $controller) { // Intercepter le rendu de l'en-tête du template $controller->register_hook('TPL_HEADER_OUTPUT', 'BEFORE', $this, '_injectNamespaceLogo'); } /** * Injecter le logo du namespace dans l'en-tête */ public function _injectNamespaceLogo(Doku_Event $event, $param) { global $ID; // Récupérer le namespace actuel $ns = getNS($ID); // Si pas de namespace (racine), on utilise le logo global if (empty($ns)) { return; } // Chemin vers le logo dans le namespace $logoPath = ':' . $ns . ':logo.png'; // Vérifier si le fichier existe dans le Media Manager if (@media_exists($logoPath)) { // Générer l'URL de l'image $imgUrl = ml($logoPath); // Créer le HTML du logo $logoHtml = '<div class="ns-logo-container">' . '<img src="' . $imgUrl . '" ' . 'alt="Logo ' . hsc($ns) . '" ' . 'class="ns-logo" ' . 'id="namespace-logo" />' . '</div>'; // Ajouter à la variable globale que le template pourra utiliser $GLOBALS['NS_LOGO_HTML'] = $logoHtml; } } }
helper.php
<?php /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Votrenom */ class helper_plugin_namespacelogo extends DokuWiki_Plugin { /** * Obtenir le logo du namespace actuel * @return string|null HTML du logo ou null si aucun logo trouvé */ public function getNamespaceLogo() { global $ID; $ns = getNS($ID); if (empty($ns)) { return null; } $logoPath = ':' . $ns . ':logo.png'; if (@media_exists($logoPath)) { $imgUrl = ml($logoPath); return '<img src="' . $imgUrl . '" alt="Logo ' . hsc($ns) . '" class="ns-logo" />'; } return null; } /** * Vérifier si un logo existe pour un namespace donné * @param string $ns Namespace à vérifier * @return bool */ public function hasLogo($ns) { $logoPath = ':' . $ns . ':logo.png'; return @media_exists($logoPath); } }
lumo/creation_plugin_dokuwiki_namespacelogo/accueil.1773681753.txt.gz · Dernière modification : de estro
