Files
sld-php-template/README.it.md
T

145 lines
7.4 KiB
Markdown

# 📝 sld-blocknotes - Sistema Moderno di Note a Blocchi & Gestione Comandi
> **🌐 Lingue disponibili**: [🇬🇧 English](README.md) | [🇮🇹 Italiano](README.it.md) | [🇪🇸 Español](README.es.md) | [🇫🇷 Français](README.fr.md)
![PHP](https://img.shields.io/badge/PHP-7.4%20%7C%208.x-777BB4?style=for-the-badge&logo=php&logoColor=white)
![Database](https://img.shields.io/badge/Database-MySQL%20%2F%20MariaDB-4479A1?style=for-the-badge&logo=mysql&logoColor=white)
![Frontend](https://img.shields.io/badge/Frontend-Vanilla%20CSS%20%26%20JS-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)
![Framework](https://img.shields.io/badge/Framework-Zero%20Dependencies-22c55e?style=for-the-badge)
Una potente applicazione Web moderna senza dipendenze esterne per organizzare note strutturate a blocchi, comandi di terminale, frammenti di codice ed istruzioni. Realizzata in **Pure PHP**, **Vanilla CSS**, **Vanilla JS** e **MySQL/MariaDB**.
URL Repository: [https://gitea.sld-server.org/sld-admin/sld-blocknotes](https://gitea.sld-server.org/sld-admin/sld-blocknotes)
---
## ✨ Funzionalità Principali
- 📑 **Note a Blocchi & Sottonote Strutturate**:
- Organizza le tue note all'interno di blocknotes personalizzati.
- Le note contengono titolo, descrizione e sottonote multiple.
- **Note Richiudibili**: Le note sono ridotte di default per ottimizzare lo spazio verticale, con pulsanti globali **Espandi Tutte / Riduci Tutte**.
-**Sottonote di Tipo Comando Terminale**:
- Rendering differenziato tra sottonote di testo generico e comandi di terminale.
- **Pulsante Copia con 1-Click**: Copia istantaneamente i comandi negli appunti con feedback visivo (`✓ Copiato!`).
- Riquadro stile IDE/Terminale ad alto contrasto con barra di scorrimento verticale ad altezza limitata.
- 🔍 **Ricerca in Tempo Reale**:
- Filtra titoli delle note, descrizioni, sottonote e contenuti dei comandi in tempo reale all'interno del blocknote aperto.
- Espande automaticamente i blocchi corrisposti durante la ricerca.
- 📥 / 💾 **Importazione ed Esportazione JSON**:
- Scarica il file JSON di ogni blocknote con un click (`export_blocknote.php`).
- Importatore JSON interattivo con supporto per il formato standard e vecchio formato array.
- 🌐 **Interfaccia Multilingua (IT, EN, ES, FR)**:
- Localizzazione completa in **Italiano 🇮🇹, English 🇬🇧, Español 🇪🇸 e Français 🇫🇷**.
- Selector di lingua rapido nella navbar per ospiti ed utenti connessi.
- La lingua preferita di ciascun utente viene salvata nel profilo DB per i futuri accessi.
- 🏠 **Pagina di Primo Accesso Personalizzabile**:
- Scegli se accedere direttamente alla **Pagina Principale (Tutti i Blocknotes)** oppure aprire un **Blocknote Predefinito specifico** al login.
- 👑 **Ruolo Unico Owner & Gerarchia Avanzata (`owner` > `admin` > `user`)**:
- **Account Owner Ineliminabile**: L'account Owner iniziale (`owner`) non può essere eliminato da nessun admin né da se stesso.
- Gli amministratori standard non possono declassare né modificare il ruolo dell'Owner.
- ⚙️ **Personalizzazione Sito (Riservato Owner)**:
- Modifica il **Titolo Globale dell'Applicazione**.
- Carica e valida la **Favicon ad Alta Risoluzione** (minimo 64x64px) con anteprima in tempo reale.
- 🚀 **Wizard di Setup Iniziale (`first_start.php`)**:
- Installatore automatico per configurare i dati di connessione MySQL, creare le tabelle ed impostare i primi utenti privilegiati (`owner` ed `admin`).
- Completamente multilingua nelle 4 lingue.
---
## 🚀 Guida all'Installazione
### Requisiti
- Server Web (Apache, Nginx, o PHP CLI server integrato)
- PHP 7.4 o 8.x (con estensione `mysqli` abilitata)
- MySQL 5.7+ o MariaDB 10.x+
### Installazione Passo-Passo
1. **Clona il Repository**:
```bash
git clone https://gitea.sld-server.org/sld-admin/sld-blocknotes.git
cd sld-blocknotes
```
2. **Avvia il Server Web**:
Puoi utilizzare il server integrato di PHP:
```bash
php -S localhost:8000
```
3. **Esegui il Wizard di Setup**:
Apri il browser su `http://localhost:8000/`.
Il sistema rileverà il primo avvio ed aprirà automaticamente `first_start.php`:
- Inserisci i dati del tuo **Database MySQL** (Host, Nome Database, Utente, Password).
- Configura le credenziali dell'**Account Owner**.
- Configura le credenziali del **Primo Account Admin**.
- Clicca su **⚡ Completa Installazione & Configura Sistema**.
4. **Accedi ed Inizia**:
Al termine del setup verrai reindirizzato alla pagina di login `index.php?page=login`.
---
## 📁 Struttura del Progetto
```text
sld-blocknotes/
├── assets/
│ ├── css/
│ │ └── style.css # Design system Vanilla CSS e variabili HSL
│ └── js/
│ └── main.js # Vanilla JS per modali, note richiudibili, cerca e copia
├── blocknotes/ # Cartella di salvataggio JSON dei blocknotes
│ └── .gitkeep
├── config/
│ ├── constants.php # Definizione costanti di percorso
│ ├── db.php # Connessione MySQL, auto-migrazione e redirect installer
│ ├── functions_init.php # Router e sanificazione pagine
│ ├── init.php # Inizializzazione sistema
│ └── settings.php # Template configurazione credenziali DB
├── functions/
│ ├── auth.php # Autenticazione, permessi e protezioni Owner
│ ├── blocknotes.php # Engine CRUD JSON blocknotes ed importatore
│ ├── functions.php # Autoloader moduli funzioni
│ ├── lang.php # Dizionario di traduzione multilingua (IT, EN, ES, FR)
│ └── site_settings.php # Gestione titolo sito e favicon ad alta risoluzione
├── includes/
│ ├── head_links.php # Inclusioni CSS ed head globali
│ └── js_footer.php # Inclusioni script footer globali
├── pages/
│ ├── 404.php # Pagina non trovata
│ ├── admin_users.php # Gestione utenti admin ed impostazioni sito Owner
│ ├── db-error.php # Template errore database
│ ├── export_blocknote.php # Endpoint download JSON blocknote
│ ├── home.php # Dashboard principale dei blocknotes
│ ├── login.php # Pagina di login multilingua
│ ├── logout.php # Disconnessione sessione
│ ├── profile.php # Profilo utente, password, colori tema, lingua e landing page
│ └── view_blocknote.php # Vista dettaglio blocknote, note richiudibili e cerca
├── templates/
│ ├── footer.php # Template footer pagina
│ └── header.php # Header navbar, logo, badge utenti e selector lingua
├── .gitignore
├── first_start.php # Wizard di installazione guidata primo avvio
├── index.php # Entry point applicazione e router
├── README.md # Documentazione Principale in Inglese
├── README.it.md # Documentazione in Italiano
├── README.es.md # Documentazione in Spagnolo
└── README.fr.md # Documentazione in Francese
```
---
## 📄 Licenza
Questo progetto è rilasciato sotto licenza open-source [MIT License](LICENSE).