design

Fun with flat files - Introduzione a Kirby CMS

02.02.2021
CMS
Indietro
Da tempo sono affascinato dai CMS flat file, ovvero i sistemi di gestione dei contenuti che non usano un database per conservare e pubblicare i dati del sito web.La precedente incarnazione di questo sito, che ha girato per anni su un CMS tradizionale, CMS Made Simple, è stata riprogettata per uno di questi CMS di nuova concezione, Kirby, un software che volevo provare da tempo.

Flat che?

La caratteristica di un CMS flat file è quella di basarsi semplicemente su una struttura di cartelle e file. Nell'immagine sotto potete vedere la struttura di questo sito, che dà un'idea delle pagine e di alcune sottopagine che potete navigare.
La struttura di questo sito
Il giochino funziona in questo modo: La cartella definisce la pagina e la sua posizione nell'albero di navigazione del sito. I contenuti della cartella sono i contenuti della pagina. I testi sono nel file .txt, le immagini risiedono dentro la cartella.

Adesso vi faccio vedere il contenuto di una pagina, una delle schede dei miei lavori nella sezione Portfolio

Esempio di un file contenuto (tipo
Esempio di un file contenuto (tipo "Progetto")
Come vedete ad ogni campo corrisponde il proprio con tenuto. Molto semplice no?In Kirby non esiste il concetto di tipo di contenuto, o meglio, siete completamente liberi di modellare il contenuto delle pagine come volete. Servono nuovi campi? basta aggiungerli e riempirli. Per Kirby una scheda di una lista di cose, un post di un blog, una pagina normale sono la stessa cosa. Pensate a cosa vuol dire gestire i contenuti personalizzati in WordPress, per fare un esempio, e capite la flessibilità della cosa.

I template in Kirby

Cosa faccio con questi contenuti?
Li pubblico usando dei template naturalmente. Per creare dei template siete liberi di fare cosa volete. Io sono abituato a usare CMS Made Simple che ha un sistema di template piuttosto avanzato, dove le funzioni dei vari moduli sono astratte a un livello molto alto, e si richiamano con degli shortcode tipo:
{news number=3 category=“Web Design” detailpage=“Portfolio” summarytemplate=“HomeNewsTemplate”}`
e i vari template sono un misto di HTML e Smarty, un linguaggio di templating per PHP.Il concetto di templating di Kirby è differente. Tutto è object oriented, ovvero esistono degli oggetti (il Sito, la Pagina, le Immagini, i Campi e così via) ai quali possono essere applicati dei metodi, ovvero ogni oggetto ha delle funzioni che possono essere usate per trattarlo. Per esempio: questa funzione
L'oggetto image e un suo metodo
Mi pubblica sulla pagine la prima immagine nella cartella dell'articolo del blog e la taglia secondo le proporzioni che vedete. Crop è un metodo di image().È un mondo diverso ma molto efficiente. Per esempio. Per creare un menu di primo livello in CMS Made Simple uso questo shortcode:
{menu number_of_levels="1"}`
e a parte ho il template in HTML e Smarty che con un loop mi genera il menu.Qui ho un semplice loop in PHP (ho tolto la formattazione per pulizia):
Generare un menu di navigazione

Carino no? La riga 2 compie la magia: prende in considerazione il sito $site -> ne estrae le pagine figlie children() -> di queste prende solo quelle ordinate listed(); poi per ognuna di queste prende l'url e lo usa per costruire il menu.

Come vengono usati i campi che avete visto nel file di contenuto prima?

Questo è un esempio: è un segmento della pagina che mostra la scheda di un progetto di questo sito. Come vedete i campi del file contenuto possono essere facilmente richiamati come e dove volete.

Usare i campi di un contenuto nel template

È facilissimo creare oggetti come gallery fotografiche o estrarre e presentare liste di contenuti, anche filtrandoli e paginandoli successivamente come potete vedere nella sezione blog di questo sito. Sviluppare questo sito, seguendo i fantastici tutorial del sito e su Youtube, è stato veramente un piacere, con l'aspetto non trascurabile di avere il perfetto controllo di ogni aspetto della generazione delle pagine.

Il bello è che trattandosi di cartelle e file di testo, posso aggiungere contenuti semplicemente via FTP, oppure avere con facilità il versionamento dei dati, con lo strumento che preferisco, anche per gruppi di utenti (banalmente io uso quello di MacOS).

Interfaccia utente

Per gestire con facilità i contenuti esiste un'interfaccia utente, il Panel. Vi faccio vedere la schermata del progetto.

Carino no? E molto pulito. L'interfaccia è personalizzabile al massimo, e può essere adattata a ogni tipo di contenuto e tipologia di campo dati (ne esistono moltissime, e ci sono molti plugin). L'editing avviene in Markdown o KirbyText (un dialetto del Markdown), ma può essere incollato anche direttamente l'HTML. Il panel va a modificare direttamente il file TXT nella cartella.

Posso cambiare completamente l'aspetto e la disposizione del panel per ogni pagina o tipo di contenuto, mediante le blueprints, dei file YAML facilissimi da impostare; ve ne faccio vedere uno, sempre della stessa pagina.

La blueprint di un tipo di contenuto

Comodo no? Il panel è anche estensibile con altre funzioni, tipo un comodissimo plugin per impostare la SEO di ogni pagina, molto dettagliato, o un altrettanto favoloso gestore di redirect per le pagine del sito. Questo consente di fornire ai clienti un'interfaccia modellata esattamente sulle loro esigenze, intuitiva e facilissima da usare. Solo quello che serve dove serve.

Mentre approfondivo le opzioni disponibili, ho poi scoperto che dalla versione 3.5 è disponibile anche un editor di contenuto a blocchi affine al Gutemberg di WordPress, molto flessibile e personalizzabile - come tutto dentro Kirby - che mi ha permesso di ricostruire agilmente una nuova versione della pagina Servizi di questo sito, che in prima battuta avevo realizzato con un template personalizzato.

Il Layout Editor
Il Layout Editor

Per il resto, Kirby ha di serie quello che ci si aspetta da un CMS moderno: è multiutente, multilingua, gestisce bene il caching, e può anche essere usato come generatore di siti statici. Non essendoci un DB la pubblicazione e il backup del sito sono solo una questione di trasferimento via FTP, e per di più è velocissimo e molto meno soggetto a sovraccarichi da traffico (può anche generare versioni statiche del sito per accrescere sicurezza e velocità).

Kirby può importare i dati non solo dai suoi file .txt ma anche da altre sorgenti: file CSV, Database, feed RSS, API specifiche. Questa cosa ovviamente lo rende flessibilissimo: immagina aggiornare il classico catalogo di oggetti che il cliente normalmente amministra in Excel. Basta esportare in CSV e caricare sul server.

Dulcis in fundo, la documentazione sul sito e su youtube è fantastica e iperdettagliata, con in più un cookbook di soluzioni già pronte, un forum di supporto molto ben gestito e parecchi plugin per estendere le funzioni.

Considerazioni finali

Kirby è un CMS molto potente e con un'ottima reputazione. In ogni aspetto rivela di essere ben progettato e super curato dalla sua community, lo si vede anche dalla documentazione eccellente. Ho sviluppato questo sito da zero senza mai ricorrere al forum di supporto, e l'ho generato esattamente come volevo, fino all'ultimo tag. Integrare i miei template fatti in Bootstrap è stato un divertimento.

Per chi è consigliabile Kirby? Per sviluppatori di siti web che vogliono siti performanti e che vogliono controllare al dettaglio il processo produttivo, consegnando al cliente un prodotto che è una gioia da usare con una curva di apprendimento facilissima, e con un'efficienza altissima, senza overhead da troppo codice (il classico sito Wordpress con framework visuali insomma)

A chi non è consigliato Kirby? A chi vuole giocare con framework visuali senza sporcarsi le mani col codice.

Venenum in cauda

Tutto questo ben di dio ha naturalmente un prezzo: Kirby è Open Source ma non gratuito. All'atto della pubblicazione in produzione richiede l'acquisto di una licenza (99$). Soldi ben spesi a mio parere, vista la qualità della progettazione e dell'esecuzione. Volendo fare qualche confronto, ha di serie molte funzioni che, per esempio, su Word Press richiedono plugin anche a pagamento, per importi superiori.

Vi è piaciuto? Volete saperne di più? al solito contattatemi.

Risorse


Indietro

 Se ti piace quello che vedi, chiamami subito!

Se ti sei fatto un giro nel sito e ti è piaciuto quello che hai visto, chiamami, sarò ben felice di parlare con te, e trovare una soluzione al tuo problema! Sono sempre disponibile ad avere un colloquio per decidere come aiutarti.

Insieme possiamo decidere le tue necessità e quali sono le migliori soluzioni per creare o migliorare la tua immagine, e qual è la migliore soluzione per il tuo sito web o il tuo sito di eCommerce.

© Gianluca Savini 1996 - 2021
Via Alessandro Volta 4 Ghezzano, San Giuliano Terme 56017 Pisa P.IVA 01615910500

HOME      CONTATTI      PRIVACY