Outils pour utilisateurs

Outils du site


lumo:creation_plugin_dokuwiki_namespacelogo:accueil

Ceci est une ancienne révision du document !


Création plugin Dokuwiki namespace_logo


retour

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;
        }
    }
}
lumo/creation_plugin_dokuwiki_namespacelogo/accueil.1773681491.txt.gz · Dernière modification : de estro

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki