Pour les Développeurs

Spécifications Techniques

Tout ce qu'il faut savoir sur l'architecture, le stack technologique et les prérequis de uwAdmin6.

Stack Technologique

Technologies fiables et éprouvées, zéro dépendances exotiques.

PHP 8.2+

  • OOP avec classes et namespaces
  • MySQLi avec prepared statements
  • Gestion de sessions sécurisée
  • Intervention Image 3.x

MySQL 8.0+

  • InnoDB avec foreign keys
  • UTF8MB4 full unicode
  • Index optimisés
  • Transactions ACID

Frontend Stack

  • Tailwind CSS 4.x
  • Alpine.js 3.x
  • Flowbite 4.x
  • jQuery 3.7 (compatibilité)

Rich Text Editor

  • TinyMCE 8.2
  • MoxieManager 8.2
  • Configuration multilingue
  • Plugins personnalisés

UI & Icons

  • Font Awesome Pro 7.1
  • Flag Icons (drapeaux)
  • SortableJS 1.15
  • Fancybox 3.5.7

Zéro Framework

  • Aucun Laravel/Symfony
  • Composer pour dépendances minimales
  • Déploiement via FTP/SFTP
  • Compatible hébergement mutualisé

Architecture

Pattern modulaire avec séparation des responsabilités et multilingue natif.

Pattern Modulaire

Chaque module suit une structure standardisée :

/uw-admin/admin/{modulo}/
├── index.php       # Lista con filtri
├── form.php        # Create/Edit
├── ajax/           # Operazioni async
│   ├── delete.php
│   ├── toggle-*.php
│   └── reorder.php
└── includes/       # Componenti riutilizzabili

24 modules implémentés avec ce pattern

Activation sélective par projet

Système Multilingue

Pattern polymorphique avec tables séparées :

# Tabella principale
news (id, data_pubblicazione, attivo)

# Tabella traduzioni
news_traduzioni (
  id, news_id, lingua_id,
  titolo, slug, contenuto,
  UNIQUE(news_id, lingua_id)
)

9 langues prises en charge nativement

URL SEO-friendly pour chaque langue : /it/news/titolo

Gestion des Médias

Un seul upload, 7 formats automatiques :

Format Dimensions Utilisation
s150pxThumbnail
m300pxCard
l600pxContent
xl1200pxHero
xxl1920pxFull HD
original-Backup
cropCustomRitaglio

Système RBAC

4 rôles avec permissions granulaires par module :

Rôle Read Write Delete Publish
Super Admin
Admin
Editor
Viewer

Gestion des Thèmes

Thème actif configurable depuis l'admin avec support du thème de développement :

Priorita risoluzione tema:
1. Tema sviluppo (se abilitato + IP/cookie)
2. Tema attivo (da database)
3. Fallback a 'default'

Override granulaire: personnalisez uniquement les fichiers nécessaires

Thème de développement: testez de nouveaux thèmes sans impacter les visiteurs

Autorisation: whitelist IP ou cookie secret

Récupération de Mot de Passe

Système complet avec email SMTP et token sécurisé :

Token: 64 char hex (random_bytes)
Scadenza: 1 ora
Anti-enumeration: messaggio generico
SMTP: PHPMailer con fallback mail()

Modale intégrée dans la page de connexion (Alpine.js)

8 préférences email configurables depuis l'admin

reCAPTCHA v3 optionnel pour l'anti-spam

RGPD & Consentement Cookies

Système intégré sans dépendances pour la conformité RGPD et ePrivacy :

Cookie Banner (2 livelli):
1. Barra fissa: Accetta | Rifiuta | Personalizza
2. Modal: toggle per categoria cookie

Blocco preventivo script:
- GA4 caricato SOLO dopo consenso
- Script custom bloccati fino ad accettazione
- reCAPTCHA classificato come tecnico

Cookie: uw_cookie_consent (base64 JSON, 365gg)
Policy: generate automaticamente IT/EN

18 préférences en base de données (10 confidentialité + 8 cookies)

Classes PHP: CookieConsent + PrivacyPolicy

Frontend: Alpine.js cookie-consent.js

Sécurité

Protection complète OWASP Top 10 et bonnes pratiques.

SQL Injection

100% prepared statements avec binding de paramètres via MySQLi.

$db->query($sql, [$id], 'i');

XSS Protection

Encodage de sortie avec htmlspecialchars() sur toutes les données utilisateur.

htmlspecialchars($data, ENT_QUOTES, 'UTF-8')

CSRF Protection

Token unique par session sur chaque formulaire POST.

<input type="hidden" name="csrf_token" value="...">

Password Security

Hachage avec PASSWORD_BCRYPT et cost factor 12.

password_hash($pwd, PASSWORD_BCRYPT, ['cost' => 12])

Rate Limiting

5 tentatives échouées → verrouillage 15 minutes. Anti brute-force.

max_attempts: 5, lockout: 900s

Session Fingerprint

Binding IP + User Agent. Régénération de l'ID après connexion.

session_regenerate_id(true);

reCAPTCHA v3

Protection anti-spam invisible avec validation score-based (0.0-1.0).

$recaptcha->isValid(null, 'login');
OWASP Top 10 2021 • RGPD Conforme • Piste d'Audit

Prérequis Hébergement

Compatible avec la plupart des fournisseurs d'hébergement.

Prérequis Minimaux

PHP 8.2+
MySQL 8.0+
Mémoire PHP 128 MB
Max Upload 32 MB
Espace Disque 500 MB+

Extensions PHP Requises

mysqli
mbstring
gd
json
session
curl
fileinfo
openssl

Optionnel : imagick pour le traitement avancé des images

Fournisseurs Compatibles

Aruba SiteGround Netsons OVH Serverplan VHosting DigitalOcean AWS

Intégrations

Services externes et API pris en charge.

OpenRouter

OpenRouter AI

Génération de contenus
  • Claude, GPT-4, Llama
  • Assistants spécialisés
  • Traductions automatiques

YouTube

Intégration vidéo
  • Embed responsive
  • Miniature automatique
  • Mode confidentialité avancé

Vimeo

Intégration vidéo
  • Embed responsive
  • Extraction des métadonnées
  • Lecteur personnalisé

Intervention Image

Traitement d'images
  • Redimensionnement automatique
  • Recadrage intelligent (cover)
  • Filigrane et rotation

PHPMailer

Envoi d'emails
  • SMTP authentifié
  • Emails HTML responsive
  • Pièces jointes et templates

Vous avez des questions techniques ?

Contactez-nous pour une consultation technique ou pour demander une démo personnalisée.