Questo breve studio ha lo scopo di analizzare i passi necessari a costruire un organizer per FlatNuke, valutando anche la sua trasformazione in un vero e proprio groupware. E' una traccia che seguirò nella realizzazione di questo software, una sorta di dichiarazione di intenti per non perdere di vista le finalità di questo progetto; al fondo della pagina è possibile visualizzare lo stato di avanzamento dei lavori, con in futuro la possibilità di scaricare degli snapshots del software stesso.
Funzionalità
L'organizer multiutente in costruzione avrà le seguenti funzionalità:
Installazione
L'intallazione è semplicissima dato che si tratta di fare un semplice upload di una nuova sezione; ci sarà in più da sovrascrivere il blocco login per aggiungere i link all'organizer e alla inbox.
Struttura e generazione automatica del filesystem
L'organizer sarà una sezione standard di FlatNuke, nascosta e richiamabile tramite un link posto nel blocco di login del singolo utente; le informazioni verranno salvate in una directory dedicata ad ogni utente sotto /misc.
La costruzione della directory utente deve essere fatta con attenzione dato che andrà a contenere dei dati sensibili; l'obiettivo è quindi quello di realizzare una struttura che ne garantisca la non tracciabilità.
La primissima volta che un qualsiasi utente accede all'organizer viene effettuata l'installazione generale dell'estensione:
/misc/users_home_dirs
; avrà una struttura simile a quelli dove vengono salvati i dati degli utenti, di modo da renderlo "invisibile" all'esterno:
#codice-a-10-cifre-codificato-MD5
/misc/users_home_dirs
, e generate tramite una codifica in MD5 della stringa-unione del nome utente con il codice precedente; le directory utente avranno quindi una denominazione simile a questa (attenzione, in caso di reinstallazione è necessario avere una copia del file con il codice random generato, altrimenti non sarà possibile in alcun modo ricreare i richiami alle cartelle utente corrette!):
/misc/users_home_dirs/{nas98f7nsfaoifsuod89sanfs90a}
Files
Il file principale ovviamente è il section.php che, in base al parametro "action" che viene passato, richiama la procedura corretta. Si è provveduto a rendere la struttura estremamente modulare:
config.php
, che contiene le variabili d'ambientefunctions.php
, che contiene funzioni di comodostyles.php
, che contiene gli stili graficilanguages.php
, che contiene le traduzioniheader.php
, che contiene il menu per richiamare le funzioni (hotkeys?)section.php
, che gestisce le chiamate alle funzionifooter.php
, che chiude la strutturaNella sottodirectory none_images
sono presenti tutte le risorse necessarie all'interfaccia grafica.
Credits
Nella realizzazione di questa estensione, si è fatto riferimento ad altri software sia per ispirarsi alla struttura che nella vera e propria inclusione di parti di codice (o di oggetti, come le icone); qui di seguito una lista:
Sono tutti rilasciati con licenze libere.
Una volta terminata la realizzazione dell'organizer, se ne puo' utilizzare la struttura come base per la creazione di un GroupWare; le features aggiuntive individuate sono:
Il problema fondamentale per la sua costruzione è sicuramente da individuare nella mancanza in FlatNuke della gestione di gruppi di utenti; esiste, è vero, una patch (user_mod_cont) che si occupa dei permessi di gruppi di utenti per le sezioni, ma questo vorrebbe dire che il gruppo di utenti dovrebbe essere a sua
volta un utente, con tutti i limiti che ne conseguono.
La gestione per livelli non è proponibile in assoluto, non deve esserci alcuna gerarchia tra i vari gruppi/progetti, ma assoluta parità.
Se ne deduce che si deve creare un nuovo strato organizzativo delle utenze:
PARTE DEL PROGETTO | % |
---|---|
Installazione/configurazione | 100% |
Appuntamenti | 100% |
Note | 100% |
Bookmarks | 100% |
Rubrica | 100% |
Mail su POP | 5% |
Gestione InBox | 15% |
Internazionalizzazione (it, en) | 50% |
Calendario | 0% |
Integrazione in FlatNuke 2.5.4 | 50% |
GroupWare | 5% |
Qualche screenshot del lavoro in divenire...