La realizzazione del Sito Internet

Il sito internet nel quale state navigando è il frutto del lavoro didattico della classe 5G AS 2009-10 sezione ITI dell'Istituto "Cattaneo-Dall'Aglio".

La Tecnologia di realizzazione utilizzata è l'oggetto della tesina per l'esame di stato per lo studente Tagliati Alberto.

  

CMS (Content Management System)

Un content management system, in acronimo CMS, letteralmente "sistema di gestione dei contenuti", è uno strumento software installato su un server web studiato per facilitare la gestione dei contenuti di siti web, svincolando l'amministratore da conoscenze tecniche di programmazione web.

Esistono CMS specializzati, cioè appositamente progettati per un tipo preciso di contenuti (un'enciclopedia on-line, un blog, un forum, ecc.) e CMS generici, che tendono ad essere più flessibili per consentire la pubblicazione di diversi tipi di contenuti.

Tecnicamente un CMS è un'applicazione lato server che si appoggia su un database preesistente per lo stoccaggio dei contenuti e suddivisa in due parti: la sezione di amministrazione (back end), che serve ad organizzare e supervisionare la produzione dei contenuti, e la sezione applicativa (front end), che l'utente web usa per fruire dei contenuti e delle applicazioni del sito. L'amministratore del CMS gestisce dal proprio terminale, tramite un pannello di interfaccia e controllo, i contenuti da inserire o modificare e invia i dati al database del server tramite protocollo FTP.

I CMS possono essere realizzati tramite programmazione in vari linguaggi web tra cui più comunemente in ASP, PHP, .NET; il tipo di linguaggio adoperato è indifferente a livello di funzionalità.

Le principali caratteristiche di un sistema di gestione dei contenuti comprendono:

    * gestione di interfacce basate su browser web per l’aggiornamento delle pagine
    * utilizzo di template grafici per la presentazione dei contenuti,
    * gestione di ruoli distinti di utenti e di specifiche funzionalità di workflow,
    * database per l’archiviazione di immagini e contenuti testuali e grafici,
    * reperimento ed integrazione con contenuti provenienti da altri sistemi informatici,
    * gestione di mailing list e messaggistica,
    * gestione e classificazione di link, notizie, faq, eventi,
    * funzionalità di interrogazione e ricerca,
    * personalizzazione dei criteri grafici di presentazione dei contenuti.

Come è nato

I content management system sono nati negli Stati Uniti e sono stati inizialmente sviluppati da alcune organizzazioni che producevano notevoli quantità di pubblicazioni, per il loro uso interno. Nel 1995 la CNET rese pubblici gli studi e i prodotti sviluppati internamente, distribuendoli con l'etichetta Vignette. La compagnia cominciò a mettere a disposizione il proprio software come sistema di gestione dei contenuti via web. Per la prima volta un utente poteva creare il proprio sito direttamente dal web, usando l'interfaccia CNET.

Nel 1998, la Pencom Web Works, una compagnia di consulenza aziendale, introdusse il server di trasformazione dati (DTS) Metaphoria, che permetteva agli sviluppatori Java di scrivere applicazioni che si potevano collegare ai contenuti e permettevano di distribuire tali contenuti su canali diversi. Il prodotto non ebbe successo, ma il concetto che era stato introdotto costituì le basi di ciò che è diventato il CMS odierno.

 

Vantaggi e Limiti dei CMS

Vantaggi:

·   Un CMS permette di costruire e aggiornare un sito dinamico, anche molto grande, senza necessità di scrivere una riga di HTML e senza conoscere linguaggi di programmazione lato server (come PHP) o progettare un apposito database. L'aspetto esteriore delle pagine può essere personalizzato scegliendo un foglio di stile CSS appositamente progettato per un determinato CMS.

Limiti:

·   Un sito basato su questa struttura in genere presenta un aspetto poco personalizzato se non è possibile intervenire direttamente sul codice sorgente del prodotto per modificarlo. Analogamente i contenuti saranno sempre ancorati a quanto previsto da chi ha progettato il CMS e non alle esigenze di chi pubblica il sito.

·   Problemi di gestione possono derivare dal fatto che chi pubblica o gestisce il sito può usare il CMS per intervenire sui contenuti e sull'aspetto, ma generalmente (caso del software proprietario) non è in grado di intervenire direttamente (o far intervenire) sulla struttura del CMS stesso; questo è un limite strettamente connesso al vantaggio primario dei CMS: pubblicare un portale senza doverne progettare la struttura o senza possedere le conoscenze tecniche (o le risorse finanziarie) per uno sviluppo personalizzato. Tuttavia esistono anche CMS particolarmente evoluti che permettono di scrivere direttamente sul database. È il caso per esempio di alcuni CMS proprietari.

·   Questi problemi sono risolvibili utilizzando software open source: la possibilità di accedere al codice sorgente del prodotto permette di personalizzare il software sulla base delle proprie esigenze a patto di non avere necessità di apportare modifiche al prodotto adottato. Anche in questo caso, vanno messi in conto i costi per lo sviluppo di moduli personalizzati o funzioni particolari a meno di non possedere in proprio o nella propria struttura aziendale le conoscenze tecniche per intervenire nel codice sorgente.

·   I portali di una certa importanza generalmente non fanno mai ricorso a CMS distribuiti bensì usano programmi e database progettati su misura, ovvero "CMS personalizzati" e dunque necessariamente specializzati; in questo modo la struttura e la presentazione vengono realizzate tenendo presenti i contenuti che il sito dovrà ospitare e potranno essere modificati in seguito a nuove esigenze.

 

Drupal

Il CMS che abbiamo utilizzato per il nostro sito www.boscodiappennino.it è Drupal, creato originariamente da Dries Buytaert come bulletin board system, divenne un progetto libero nel 2001. Il nome Drupal è la traslitterazione inglese per la parola olandese druppel che significa goccia. Il nome nasce dal defunto drop.org, sito il cui codice si evolse lentamente fino a trasformarsi in Drupal. Buytaert voleva chiamare il sito «dorp» (In olandese «villaggio», riferendosi all'orientamento «per community» del progetto), ma commise un errore di digitazione quando controllò la disponibilità del dominio. Rileggendo, decise che drupal suonava meglio.

Negli anni Drupal ha acquistato popolarità. Da maggio 2006 ad aprile 2007, Drupal è stato scaricato più di 600.000 volte. Ora lo sviluppo di Drupal gode dell'apporto di una grande comunità.

La struttura di Drupal

Drupal deve la sua flessibilità e organizzazione alla divisione in cinque livelli sovrapposti, ben distinti l'uno dall'altro:
1. Livello dati.
Il cuore del sistema: tutto ciò che è visualizzato nel sito, deve prima essere inserito come dato.
2. Livello moduli.
I moduli funzionali sono i plug-in che sono o parte del core di Drupal oppure sono elementi creati dai membri della comunità di Drupal. I moduli forniscono funzionalità diverse, che permettono di espandere le capacità del tuo sito (campi personalizzati per i nodi, calendari degli eventi, e-commerce, viste personalizzate dei dati e molto altro ancora).
3. Livello blocchi e menù.
I blocchi spesso sono messi a disposizione da moduli specifici oppure possono essere creati per mostrare quello che vuoi: essi possono essere collocati in diversi punti (regioni) del tuo tema.
I blocchi possono essere configurati per essere visibili solo su alcune pagine o solo a determinati utenti.
4. Livello permessi utente.
La configurazione dei permessi ti permette di determinare "chi" può fare "cosa" nel tuo sistema.
Puoi assegnare permessi (creare nuove pagine, eliminare pagine esistenti, etc..) a ruoli specifici (utente anonimo, autenticato, redattore, amministratore, etc...). Puoi assegnare ad ogni utente uno o più ruoli, in modo concedergli i relativi permessi associati.
5. Livello modello.
Nello strato più superficiale si trova il modello del sito (template). Questo è costituito prevalentemente di XHTML e CSS, con alcune parti di PHP necessarie ad inserire nelle posizioni corrette.
Capire che tutti i flussi di informazioni passano attraverso tali livelli, ti permette di interagire correttamente con il sistema e di "localizzare" velocemente eventuali errori di configurazione del sistema. Se, ad esempio, un modulo non funziona come ti aspetti, dovrai chiederti se hai attivato i blocchi necessari, se hai assegnato agli utenti i giusti permessi e così via.

I moduli di Drupal

Il «core» di Drupal contiene i propri moduli. I moduli sviluppati dalla comunità possono comunque essere scaricati e installati in un'area dell'installazione di Drupal non destinata al «core». Il «core» di Drupal è stato progettato con un sistema di «hook» (ganci) o callback, che permettono ai moduli sviluppati dalla comunità di inserire funzioni nel processo di esecuzione di Drupal.

I moduli inclusi nel «core» forniscono le seguenti funzionalità:

    * Inserire, modificare e catalogare i contenuti
    * Eseguire ricerche
    * Inserire commenti
    * Partecipare a forum
    * Rispondere a sondaggi
    * Lavorare a progetti di scrittura collaborativa
    * Inserire e visualizzare i profili degli utenti
    * Comunicare tra gli utenti e con gli amministratori del sito
    * Modificare l'aspetto del sito utilizzando temi grafici già sviluppati e pronti all'uso
    * Creare menu su più livelli della struttura di navigazione
    * Localizzare l'interfaccia in diverse lingue, permettendo all'utente di scegliere
    * Fornire feed RSS
    * Aggregare e presentare i contenuti RSS di altri siti
    * Registrare nuovi utenti e gestirne gli account
    * Gestire in modo granulare permessi e ruoli per i singoli utenti o per interi gruppi
    * Usare regole per impedire l'accesso al sito a determinati utenti in base a nome, indirizzo e-mail, indirizzo IP
    * Collezionare e presentare statistiche dettagliate del sito
    * Gestire il caching delle pagine ed il throttling, funzionalità che permette di disabilitare alcuni moduli/blocchi in caso di alto traffico del sito
    * Creare e specificare vari filtri sull'input degli utenti e diversi modelli di contenuto
    * Generare indirizzi semplici da ricordare, permettendo una migliore catalogazione ai motori di ricerca

Inoltre, il sito di Drupal contiene centinaia di moduli gratuiti sviluppati dalla comunità. Alcune delle funzionalità fornite o migliorate dai moduli sviluppati dagli utenti:

    * Sistemi e-commerce
    * Flusso di lavoro redazionale
    * Gallerie fotografiche
    * Gruppi autogestiti
    * Sitemap di Google
    * Gestione di mailing list
    * Integrazione con CVS
    * Gestire immagine e video
    * Gestire servizi di terze parti (Adsense, AuctionAds, Technorati, etc.)
    * Aggiungere funzionalità Javascript ed Ajax

Perché scegliere Drupal?

Drupal è un framework potente e flessibile per costruire praticamente qualsiasi tipo di sito web.
Ci sono alcune particolari situazioni in cui Drupal rappresenta una scelta migliore rispetto ad altre soluzioni; in particolar modo se:
•    Hai bisogno di un sito flessibile che si possa evolvere in qualsiasi direzione. Ad esempio, potresti iniziare con un blog, ma desideri avere la possibilità di aggiungere altre funzionalità come un wiki, un e-commerce, un forum etc..
•    Hai bisogno di un sito che può essere facilmente configurato per interagire con altri siti o con altre tecnologie.
•    Hai bisogno di un sito che può facilmente gestire form complessi e flussi di lavoro.
•    Hai la necessità di creare i tipi di contenuti personalizzati. Ad esempio, aggiungere un campo di testo personalizzato a una pagina.
•    Hai la necessitò di organizzare e visualizzare elenchi di informazioni (i.e. viste di dati).
•    Uno o più dei tanti moduli di Drupal risponde alle tue esigenze.
•    Hai la necessità di sviluppare rapidamente funzionalità personalizzate.