Greenkey e Psicomante hanno scritto questo post in modalità cross-blog.
Questo significa che può essere trovato in forma identica in
su Loman.it e su Psicomante Blog; il vantaggio è che
l'articolo, oltre ad essere più completo, è a
disposizione per un pubblico più vasto.
Nel caso vogliate citare l'articolo, vanno segnalati entrambi gli autori con i rispettivi link ai blog.
Ormai Drupal è diventato un CMS
conosciuto, uscendo dalla nicchia dei progetti opensource e
diffondendosi rapidamente in molti progetti in giro per la rete. Drupal
è infatti stato per molti progetti italiani e internazionali
tra cui Yahoo, IBM, Mtv Uk e ZioBudda;
tutti i progetti sono molto ambiziosi e dimostrano che Drupal ha ottime
potenzialità.
In questo articolo analizzaremo i pregi e i difetti del nostro CMS
più amato, nell'ultima versione stabile, la 4.7.3.
Ogni paragrafo ha al suo fianco una o più icone
che aiutano a capire se l'argomento può interessare o meno a
seconda del lettore:
sviluppatore,
webmaster,
designer, quello
utente, l'utente Orientato agli oggetti
Una delle innovazioni
che questo CMS belga ha
introdotto è stata la concezione del nodo come oggetto.
Tutto il sistema è infatti sviluppato in PHP object oriented,
ogni pagina è costruita attorno ad un oggetto PHP denominato
"nodo", questo rende molto più semplice la gestione e lo
sviluppo in vari punti del codice.
Drupal API 
Drupal ha una API
interna che permette di svolgere dai compiti più semplici
(ad esempio creare un link con i vari tag) a quelli più
complessi (creare tabelle ordinabili secondo criteri diversi). Anche
questo contribuisce a facilitare il compito degli sviluppatori che
intendano espandere le funzionalità di Drupal.
Modulare 
Proprio
l'installazione dei moduli è probabilmente il maggior punto
a favore di Drupal. È sufficiente scaricare il pacchetto
contenente il modulo che si vuole installare, scompattarlo nella
directory modules/nome_modulo/ e abilitarlo
dalla pagina di amministrazione. Il sistema provvederà
inoltre a creare le tabelle necessarie al funzionamento del modulo.
La
modalità di installazione è ancora affidata alla
copia di cartelle all'interno del filesystem dove risiede
l'installazione di Drupal, sarebbe utile avere una pagina
amministrativa dalla quale installare i nuovi moduli. Con WordPress,
ad esempio, c'è un plugin che genera una pagina in cui
vengono mostrati tutti i plug-in installati e installabili, a quel
punto è sufficiente selezionarli e installarli (WordPress si
occupa del download e dell'estrazione dell'archivio nella cartella
predisposta).
Templates e facilità di creazione

La
facilità di creazione di un template è data dalla
grande potenze del theme engine PHPTemplate,
con cui si può fare veramente di tutto. Flessibile,
piuttosto veloce e personalizzabile, PHPTemplate è a nostro
parere il miglior engine per Drupal. Inoltre, poichè i theme
engine sono anche essi moduli Drupal, è possibile
installare altri motori di template disponibili sul sito
Drupal.org.
Ci sono ancora
pochi temi disponibili rispetto a Wordpress, ma questo è
problema legato alla giovinezza del progetto, che è passato
ad una fase matura piuttosto recentemente. Da segnalare comunque la
possibilità di usare temi Wordpress in Drupal
e l'esistenza di blog dedicati ai temi Drupal (vedi un post di oRi0n
a proposito).
Adattabilità del CMS 
A differenza di
Wordpress (che è pensato per creare i blog), Drupal
è un CMS completo, può essere utilizzato per
qualsiasi scopo. Si può creare un blog, un forum, una
piattaforma di sviluppo, un clone di digg, un sito e-commerce, un sito
multimediale, una galleria di immagini e perfino un wiki.
Per queste notevoli qualità molti hanno deciso di sviluppare
una piattaforma a partire dal codice di Drupal e Splinder
è uno di questi casi.
Purtroppo
essendo Drupal un tuttofare non è specializzato in molti di
questi settori. Per i blog c'è WordPress
che fa da padrone, per i forum vBulletin o PHPbb
e per l'e-commerce OSCommerce. Drupal eccelle
forse solo per il modulo video, che non ha concorrenti
in altri CMS.
Interfaccia amministrativa 
Per molti moduli
è necessaria una configurazione dopo averli installati.
Drupal, attraverso le sue API, permette a chi sviluppa moduli di creare
delle pagine di amministrazione che verranno poi raccolte sotto la
stessa sezione del menu amministrativo.
Il problema
è che non esiste una categorizzazione dei moduli, ci si
trova quindi ogni volta a "cercare" la pagina amministrativa adeguata
nel menù che in configurazioni complesse può
diventare anche molto lungo. [la nuova versione lo corregge]
Localizzazione

