1. Università degli studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Dipartimento di Informatica e Comunicazione Corso di Laurea in Comunicazione Digitale PLUGIN PER L’UPLOAD MULTIPLO DI FILE IN DOKUWIKI Tesi di laurea di: Matteo OSTUNI Matricola: 660195 Relatore: Prof. Andrea TRENTINI Anno Accademico 2008-2009 1
2. Scopo Il progetto consiste nel vedere come si crea un plugin per DokuWiki, partendo dalla realizzazione o modifica di un tool che chiede all'utente quali sono i file da caricare per immetterli successivamente su una pagina del Wiki. Dal punto di vista funzionale il tool deve accettare solamente file composti da un determinato pattern nel nome, e una specifica estensione. Questo processo andrà svolto con JavaScript, un linguaggio di scripting orientato agli oggetti, in modo tale da evitare l'utilizzo di un programma da installare. 2
3. DokuWiki DokuWiki è un Wiki: semplice da usare rispetta gli standard crea documentazione di qualsiasi tipo sintassi semplice e potente facilita la creazione di testi strutturati dati conservati in file di solo testo Download: http://www.splitbrain.org/go/dokuwiki Copyright: è rilasciato con licenza GNU General Public License Versione 2 Fonte: http://www.dokuwiki.org/it:dokuwiki 3
4. Proposta Individuare un plugin che gestisce l’upload multiplo di file Controllare che lo stesso abbia una licenza open source che metta a disposizione i file sorgente Verificare che il nostro sistema abbia i requisiti per supportare tale plugin per poi implementarlo Modificare, per rendere funzionale al nostro fine, i file all’interno del pacchetto Inserire la REGULAR EXPRESSION che regolerà l’accettazione o meno dei file, in base al proprio nome In ultimo bisogna rendere l’applicativo un plugin per DokuWiki 4
5. Uploadify a multiple file upload plugin L’Uploadify è un plugin che consente il caricamento di un singolo o multiplo file, su un sito Web. Esso possiede un'ampia gamma di opzioni per una personalizzazione completa da parte di utenti avanzati, invece un’implementazione di base, del plugin nei siti web, può essere eseguita da chiunque. Uploadify è disponibile sotto le licenze GPL e MIT. Fonte: http://www.uploadify.com/ 5
6. Modifica dell’ Esistente Scompattare il file .zip nella cartella …/htdocs Modificare il file index.php Creare un nuovo file .css Modificare le configurazioni all’interno del file uploadify-multi-single.php Inserendo le estensioni dei file accettabili Inserendo la Regular Expression per i pattern accettabili Aggiungendo la riga in PHP per la visualizzazione dei file creare il file listing.phpper eseguire la visualizzazione dei file Fonte: http://www.dokuwiki.org/it:dokuwiki 6
7. Plugin di DokuWiki Esistono diverse tipologie di plugin per DokuWiki, ognuno dei quali caratterizza il tipo di plugin che si va a creare in base alle sue funzioni. Considerando le funzionalità che andrà a svolgere questo progetto utilizzeremo la struttura prevista per gli Action Plugin. Gli Action Plugins sono progettati per funzionare con gli eventi di DokuWiki e per consentire la personalizzazione o estensione di qualsiasi parte dello stesso. Fonte: http://www.dokuwiki.org/plugins 7
8. Trasformazione in Plugin Per trasformare il componente creato in un plugin per DokuWiki, facente parte della categoria Action-Plugin, è necessario includere in esso un nuovo file .phpdenominato action.php. Prendendo il codice di esempio per gli Action-Plugin e modificandolo nella parte della funzione di inserimento del bottone, andiamo a settare le variabili a seconda delle nostre esigenze. Fonte: http://www.dokuwiki.org/devel:action_plugins 8
9. Implementazione Inserire la cartella MULTIUPLOAD all'interno della cartella di DokuWiki …/lib/plugins All’interno della cartella MULTIUPLOAD risiede un file immagine denominato multi.pngche bisogna copiare nella cartella toolbar sita in …/lib/images/toolbar Aggiornare la pagina di DokuWiki Nella TOOLBAR dell’EDIT delle pagine di DokuWiki si troverà un nuovo pulsante che aprirà una finestra, la quale mostrerà l’interfaccia del plugin. 9
10. Conclusioni E’ stato realizzato un plugin per upload multiplo di file in DokuWiki e in siti web, permettendo a questi ultimi di avere più funzionalità, e agli utenti di poter usufruire di un nuovo tool per i propri progetti. Ho inoltre riscontrato numerosi problemi, tra i quali l’inserimento e il funzionamento della Regular Expression, e la trasformazione in plugin di DokuWiki. Svolgendo questo progetto ho imparato a realizzare una Regular Expression, a creare un plugin di DokuWiki, e ad utilizzare linguaggi di scripting quali PHP e JavaScript. 10