Per Sviluppatori

Specifiche Tecniche

Tutto quello che serve sapere sull'architettura, lo stack tecnologico e i requisiti di uwAdmin6.

Stack Tecnologico

Tecnologie affidabili e comprovate, zero dipendenze esotiche.

PHP 8.2+

  • OOP con classi e namespace
  • MySQLi con prepared statements
  • Session management sicuro
  • Intervention Image 3.x

MySQL 8.0+

  • InnoDB con foreign keys
  • UTF8MB4 full unicode
  • Indici ottimizzati
  • Transazioni 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
  • Configurazione multilingua
  • Plugin personalizzati

UI & Icons

  • Font Awesome Pro 7.2
  • Flag Icons (bandiere)
  • SortableJS 1.15
  • Fancybox 3.5.7

Zero Framework

  • Nessun Laravel/Symfony
  • Composer per dipendenze minime
  • Deploy via FTP/SFTP
  • Shared hosting compatibile

Architettura

Pattern modulare con separazione dei concern e multilingua nativo.

Pattern Modulare

Ogni modulo segue una struttura standardizzata:

/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 moduli implementati con questo pattern

Attivazione selettiva per ogni progetto

Sistema Multilingua

Pattern polymorphic con tabelle separate:

# 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 lingue supportate nativamente

URL SEO-friendly per ogni lingua: /it/news/titolo

Gestione Media

Upload singolo, 7 formati automatici:

Formato Dimensione Uso
s150pxThumbnail
m300pxCard
l600pxContent
xl1200pxHero
xxl1920pxFull HD
original-Backup
cropCustomRitaglio

Sistema RBAC

4 ruoli con permessi granulari per modulo:

Ruolo Read Write Delete Publish
Super Admin
Admin
Editor
Viewer

Gestione Temi

Tema attivo configurabile da admin con supporto tema sviluppo:

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

Override granulare: personalizza solo i file necessari

Tema sviluppo: test nuovi temi senza impattare i visitatori

Autorizzazione: whitelist IP o cookie segreto

Recupero Password

Sistema completo con email SMTP e token sicuro:

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

Modale integrato nella pagina login (Alpine.js)

8 preferenze email configurabili da admin

reCAPTCHA v3 opzionale per anti-spam

GDPR & Cookie Consent

Sistema built-in zero dipendenze per compliance GDPR e 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 preferenze database (10 privacy + 8 cookie)

Classi PHP: CookieConsent + PrivacyPolicy

Frontend: Alpine.js cookie-consent.js

Sicurezza

Protezione completa OWASP Top 10 e best practices.

SQL Injection

100% prepared statements con binding parametri via MySQLi.

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

XSS Protection

Output encoding con htmlspecialchars() su tutti i dati utente.

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

CSRF Protection

Token univoco per sessione su ogni form POST.

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

Password Security

Hashing con PASSWORD_BCRYPT e cost factor 12.

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

Rate Limiting

5 tentativi falliti → lockout 15 minuti. Anti brute-force.

max_attempts: 5, lockout: 900s

Session Fingerprint

Binding IP + User Agent. Rigenerazione ID post-login.

session_regenerate_id(true);

reCAPTCHA v3

Protezione anti-spam invisibile con validazione score-based (0.0-1.0).

$recaptcha->isValid(null, 'login');
OWASP Top 10 2021 • GDPR Compliant • Audit Trail

Requisiti Hosting

Compatibile con la maggior parte dei provider di hosting.

Requisiti Minimi

PHP 8.2+
MySQL 8.0+
Memoria PHP 128 MB
Max Upload 32 MB
Spazio Disco 500 MB+

Estensioni PHP Richieste

mysqli
mbstring
gd
json
session
curl
fileinfo
openssl

Opzionale: imagick per elaborazione immagini avanzata

Provider Compatibili

Aruba SiteGround Netsons OVH Serverplan VHosting DigitalOcean AWS

Integrazioni

Servizi esterni e API supportate.

OpenRouter

OpenRouter AI

Generazione contenuti
  • Claude, GPT-4, Llama
  • Assistenti specializzati
  • Traduzioni automatiche

YouTube

Video embed
  • Embed responsivo
  • Thumbnail automatico
  • Privacy-enhanced mode

Vimeo

Video embed
  • Embed responsivo
  • Estrazione metadata
  • Player personalizzato

Intervention Image

Image processing
  • Ridimensionamento automatico
  • Crop intelligente (cover)
  • Watermark e rotazione

PHPMailer

Invio email
  • SMTP autenticato
  • Email HTML responsive
  • Allegati e template
AI-ready

REST API & Connetti AI

Una REST API in stile WordPress che trasforma il CMS in un endpoint "AI-ready": gestisci i contenuti conversando con un assistente AI (Claude, ChatGPT, Gemini…), tramite standard aperti.

Il motore — REST API

Dentro il CMS (PHP): riceve richieste HTTP+JSON e agisce sui contenuti. Circa 19 risorse/moduli coperti.

