Outils pour utilisateurs

Outils du site


lumo:creation_complete_du_plugin_dokuwiki

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
lumo:creation_complete_du_plugin_dokuwiki [2026/03/12 10:24] estrolumo:creation_complete_du_plugin_dokuwiki [2026/03/12 10:45] (Version actuelle) – supprimée estro
Ligne 1: Ligne 1:
-====== Création complète du plugin DokuWiki ====== 
-[[./|retour]] 
----- 
-===== Structure du Plugin ===== 
-<code> 
-/lib/plugins/bashexec/ 
-├── action.php          # Gestion des actions et appels 
-├── syntax.php          # Syntaxe pour l'insertion dans les pages 
-├── helper.php          # Fonctions utilitaires 
-├── script.sh           # Votre script bash (optionnel) 
-└── manifest.ini        # Métadonnées du plugin 
-</code> 
-<adm note 1. manifest.ini> 
-<code ini> 
-[plugin] 
-name=Bash Exec Plugin 
-desc=Exécute des scripts bash avec validation sécurisée 
-author=Votre Nom 
-email=votre@email.com 
-url=https://votre-site.com 
-date=2026-03-12 
-version=1.0.0 
-</code> 
-</adm> 
-<adm danger 2. helper.php (Fonctions utilitaires)> 
-<code php> 
-<?php 
-/** 
- * Helper class for Bash Exec Plugin 
- */ 
-class helper_plugin_bashexec extends DokuWiki_Plugin { 
-     
-    /** 
-     * Validation stricte des arguments 
-     */ 
-    public function validateArgument($arg) { 
-        // Autorise uniquement alphanumérique, tirets et underscores 
-        if (!preg_match('/^[a-zA-Z0-9_-]{1,50}$/', $arg)) { 
-            return false; 
-        } 
-        return true; 
-    } 
-     
-    /** 
-     * Validation du chemin du script 
-     */ 
-    public function validateScriptPath($path) { 
-        $allowedPaths = array( 
-            DOKU_PLUGIN . 'bashexec/scripts/', 
-            '/usr/local/bin/' 
-        ); 
-         
-        foreach ($allowedPaths as $allowed) { 
-            if (strpos($path, $allowed) === 0) { 
-                return true; 
-            } 
-        } 
-        return false; 
-    } 
-     
-    /** 
-     * Journalisation des exécutions 
-     */ 
-    public function logExecution($script, $args, $returnCode, $user) { 
-        $logFile = DOKU_LOG . '/bashexec.log'; 
-        $timestamp = date('Y-m-d H:i:s'); 
-        $entry = sprintf( 
-            "[%s] User: %s | Script: %s | Args: %s | Return: %d\n", 
-            $timestamp, 
-            $user, 
-            basename($script), 
-            implode(' ', $args), 
-            $returnCode 
-        ); 
-        file_put_contents($logFile, $entry, FILE_APPEND); 
-    } 
-     
-    /** 
-     * Vérification des permissions 
-     */ 
-    public function checkPermissions() { 
-        global $USERINFO; 
-         
-        // Vérifie si l'utilisateur est connecté 
-        if (!isset($USERINFO['name'])) { 
-            return false; 
-        } 
-         
-        // Optionnel : Restreindre à certains groupes 
-        $allowedGroups = $this->getConf('allowed_groups'); 
-        if ($allowedGroups) { 
-            $userGroups = explode(',', $allowedGroups); 
-            foreach ($userGroups as $group) { 
-                if (in_array(trim($group), $USERINFO['groups'])) { 
-                    return true; 
-                } 
-            } 
-            return false; 
-        } 
-         
-        return true; 
-    } 
-} 
-</code> 
-</adm> 
  
lumo/creation_complete_du_plugin_dokuwiki.1773311077.txt.gz · Dernière modification : de estro

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki