Files

7.4 KiB

📝 sld-blocknotes - Sistema Moderno di Note a Blocchi & Gestione Comandi

🌐 Lingue disponibili: 🇬🇧 English | 🇮🇹 Italiano | 🇪🇸 Español | 🇫🇷 Français

PHP Database Frontend Framework

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


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:

    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:

    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

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.