Il traduttore — Bridge MCP

Un pacchetto npm che collega gli assistenti AI all'API. È self-documenting: scopre da solo le funzioni disponibili.

Il cruscotto — Connetti AI

Pagina admin che genera le chiavi e fornisce le istruzioni copia-incolla per ogni assistente.

MCP (Model Context Protocol) e OpenAPI 3.0. L'architettura è AI-agnostica per design: nessun vendor lock-in, e continuerà a funzionare con i modelli futuri senza riacquistare nulla.

Cosa offre

Application Passwords

Chiavi dedicate per ogni app collegata, mostrate una sola volta e revocabili, con i permessi del singolo utente.

Permessi granulari (scope)

Ogni chiave può essere limitata a singoli moduli o azioni.

Bozze AI

I contenuti creati dall'AI restano invisibili al pubblico finché non vengono pubblicati a mano.

Modifiche non distruttive

Le modifiche AI su contenuti pubblicati restano online, vengono segnalate e sono annullabili (ripristino del testo precedente).

Audit log

Chi, cosa, quando, da quale app/IP — tutto visibile in un pannello dedicato.

Rate limit

Tetto di richieste orarie configurabile per ogni chiave, contro gli abusi.

Multilingua

Payload con traduzioni per lingua (it/en/…), coerente con il CMS.

Upload immagini

Caricamento foto in galleria con generazione automatica dei formati.

Riordino contenuti

Posizionamento degli elementi via AI, come il drag-and-drop del pannello.

Estensibilità

Un nuovo modulo all'API = una sola classe; appare in automatico tra gli strumenti dell'AI.

Esempi: cosa puoi scrivere all'assistente

Frasi in linguaggio naturale che diventano contenuti nel CMS, pronti da rivedere.

“Pubblica una news intitolata "Concerto di sabato" con questo testo e questa foto.”
“Aggiorna la biografia in inglese aggiungendo l'ultimo premio ricevuto.”
“Crea l'evento del 20 giugno alle 21:00 al Teatro Comunale.”
“Carica queste 8 foto nella galleria del concerto e mettile in quest'ordine.”
“Sposta in cima la rassegna stampa del Corriere.”

Perché è diverso da WordPress + plugin AI

Aspetto WordPress + plugin AI uwAdmin6 REST API
Multi-AI Plugin separati per singolo vendor, frammentati Un'unica API, standard aperti, AI-agnostica
Sicurezza pubblicazione Variabile a seconda del plugin Bozze AI native: niente va online senza ok umano
Modifiche su contenuti live Rischio di sovrascrittura Non distruttive + ripristino del testo precedente
Tracciabilità Dipende dal plugin Audit log integrato nel CMS
Nuovi tipi di contenuto Dipende dal plugin Una classe → strumento AI in automatico
Funziona già con Claude, ChatGPT e Gemini (app e web) • DeepSeek predisposto

Modulo E-Commerce — uwEasyShop

Sistema e-commerce integrato con gestione completa prodotti, ordini e pagamenti.

Tipologie Prodotto

Nessun limite di tipologie. Puoi vendere qualsiasi prodotto fisico, digitale o servizio. Alcuni esempi:

Prodotti Fisici

  • CD / Vinili
  • Libri / Manuali
  • Documenti stampati
  • Merchandise
  • Biglietti evento

Prodotti Digitali

  • Download file
  • PDF / E-book / Guide
  • Streaming access
  • Licenze software
  • Gift card

Altro

  • Abbonamenti
  • Donazioni
  • Bundle misti

Payment Gateway

Doppio gateway con gestione PCI-compliant:

  • Stripe — carte di credito, Apple Pay, Google Pay
  • PayPal — checkout e pagamento express
  • Webhook handling per conferma pagamento asincrona
  • Gestione valute multiple (EUR, USD, GBP...)

Checkout Engine

Checkout adattivo in 4 step:

  • Step 1: Carrello — riepilogo prodotti e quantità
  • Step 2: Dati cliente — form adattivo (spedizione solo per prodotti fisici)
  • Step 3: Pagamento — selezione gateway e conferma
  • Step 4: Conferma — riepilogo ordine e download link (se digitale)

Gestione Ordini

5 stati ordine con workflow completo:

  • Pending → Paid → Shipped → Delivered → Refunded
  • Ricevute PDF generate automaticamente
  • Rimborsi totali e parziali
  • Notifiche email automatiche per ogni cambio stato

Sistema Coupon

Promozioni flessibili con regole composte:

  • Sconto percentuale o importo fisso
  • Data di scadenza configurabile
  • Limite utilizzi per coupon e per cliente
  • Restrizioni per categoria prodotto o importo minimo

Analytics

Dashboard vendite integrata:

  • Top prodotti per vendite e ricavo
  • Revenue breakdown per gateway di pagamento
  • Statistiche ordini per periodo
  • Export CSV per reportistica esterna

Hai domande tecniche?

Contattaci per una consulenza tecnica o per richiedere una demo personalizzata.