Cos'è un CMS e cosa deve avere?

Scritto il 29/09/2016 In Blog
cms-image

Forse è una domanda che ormai pochi web designer si fanno eppure è lo strumento di lavoro che tutti noi usiamo di più. Ma partiamo dall'inizio: CMS è l'acronimo di content management system ed è un software che serve per gestire i contenuti di un sito internet. In realtà un cms fa ben altro, e qui è forse l'errore che molti programmatori fanno quando decidono di scrivere il loro sito da zero. Un CMS deve avere prima di tutto una gestione delle pagine, un qualche cosa che sappia analizzare l'url ovvero il link della pagina così da poter capire cosa debba essere visualizzato. Tutti gli esperti SEO parlano tanto di link, eppure già qui i vari cms elaborano l'url in modi molto differenti. Possono elaborarlo con espressioni regolari, attraverso l'htaccess o per uguaglianza. Personalmente preferisco le espressioni regolari anche se raramente si usano in tutto il loro potenziale. Ma forse sto entrando troppo nel tecnico, per cui andiamo avanti e direi che un buon cms dovrebbe avere una gestione della grafica separata dal codice, anche se personalmente non apprezzo i template engine, li trovo una sovrastruttura eccessiva, una separazione dei file la considero più che sufficiente. Serve solo rispettare un concetto tipico dei template engine, ed è che devi poter decidere l'ordine con cui elabori la pagina. Questo perché ci sono una serie di informazioni che, anche se visualizzate a fine pagina, magari bisogna sapere subito, tipo per un articolo bisogna sapere il titolo per scriverlo nell'header (che è un pezzo di sito non visibile, ma che racchiude informazioni importantissime). 

La grafica la possiamo dividere in due parti almeno: il codice, che visualizza i singoli elementi, ad esempio l'articolo o il menu e il template che ingloba tutti questi elementi in una griglia. Un buon cms dovrebbe permettere di cambiare template per ogni pagina, così come dovrebbe poter permettere di scegliere quali elementi sono visibili e in quale parte del template.

Prima di passare ai contenuto che è dove si differenziano in modo più visibile i vari cms spendo due parole sulla gestione degli utenti. In questo trovo i cms un po' deludenti. Wordpress che è forse il più famoso ha un sistema semplificato che non è molto intuitivo modificare e di base permette ben poco. Joomla! ha invece un ACL (access control list) più sofisticato, ma limitato a gruppi utenti, ovvero ogni gruppo di utenti può fare o non fare qualche cosa. I permessi a gruppi sono sicuramente un ottimo sistema, ma  non si possono gestire eccezioni per singoli utenti e in alcuni casi potrebbe risultare un limite. 

Comunque fin qui stiamo parlando di aspetti tecnici, importanti, ma poco visibili, che però distinguono i cms professionali da quelli amatoriali. La vera battaglia si svolge invece sulla gestione dei contenuti. Lavorando da programmatore ho imparato che la gestione dei contenuti si divide in tre aspetti principali: L'editor ovvero la possibiltà dell'utente di inserire più elementi quali immagini, link, codice html personalizzato e altro, ed è anche l'aspetto più trascurato, visto che di base ci affidiamo tutti a editor visuali esterni, la catalogazione dell'articolo e l'impaginazione (che la maggior parte dei cms lascia fare sempe agli editor visuali), ma che secondo me merita una gestione a parte soprattutto per garantire l'impaginazione anche su tablet e cellulari. sull'editor personalmente penso che bisogna poter avere sia un editor visuale sia uno per il codice e che questi siano separati, o almeno io così ho fatto sul mio cms e questa cosa da molta flessibilità nella creazione di pagine più elaborate. Un altro concetto che io ho ritenuto importante per poter scrivere articoli è separare il testo dagli altri elementi quali immagini bottoni titoli etc... Tenerli separati forse rende meno intuitivo l'utilizzo, ma da la possibilità di impaginare articoli più complessi. A cosa serve? serve ad evitare di dire al cliente: puoi modificare tutte le pagine eccetto queste perché ho dovuto scriverle in html per riuscire ad impaginarle e ora sono così e non puoi farci nulla. Serve a dire questa immagine la voglio a sinistra quando uno visualizza il sito su un computer desktop, ma più grande e centrata quando lo si visualizza su cellulare. Serve anche ad includere gallerie fotografiche in mezzo agli articoli senza dover scrivere strani codici come spesso succede con Joomla o Wordpress o quando clicchi questa immagine apri un popup o scarica un file, senza saltare da una pagina all'altra o ancora peggio dicendo al tuo cliente questa cosa non la puoi fare. Insomma penso che abbia la sua utilità. 

Ci sarebbe ancora tantissimo da dire sui cms, ovviamente i più famosi sono tutti validissimi, e hanno possibilità di espansione che i piccoli cms non hanno, ma anche se, si finisce per usare sempre lo stesso per il fatto che ci vuole tanto ad imparare a modifiarlo, sarebbe importante capire che non per tutti i progetti vanno ugualmente bene tutti i cms. Su siti aziendali o personali, ad esempio, trovo che sia Joomla che Wordpress non siano molto versatili, perché se vuoi iniziare a personalizzare la grafica, integrare gallerie fotografiche, gestione dei file, dare una buona libertà ai clienti di modificare il sito in autonomia, ottimizzazione  e se poi il cliente ti dice vorrei spostare questo o ingrandire quest'altro, evitare di dirgli sempre non si può fare o ci vuole tempo o costa a parte, beh, in questo caso (mi faccio un po' di pubblicità alla fine) edisto.it penso sia un'ottima soluzione.