Elaborato per l'esame di Programmazione e Progettazione Multimediale Prof. A. Del Bimbo
Studente: Antonio Talamo
Show content of SIGGM's page with Exhibit plugin
Indice 1
Scopo del progetto
2
Requisiti software 2.1 2.2
3
Exhibit 3.1 3.2 3.3 3.4
4
Installazione web server locale Drupal 2.2.1 Struttura 2.2.2 Moduli 2.2.3 Contenuti
Che cos'è Exhibit Exhibit con Drupal Anatomia di un Exhibit Exhibit di base
Sigmm.org con Exhibit 4.1
4.2 4.3 4.4
Modelling Data 4.1.1 News 4.1.2 Committee 4.1.3 Project 4.1.4 Publication View JSON La prima Exhibit Sigmm ridisegnato con Exhibit
5
Conclusioni e sviluppi futuri
6
Sitografia
Scopo del progetto L'elaborato consiste nell'implementazione di un minisito web in Drupal con plugin Exhibit, utilizzabile per mostrare il contenuto della sezione Open Source Software del sito web: sigmm.org/Resources/software Exhibit consente agli autori di siti di creare mostre dinamiche delle collezioni di dati senza ricorrere a complessi database e tecnologie server-side . Lo scopo è quello di visualizzare la collezione dei dati del sito in studio per poter essere ricercati e sfogliati utilizzando la navigazione sfaccettata e viste fornite di mappe, timeline, scatter plot,etc.
Requisiti software 2.1 Installazione Web Server Locale Per i nostri scopi è necessario installare i seguenti software: • un server web Apache; • Mysql, per il sistema di management del database; • interprete Php, linguaggio di sviluppo per la programmazione Web. E' sufficiente installare XAMPP, che include i suddetti.
2.2 Drupal Drupal è un content management system (CMS) modulare scritto in linguaggio PHP e distribuito sotto licenza GNU GPL. Drupal funziona su diversi sistemi operativi, tra cui Windows, Mac OS X, Linux e qualsiasi piattaforma che supporti i webserver Apache e il linguaggio PHP. Drupal utilizza inoltre un database per memorizzare i contenuti e necessita dunque di un software come MySQL e PostgreSQL che sono gli unici DBMS al momento supportati.
2.2.1 Struttura Una volta installato sulla propria macchina, drupal presenta una home page come quella mostrata nella figura successiva.
La pagina mette a disposizione 4 servizi principali: 1. Accedere alla sezione di Amministrazione, dove è possibile gestire tutte le regole per qualsiasi contenuto o modulo del sito come da figura.
2. Accedere alla sezione di gestione dei Moduli, dove è possibile abilitarli/disabilitarli oppure scaricarne di nuovi .
3. Gestire la parte di Design tramite la sezione Temi.
4. Inserire un nuovo contenuto informativo all'interno del nostro sito.
Drupal, per essere usato correttamente, richiede l'apprendimento del concetto fondamentale di funzionamento: in Drupal tutto ruota intorno ai Moduli e ai Contenuti; il Data Base è secondario poiché viene gestito automaticamente da Drupal (Non è assolutamente necessario conoscere SQL).
2.2.2 I moduli I Moduli sono dei plugin aggiuntivi che estendono le funzionalità predefinite di Drupal. Appena installato Drupal contiene veramente poco di utile quindi, è necessario, portarsi subito alla pagina di download dei componenti aggiuntivi, dove, oltre all'elenco dei moduli più scaricati, esiste un veloce e comodo motore di ricerca, che ci porta subito all'argomento desiderato. I moduli necessari per i nostri scopi sono i seguenti: 1. CCK (Construction Content Kit) per creare dei tipi di contenuto personalizzabili a seconda delle nostre esigenze. 2. View 2 serve per fare delle liste dei contenuti, e che sono niente meno che delle query SQL sul database. 3. View JSON è un plugin per visualizzare il contenuto di un nodo in formato JSON. 4. Date per poter creare dei campi data per i nodi. 5. Location al fine di memorizzare in un apposito campo la
posizione geografica. 6. Gmap per poter integrare facilmente le mappe per ogni nodo con i tools messi a disposizione da questo modulo. 7. Exhibit, che sarà il modulo avente funzione principale per i nostri scopi, e che più avanti descriveremo meglio.
2.2.3 I contenuti Il Contenuto in Drupal è esattamente ciò che esprime la parola stessa. Nel caso di un blog saranno post, nel caso di un sito vetrina saranno le notizie, la presentazione dell'attività, ecc. A livello di amministrazione, in Drupal, non si definiscono i Contenuti ma i Contenitori, cioè le strutture che andranno a contenere i contenuti. Se si vuole fare una paragone con la programmazione a oggetti, i Contenuti sono istanze di classi Contenitori. Di default in drupal ci sono due tipi di contenitori: • Pagina : è un metodo semplice per creare e mostrare informazioni che raramente vengono cambiate, tipo una sezione 'Chi siamo' di un sito web. Come impostazione predefinita, una pagina non prevede commenti dei visitatori e non viene mostrata nella home page iniziale del sito. • Storia : simile come struttura a una pagina, è ideale per creare e mostrare contenuti che coinvolgano o informino i visitatori. Comunicati stampa, annunci ed altri contenuti simili al blog possono essere creati con la voce storia. Come impostazione predenita, una storia viene automaticamente mostrata sulla pagina principale del sito ed è possibile aggiungervi commenti. Per i nostri scopi è stato necessario creare dei tipi di contenuto: 1. Project: riguardante i progetti seguiti dal SIGMM. 2. Publication: in relazione alle publicazioni partecipanti alle competizioni annuali. 3. Committee: come riferimento ai membri di controllo. 4. News: le notizie relative ai progetti.
Exhibit 3.1 Che cos'è Exhibit Il modulo Exhibit consente agli autori di siti web di creare visualizzazioni dinamiche senza ricorrere a tecnologie complesse come database e server-side. Le collezioni di dati possono essere ricercate e sfogliate utilizzando la navigazione sfaccettata. In pratica un exhibit consente di creare facilmente pagine web con ricerca avanzata e funzionalità di filtraggio, con mappe interattive, timeline e altri tipi di visualizzazione. L'intento originale degli sviluppatori è stato quello di permettere a chiunque senza approfondite conoscenze di programmazione (ad esempio PHP, MySQL, Perl, ecc) di creare visualizzazioni dinamiche dei loro dati, come le mappe, gli scatterplot, timeline, ecc, in modo semplice .
3.2 Exhibit con Drupal Il modo più semplice in assoluto per incorporare mostre in un sito Drupal è quello di utilizzare l'apposito modulo Exhibit 2.0 compatibile con la versione 6.26 del nostro Content System Managment. Questo modulo permette di trasformare in feed da tutti i formati tipici che Exhibit puo' supportare, come ad esempio fogli di calcolo Google, RDF, file di testo Exhibit JSON,etc ... Essa consente attraverso le viste ed elenchi di nodi di trasformare tali in feed di tipo Exhibit JSON, che è estremamente potente. Stanno anche lavorando per l'integrazione con il modulo Apache Solr per l'uso con la navigazione sfaccettata dei risultati di ricerca.
Quindi è possibile creare delle mostre interative con il solo uso di tre moduli: • CCK • View • Exhibit L'installazione di quest'ultimo ha creato qualche problema ma il tutto è stato risolto con l'uso di alcune patch recuperabili dalla comunità drupal.org (vedi sitografia).
3.3 Anatomia di una Exhibit Una Exhibit si può schematizzare in tre sezioni: 1. View Panel 2. Views 3. Facets Il View Panel è un contenitore per più visualizzazioni. Oltre a tenere i punti di vista diversi(View Selector), viene anche visualizzato il numero totale di record nel database Exhibit, insieme a un menù Esporta. Il menu di esportazione è rappresentato da una piccola icona Forbici che viene visualizzata quando si porta il mouse sopra il pannello di visualizzazione. Il menu di esportazione presenta dei collegamenti che consentono di esportare i dati all'interno del vostro exhibit in vari formati.
View si riferisce alle rappresentazioni di dati, tra cui Scatter plot, Timeline, Map, List, Calendar, facilmente personalizzabili.
All'interno delle viste è possibile lavorare con le “Lens” che servono per poter customizzare le finestre di popup che vengono visualizzate quando si sposta il mouse su un item della mappa, timeline, etc...
I Facets sono componenti che consentono di filtrare dinamicamente dati all'interno della nostra exhibit. La vista più comune è quella di tipo List, ma esistono anche altre come la ricerca per parola chiave, intervalli numerici, etc.
3.4 Exhibit di base Attraverso il modulo, drupal carica automaticamente il codice exhibit-api.js. Quando un oggetto viene creato legge gli ex: nel codice html per configurare l'interfaccia utente. La cosa più importante da ricordare è che tutto ciò che accade avvienne all'interno del WebBrowser. Il browser dell'utente carica l'intero set di dati ed esegue tutte computazione (ordinamento, filtri, ecc) localmente.
Al contrario, su altri siti web che supportano l'ordinamento e il filtraggio, la maggior parte dei calcoli avvengono nel web server. Quando in Drupal creiamo un nuovo contenuto di tipo exhibit, la pagina di configurazione contiene oltre ai form abituali come il titolo, descrizione, altri tre importanti sezioni: • Feed: contiene un menu check-box per selezionare i dati feed creati manualmente in admin/content/exhibit o attraverso le viste. Qui si possono selezionare uno o più feed di dati che si desidera mettere a disposizione per exhibit e per i nostri scopi ho intenzione di scegliere il feed che ho creato a appositamente.
• La sezione successiva riguarda la definizione principale della Exhibit, dove è possibbile aggiungere tutte le exhibit view come timeline, map, etc.. Ed è anche qui che si definisce tramite le exhibit Lens il modo in cui ogni elemento viene visualizzato nel popup, quando si fa clic sulla voce del calendario, timeline, o visualizzare la mappa.
• Facet : in questa sezione vengono definite le sfaccettature che verranno posizionati sulla sidebar, footer o header a seconda della configurazione impostata nel pannello di amministrazione blocchi. Per i nostri scopi verranno definite per lo più “Search” e “List Facet”.
4 Sigmm.org con Exhibit 4.1 Modeling data La sezione di nostro interesse del sito sigmm.org riguarda informazioni relative al software open source multimediali. L'intenzione è quella di fornire uno spazio per promuovere una migliore sinergia tra la multimedialità e la comminity open source, per facilitare la condivisione di software sviluppato da ricercatori diversi, fornendo un ambiente di condivisone del software. Il software deve comprendere anche la documentazione dando tutte le informazioni necessarie per utilizzare facilmente. All'interno di tale sezioni sono presenti quattro link: 1. News: che fornisce notizie su software open source multimediali e publicazioni. 2. Project: elenca una serie di progetti che si potrebbe desiderare di utilizzare o collaborare 3. Competizioni: elenca le publicazioni partecipanti ai concorsi ACM Multimedia Open Source Software Competition 4. Committee: riguardante il personale facente parte del comitato. Da qui l'idea è stata di creare quattro nuovi tipi di contenuti in Drupal relativi ai suddetti.
4.1.1 News Come gia detto le news riguardano notizie su software open source, quindi abbiamo creato un tipo di contenuto “news”, e aggiunto i campi necessari per poter creare successivamente le nostre exhibit. I campi scelti sono: • Titolo: ovviamente riguardante il titolo della notizia
• • • •
Descrizione: con una spiegazione della notizia Start Date: con il quale si indica la data della news Dead Date: con il quale si indica una eventuale scadenza News Reference: che indica se la notizia si riferisce ad un progetto o una publicazione e quindi ad una competizione. • Status: riguarda lo stato di progresso (open, closed) Per quanto riguarda le visualzzazioni exhibit per questa sezione abbiamo sviluppato solo due tipi di view: • List • Timeline
4.1.2 Committee Si riferisce al personale facente parte del comitato. I campi necessari che non stati aggiunti sono i seguenti: • Name: ovviamente il nome e cognome dei componenti del comitato • Contact: riguardante dettagli per poter contattare il personale • Function: la funzione di ognuno all'interno del comitato • Istitute Reference: con informazioni sugli istituti di riferimento per ogni componente del comitato • Location: la posizione geografica. Anche per questa sezione siamo limitati nel tipo di visualizzazioni, solo due, di cui una di tipo list per visualizzare i componenti del comitato e un'altro per tenere conto delle posizioni geografiche dei componenti del comitato.
4.1.3 Project Si elenca una serie di progetti che si potrebbe desiderare di utilizzare o collaborare. I campi creati sono i seguenti: • Titolo: ogni progetto ha un titolo ovviamente;
• Descrizione: per descrivere sommariamente il progetto e vari link; • Autori: cone i nomi dei vari autori che hanno partecipato; • Data: si riferisce a quando il progetto è iniziato; • Arguments: elenca tutti i tipi di argomento trattati nel progetto; • Operating System: elenco dei sistemi operativi supportati; • Programming Language: lista di linguaggi di programmazione trattato; • Licence: un'elenco dei vari tipi di licenza per i progetti; • Location: relativa alla posizione geografica. Tale campi sono stati caricati con tutte le informazioni necessarie recuperabili da ogni sito web relativo ad ogni progetto.
4.1.4 Publication Abbiamo quindi creato un tipo di contenuto “Publication”, in riferimento alle pubblicazioni che hannno partecipato alle competizioni. In alcuni casi le pubblicazioni si riferisco anche a dei progetti seguiti dal sigmm. I campi necessari per le pubblicazioni sono i seguenti: • Titolo • Descrizione: con breve spiegazione della pubblicazione; • Autori • Competition: con i dettagli della competizione a cui la pubblicazione ha partecipato; • Results OSSC: indicante l'esito della competizione alla relativa pubblicazione; • Data: in corrispondenza con la data di pubblicazione • Position: si riferisce alle posizioni geografica degli Istituti cui fanno parte gli autori della pubblicazione. • Link: con il link effettivo della pubblicazione.
4.2 View JSON Come già anticipato, nel modulo View esiste questo strumento per poter creare dei feeds di tipo json al fine di alimentare successivamente gli exhibit con molta facilità. Dopo aver creato I tipi di contenuto e aggiunto i campi suddetti, grazie al modulo Exhibit, è possibile, in modo semplice, convertire i dati Drupal in dati con formato nativo Exhibit JSON, nel modo seguente: 1. Si crea una nuova vista selezionando il tipo “node” 1.
2. Si aggiungono i campi a nostra disposizione assicurandosi di impostare il formato giusto. 3. Quindi si aggiunge un “display” di tipo feed, impostando successivamente le configurazioni necessarie seguenti(vedere figura successiva): ◦ lo stile (impostato su "Exhibit JSON"); ◦ stile Row (impostato su "Campi (Allegato)")
◦ "Elementi da visualizzare" (impostato illimitata inserendo 0) ◦ opzioni in "Impostazioni di base" e l'impostazione del percorso in Impostazioni di alimentazione. ◦ Impostazioni del path nel base setting ◦ Configurazione dei filtri e ordinamenti
A questo punto siamo in grado di ottenere i dati necessari nel formato JSON per creare le nostre Exhibit.
4.3 Sigmm ridisegnato con Exhibit Facendo uso delle viste con stile JSON siamo riusciti a creare quattro Exhibit feeds, ognuno in riferimento ai tipi di contenuto da noi creati precendemente. Per ognuno abbiamo creato una exhibit selezionando i feed necessari, personalizzando le varie viste per ogni tipo di visualizzazione e infine definendo le sfaccettature. Per quando riguarda la visualizzazione delle news e del committee, abbiamo potuto creare delle timeline per la prima e una mappa per la seconda oltre ad una vista di tipo “list per entrambi”. Per le altre due abbiamo potuto creare più di due visulizzazioni. In particolare per i progetti abbiamo creato una timeline basato sulle date in cui sono partiti i progetti e delle mappe relativa alle posizioni geografiche degli Istituti di riferimento al progetto. Per quanto riguarda la visualizzazione delle publicazioni abbiamo settato anche una mappa come per i progetti e una timeline riguardante le date delle competizioni. Anche per i progetti e per le publicazioni abbiamo creato delle semplici visualizzazioni di tipo lista. Inoltre sono state ridefinite le finestre di popup nelle timeeline e nelle mappe per poter descrivere al meglio i contenuti. Le sfaccettature sono state create sempre in base ai valori dei campi dei contenuti.
4.4 Sviluppi futuri Eventuali sviluppi futuri potrebbero essere aggiunta di visualizzazioni riguardanti gli autori dei progetti e delle publicazioni, con l'aggiunta di foto e altre informazioni. In più alcuni progetti eventualmente potrebbero essere chiusi e quindi su di loro potrebbero essere create delle timeline con una “linea vita”.
Sitografia • www.drupal.org • http://sigmm.org/Resources/software • http://www.simile-widgets.org/exhibit/ • http://simile.mit.edu/wiki/Exhibit/Getting_StartedTutorial • Patch per exhibit module http://drupal.org/node/558184