Un'altro degli
indubbi vantaggi di Drupal è la possibilità
integrata di cambiare la lingua del sito. È possibile
infatti configurare le frasi in tutte le lingue, quindi fare scegliere
anche all'utente la lingua che preferisce. Oltre alle stringhe
è possibile anche scrivere pagine e articoli in più lingue e
fare scegliere a Drupal (a seconda delle impostazioni) quale lingua
mostrare (ancora in lavorazione).
Gallerie di Immagini 
Sebbene il modulo
image abbia un plugin per la realizzazione di una galleria,
il risultato è piuttosto scarno e featureless.
L'intento di image era proprio di essere un modulo scarno e compatto,
senza fronzoli. Per colmare questa mancanza era nato ShazamGallery, ma
sono mesi che è bloccato nella CVS. Da citare anche alcuni progetti
molto interessanti come Flash Gallery,
l'integrazione con Gallery2, il
supporto alle API per gallerie remote.
Esistono decine
di moduli che permettono l'inserimento delle immagini nei post, la
creazione di gallerie di immagini, ma il tutto è un
pò frammentario. Può succedere quindi di avere
incompatibilità tra moduli o peggio, non riuscire a trovare
un modulo che implementa le caratteristiche che vogliamo.
Editor WYSIWYG

In Drupal
è possibile integrare tre editor WISIWYG:
FCKeditor, HTMLArea e TinyMCE. Tutti questi
editori consentono di inserire in drupal contenuti formattati molto
facilmente e senza editare il codice a mano.
L'integrazione
con le funzioni di Drupal non è perfetta anche se ormai
abbastanza avanzata. TinyMCE per Drupal è l'unico che
consente di mostrare differenti interfacce a gruppi di utenti diversi
(questo per permettere l'utilizzo di funzioni dedicate). Purtroppo il
grande problema sta quando si vuole inserire del codice PHP o
Javascript (o qualsiasi altro che non sia HTML) in una pagina redatta
usando un wysiwyg: è impossibile se non disabilitando
l'editor; ma questo più che altro è un problema
instrinseco degli editor che non dei moduli per Drupal.
Multimedia

In Drupal
è facile inserire contenuti multimediali di qualsiasi tipo e
molti sono i moduli che consento la loro gestione. I moduli che
gestiscono la parte mudimediale sono Video
(in cui collabora Psicomante), WebMedia
e AcidFree (un sistema per la
gestione di file multimediali, audio, video e immagini). Dedicati alla
parte audio sono invece gli ottimi audio
e Node Audio Gallery.
Il lavoro da
fare per questi moduli è ancora molto, mancano alcune
caratteristiche importanti e integrazioni.
AJAX e Javascript

Con l'ultima versione
ufficiale, la 4.7, in Drupal è stato inserito il supporto ad
Ajax. Infatti per chi non se ne fosse accorto, è presente un
nuovo file, drupal.js.
Ancora poche le implementazioni Ajax in Drupal, che includono per ora
solo l'uploading di files, textarea ridimensionabili, progressbar
(utilizzata nell'update), freetagging. L'inline editing era stato
scartato perchè creava problemi di
compatibilità con molte configurazioni.
Il futuro di Drupal in salsa AJAX sembra roseo perchè sono
tantissimi i moduli in sviluppo che andranno ad ampliare l'usabilità di
questo CMS: L'editor collaborativo
(per avere una sorta di Writely con Drupal), menù in AJAX, integrazione con
Scriptacolous, editing al volo
di categorie (ora fermo nello sviluppo).
L'integrazione
dei nuovi moduli è ancora scarsa e lo sviluppo è
ad uno stadio iniziale.
Conclusioni
A nostro parere Drupal è il CMS con più
potenzialità nel mercato OpenSource. Ha ancora molti
difetti, ma come avete letto ha molti punti a suo favore. Se ancora non
siete convinti potete provare con mano, non solo Drupal ma anche tutti
gli altri CMS liberi, potete farlo sul sito Open
Source CMS.

Questo/a opera è pubblicato sotto una Licenza Creative Commons.
Ottimo post, complimenti a
Ottimo post, complimenti a tutte e due! Vorrei fare un piccolo commento: uno riguarda la parte audio: Drupal è ottimo anche perché consente di creare un podcast senza nessun modulo aggiuntivo... basta caricare l'mp3 nel nodo e anche il flusso RSS conterrà l'embedding per ascoltare il file. Lo so perché lo usa un mio amico, l'unico limite è che per ottenere ciò bisogna associare solo un mp3 a ogni nodo... ma capirai!
Questa non la sapevo! Sarà
Questa non la sapevo! Sarà inserita nella versione 1.1 dell'articolo
Well done ;)
Well done
Forse sarebbe preferibile
Forse sarebbe preferibile indicare quali le peculiarità rispetto ad altri prodotti analoghi (moduli, api, template, editor, sono tutte caratteristiche presenti in quasi tutti gli altri concorrenti). Semmai è la qualita delle API, o la facilità dell'utilizzo del motore di template per settare a proprio paicimentio tutti gli aspetti di un sito che fa la differenza nella scelta di un prodotto cms. Certo la capacità di gestire contenuti multimediali può essere un elemento di forza (personalmente è un campo che non conosco).
beh.. direi che è stato un
beh.. direi che è stato un successo...
oh che bell'articolo. ci ho
oh che bell'articolo.
ci ho messo 2 giorni a trovare il tempo per leggere un'entry cosi' lunga, ma ne e' valsa la pena
Interessante anche come
Interessante anche come griglia per valutare altri CSM.
E' quello che sto cercando di fare.
Sono indeciso fra Joomla! , Drupal, e Xoops.
Joomla! è sicuramente più semplice da usare degli altri 2, ma ora mi applicherò con Drupal...
Se volete farvi un'idea dei
Se volete farvi un'idea dei maggiori CMS, qui c'è un sito che ne paragona le caratteristiche: www.cmsmatrix.org
Una delle innovazioni che
Una delle innovazioni che questo CMS belga ha introdotto è stata la concezione del nodo come oggetto. Tutto il sistema è infatti sviluppato in PHP object oriented, ogni pagina è costruita attorno ad un oggetto PHP denominato "nodo", questo rende molto più semplice la gestione e lo sviluppo in vari punti del codice.
Purtroppo questo non e' vero.
Il PHP Object Oriented necessiterebbe l'utilizzo delle classi e dei metodi in esse definiti come succede solitamente in Java.
Invece Drupal non utilizza il modello classico di sviluppo Object Oriented, in nessuna parte del codice sorgente troverete una dichiarazione di classe o metodi dell'oggetto.
Drupal infatti utilizza una soluzione "ibrida", risultato di attente valutazioni per quanto riguarda efficienza e design.
Per ulteriori informazioni sull'argomento consiglio la lettura di:
http://api.drupal.org/api/HEAD/file/developer/topics/oop.html
Fabio Varesano (fax8 su drupal.org)
Molto interessante. Era
Molto interessante.
Era quello che cercavo da tempo. Mi piacerebbe vedere che cosa è cambiato con la l'uscita della versione 5.
Sono proprio alle prime armi e ancora faccio fatica a capire i nodi e la tassonomia per creare quello che mi serve.
Ciao a tutti! Ho letto con
Ciao a tutti! Ho letto con interesse questo articolo. Sarei intenzionata a scegliere Drupal per ricreare il sito web che ho con un'amica, allo scopo di renderlo dinamico e maggiormente funzionale. Tuttavia sono giorni che tentiamo di capire come poter intervenire direttamente sui template per modificarli a nostro piacimento ed inserirci le nostre immagini e il logo. A questo proposito sapete indicarci come fare? Esiste un programma che consenta di lavorare visivamente sul php? Dreamweaver è troppo complicato per noi che siamo alle prime armi e la nuova piattaforma windows (Expression Web) non legge questo tipo di file. Non so se ci sono delle estensioni da aggiungervi per fargliele leggere.
Se potete potete risponderci nell'email indicata? Grazie infinite!
Buona introduzione.
Buona introduzione. Apprezzabile l'obiettività in contrasto con le considerazioni da fan boy tipica degli sviluppatori/utilizzatori di uno specifico cms.
molto bene. ci si interessa
molto bene. ci si interessa anche a chi non conosce il php.
e' un cms strano, infatti tutto ma proprio tutto va creato, e trovo un po' maniacale l'estrema modularità del sistema, ma ne capisco le potenzialità.
grazie ancora per questo lavoro.
L'importante (lo dico a chi
L'importante (lo dico a chi inizia ) è evitare molti provider - hoster - registar - fornitori di servizi web : che dietro a tanta pubblicità VI PIGLIANO PER IL CULO E CON LORO NON RIUSCIRETE MAI A GESTIRE DRUPAL se non spendendo un patrimonio (e magari senza neppure poter fare il rewrite-url).
Io ne ho trovati solo due validi : uno sufficiente ( Hostek.it ) e uno addirittura superlativo : NETSONS.ORG
www.netsons.org
Il resto .. al 90 % è fuffa ( e io mi ci sono incacchiato 2 anni sopra )! Non fatelo anche Voi !
Post new comment