145 lines
7.4 KiB
Markdown
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)
|
|
|
|

|
|

|
|

|
|

|
|
|
|
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).
|