Files
wevads-platform/docs/SIDEBAR_MANAGEMENT.md
2026-02-26 04:53:11 +01:00

7.2 KiB

SIDEBAR MANAGEMENT - WEVADS SYSTEM

Documentation complète pour gérer la sidebar sans galère

🏗️ ARCHITECTURE SIDEBAR

Fichiers clés

/opt/wevads/public/includes/sidebar.php  ← FICHIER PRINCIPAL SIDEBAR
/opt/wevads/public/dashboard.php         ← Page principale
/opt/wevads/public/control-hub.php       ← Control Hub
/opt/wevads/public/*.php                 ← Autres pages

Comment ça fonctionne

  1. sidebar.php contient TOUT le menu (HTML + CSS + JS)
  2. Les pages PHP doivent INCLURE sidebar.php pour l'afficher
  3. Inclusion : <?php include("includes/sidebar.php"); ?>

🎯 RÈGLE D'OR

TOUJOURS MODIFIER sidebar.php, JAMAIS les pages individuelles !

📋 STRUCTURE ACTUELLE

/opt/wevads/public/includes/sidebar.php
 Dashboard
 Control Hub  
 Warning Config
 NRN Automation
 WEVAL Mind IA
   ├── Hub IA
   ├── Chat IA
   ├── CLI Web
   └── ...
 Brain (NOUVEAU)
   ├── Warning Config
   ├── Process Supervision
   ├── IA Routines Monitor   DASHBOARD ROUTINES
   └── Cloud Health
 DELIVERADS
 Production

PROCÉDURE STANDARD - AJOUTER UN MENU

Étape 1: Localiser le fichier

FILE="/opt/wevads/public/includes/sidebar.php"

Étape 2: Backup OBLIGATOIRE

cp "$FILE" "${FILE}.backup_$(date +%s)"

Étape 3: Structure d'un menu simple

<li class="nav-item">
    <a class="nav-link" href="/votre-page.php">
        <i class="fas fa-icon-name"></i>
        <span>Nom Menu</span>
    </a>
</li>

Étape 4: Structure d'un menu avec sous-menus

<li class="nav-item has-submenu">
    <a class="nav-link" href="#menuId" data-toggle="collapse">
        <i class="fas fa-brain"></i>
        <span>Menu Parent</span>
        <i class="fas fa-chevron-down submenu-arrow"></i>
    </a>
    <ul class="collapse submenu" id="menuId">
        <li>
            <a href="/page1.php">
                <i class="fas fa-icon"></i>
                Sous-menu 1
            </a>
        </li>
        <li>
            <a href="/page2.php">
                <i class="fas fa-icon"></i>
                Sous-menu 2
            </a>
        </li>
    </ul>
</li>

Étape 5: Insertion avec sed

# Après un menu existant (ex: après NRN Automation)
sed -i '/NRN Automation/a\
        <li class="nav-item">\
            <a class="nav-link" href="/nouveau-menu.php">\
                <i class="fas fa-star"></i>\
                <span>Nouveau Menu</span>\
            </a>\
        </li>' "$FILE"

🔧 INCLUSION DANS LES PAGES

Pages qui DOIVENT inclure sidebar.php

  • dashboard.php
  • control-hub.php
  • Toutes pages principales

Méthode d'inclusion (DÉBUT du fichier PHP)

<?php include("includes/sidebar.php"); ?>

Vérifier inclusion

grep -l "sidebar.php" /opt/wevads/public/*.php

Ajouter inclusion automatiquement

# Dans dashboard.php
sed -i '1i <?php include("includes/sidebar.php"); ?>' /opt/wevads/public/dashboard.php

🚨 PROBLÈMES COURANTS

Problème 1: Menu non visible

Cause: sidebar.php non inclus dans la page Solution:

echo '<?php include("includes/sidebar.php"); ?>' > /tmp/include.txt
sed -i '1r /tmp/include.txt' /opt/wevads/public/votre-page.php

Problème 2: Menu existe mais pas affiché

Cause: Cache navigateur Solution: CTRL + SHIFT + R (force refresh)

Problème 3: Erreur PHP

Cause: Chemin include incorrect Solution: Utiliser chemin relatif includes/sidebar.php

Problème 4: CSS cassé

Cause: Styles manquants dans sidebar.php Solution: Vérifier balise <style> dans sidebar.php

📊 COMMANDES DE DIAGNOSTIC

Vérifier sidebar.php existe

ls -lah /opt/wevads/public/includes/sidebar.php

Voir structure menu Brain

grep -A 20 "Brain" /opt/wevads/public/includes/sidebar.php

Lister pages qui incluent sidebar

grep -r "sidebar.php" /opt/wevads/public --include="*.php"

Tester inclusion

php -l /opt/wevads/public/includes/sidebar.php

🎨 ICÔNES FONTAWESOME DISPONIBLES

fa-brain          → Cerveau
fa-robot          → Robot
fa-cloud          → Cloud
fa-server         → Serveur
fa-tasks          → Tâches
fa-chart-line     → Graphique
fa-cog            → Paramètres
fa-exclamation    → Alerte
fa-shield-alt     → Sécurité
fa-database       → Base de données

🔄 WORKFLOW COMPLET

# 1. Backup
cp /opt/wevads/public/includes/sidebar.php /opt/wevads/public/includes/sidebar.php.backup

# 2. Éditer (exemple: ajouter "Test Menu")
sed -i '/Brain Menu/a\
        <li class="nav-item">\
            <a class="nav-link" href="/test.php">\
                <i class="fas fa-star"></i>\
                <span>Test Menu</span>\
            </a>\
        </li>' /opt/wevads/public/includes/sidebar.php

# 3. Vérifier
grep -A 5 "Test Menu" /opt/wevads/public/includes/sidebar.php

# 4. Assurer inclusion dans dashboard
grep -q "sidebar.php" /opt/wevads/public/dashboard.php || \
sed -i '1i <?php include("includes/sidebar.php"); ?>' /opt/wevads/public/dashboard.php

# 5. Permissions
chown www-data:www-data /opt/wevads/public/includes/sidebar.php
chmod 644 /opt/wevads/public/includes/sidebar.php

# 6. Restart Apache
systemctl restart apache2

# 7. Tester
curl -I http://localhost:5821/dashboard.php

📝 TEMPLATE MENU COMPLET

<!-- Mon Nouveau Menu -->
<li class="nav-item has-submenu">
    <a class="nav-link" href="#monMenu" data-toggle="collapse">
        <i class="fas fa-star"></i>
        <span>Mon Menu</span>
        <i class="fas fa-chevron-down submenu-arrow"></i>
    </a>
    <ul class="collapse submenu" id="monMenu">
        <li>
            <a href="/page1.php">
                <i class="fas fa-circle"></i>
                Page 1
            </a>
        </li>
        <li>
            <a href="/page2.php">
                <i class="fas fa-circle"></i>
                Page 2
            </a>
        </li>
    </ul>
</li>

🎯 CHECKLIST AVANT MODIFICATION

  • Backup sidebar.php créé
  • Structure HTML valide
  • IDs uniques pour collapse
  • Icônes FontAwesome valides
  • Chemins pages corrects
  • Permissions correctes (644)
  • Apache redémarré
  • Cache navigateur vidé

💡 ASTUCES

  1. Toujours faire backup avant modification
  2. Tester sur une copie d'abord
  3. Utiliser sed pour modifications automatiques
  4. Vérifier syntaxe avec grep après insertion
  5. Restart Apache après chaque modification
  6. CTRL+SHIFT+R dans navigateur

🆘 EN CAS DE PROBLÈME

Restaurer backup

cp /opt/wevads/public/includes/sidebar.php.backup /opt/wevads/public/includes/sidebar.php
systemctl restart apache2

Reset complet

# Restaurer depuis backup le plus récent
LATEST=$(ls -t /opt/wevads/public/includes/sidebar.php.backup* | head -1)
cp "$LATEST" /opt/wevads/public/includes/sidebar.php
systemctl restart apache2

📞 AIDE RAPIDE

# Info système
/opt/wevads/scripts/sidebar_manager.sh info

# Ajouter menu
/opt/wevads/scripts/sidebar_manager.sh add "Nom|URL|Icon|Parent"

# Fixer inclusion
/opt/wevads/scripts/sidebar_manager.sh fix

# Vérifier config
/opt/wevads/scripts/sidebar_manager.sh verify