Everything you need to know about the architecture, technology stack and requirements of uwAdmin6.
Reliable, proven technologies with zero exotic dependencies.
Modular pattern with separation of concerns and native multilingual support.
Each module follows a standardised structure:
/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 implemented with this pattern
Selective activation per project
Polymorphic pattern with separate tables:
# 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 languages natively supported
SEO-friendly URLs per language: /it/news/titolo
Single upload, 7 automatic formats:
| Format | Size | Usage |
|---|---|---|
s | 150px | Thumbnail |
m | 300px | Card |
l | 600px | Content |
xl | 1200px | Hero |
xxl | 1920px | Full HD |
original | - | Backup |
crop | Custom | Ritaglio |
4 roles with granular per-module permissions:
| Role | Read | Write | Delete | Publish |
|---|---|---|---|---|
| Super Admin | ||||
| Admin | ||||
| Editor | ||||
| Viewer |
Active theme configurable from admin with development theme support:
Priorita risoluzione tema:
1. Tema sviluppo (se abilitato + IP/cookie)
2. Tema attivo (da database)
3. Fallback a 'default'
Granular override: customise only the files you need
Development theme: test new themes without affecting visitors
Authorisation: IP whitelist or secret cookie
Complete system with SMTP email and secure token:
Token: 64 char hex (random_bytes)
Scadenza: 1 ora
Anti-enumeration: messaggio generico
SMTP: PHPMailer con fallback mail()
Built-in modal on the login page (Alpine.js)
8 email preferences configurable from admin
reCAPTCHA v3 optional for anti-spam
Zero-dependency built-in system for GDPR and ePrivacy compliance:
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 preferences in database (10 privacy + 8 cookie)
PHP Classes: CookieConsent + PrivacyPolicy
Frontend: Alpine.js cookie-consent.js
Full OWASP Top 10 protection and best practices.
100% prepared statements with parameter binding via MySQLi.
$db->query($sql, [$id], 'i');
Output encoding with htmlspecialchars() on all user data.
htmlspecialchars($data, ENT_QUOTES, 'UTF-8')
Unique per-session token on every POST form.
<input type="hidden" name="csrf_token" value="...">
Hashing with PASSWORD_BCRYPT and cost factor 12.
password_hash($pwd, PASSWORD_BCRYPT, ['cost' => 12])
5 failed attempts \u{2192} 15-minute lockout. Anti brute-force.
max_attempts: 5, lockout: 900s
IP + User Agent binding. ID regeneration post-login.
session_regenerate_id(true);
Invisible anti-spam protection with score-based validation (0.0-1.0).
$recaptcha->isValid(null, 'login');
Compatible with most hosting providers.
Optional: imagick for advanced image processing
Supported external services and APIs.
Get in touch for a technical consultation or to request a personalised demo.
This website uses technical cookies and, with your consent, analytics cookies to improve your experience. Cookie Policy
Essential for the website to function. They cannot be disabled.
Help us understand how visitors interact with the website by collecting information anonymously.