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

<?php

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;
      }
  }

}

action.php

 
lumo/creation_plugin_dokuwiki_namespacelogo/accueil.1773681376.txt.gz · Dernière modification : de estro

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki