-

Valid XHTML 1.0!

-

Valid CSS!

-

Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0

-

Bobby WorldWide Approved AAA

ISIS 1.1

ISIS - Intranet Site Interactive System

Cos'è

ISIS - Intranet Site Interactive System è un complesso sistema gestionale in PHP-MySql per siti intranet locali di tipo amministrativo. Attualmente è finalizzato all'uso nell'intranet dell'Agenzia delle Entrate, ma non è detto che, in seguito, la cosa non si possa allargare: infatti, vista la sua modularità, potrebbe essere facilmente adattato a realtà differenti; tuttavia, sarebbe opportuno che le modifiche fossero fatte da chi sia integrato in tali realtà, ovvero fatte sul campo (questo è un invito...).

È, di fatto, il frutto di una vecchia sfida che, implicitamente, avevo lanciato in merito alla eventualità che l'Agenzia potesse attingere all'interno per certa produzione web e, in particolare, per l'intranet locale. La mia amministrazione, per quanto riguarda l'intranet, sta inesorabilmente scivolando verso un totale appiattimento grafico e contenutistico, secondo un modello proprietario estremamente discutibile. Mi rendo abbastanza conto del fatto che che, conseguentemente, ISIS avrà scarse possibilità di essere accettato o, addirittura, ufficializzato... Ma non importa, ISIS non pretende questo: semplicemente si pone come alternativa libera, liberamente realizzata con software e tecnologia libera e liberamente concessa.

Ho costruito ISIS interamente con le mie mani senza attingere ad altro che non siano i manuali ufficiali di php e mysql. Nessuno può quindi avanzare pretese o opporsi alla mia scelta di renderlo disponibile a tutti. Fanno eccezione le classi per la conversione a pdf, che sono realizzazioni di Wayne Munro, R&OS Ltd, comunque concesse sotto licenza GPL. Ne ho tuttavia scritto una breve estensione (ext.isispdf.php) per aggiungere una manciata di semplici metodi. Devo, inoltre, ringraziare alcuni colleghi (Antonino I., Carlo P. e Sandro Z.) per alcuni preziosi suggerimenti. A Sandro, in particolare, devo l'input per l'autenticazione in Active Directory.

[sommario]

Note alla versione 1.1

23 novembre 2006 - Rilasciata la versione 1.1!

Innanzitutto, ho unificato le due versioni (base e ad) ed ora la scelta viene effettuata all'inizio della configurazione. Successivamente, si può tornare sui propri passi intervenendo manualmente sulla costante C_LOG_TYPE impostata nel file di configurazione etc/config-plus.php.

Questa nuova versione permette, inoltre, la gestione diretta delle adesioni non direttamente scaturenti da controllo bensì da invito per studi di settore o parametri.

Ho introdotto, poi, una certa gestione delle autorizzazioni in merito all'elencazione dei controlli, dei verbali, delle verifiche, degli accessi, delle adesioni e delle autotutele. Ora vi sono tre livelli di protezione: uno restrittivo, che consente al semplice utente solo l'elencazione degli atti personali, al capo-team anche quella di tutto il team e solo al capo-area, al direttore e ad eventuali utenti privilegiati (pensate, ad esempio, agli addetti alla pianificazione e consuntivazione) quella di tutto l'ufficio; uno intermedio, che consente agli utenti anche la visualizzazione per il team ed al capo-team anche quella di tutto l'ufficio; uno permissivo, che consente al semplice utente l'elencazione per tutti i livelli. Naturalmente quando parlo di utente, intendo componente di team di controllo...

Infine, ho razionalizzato gli elenchi ed ho corretto qualche piccolo bug. Sono tutti aggiornamenti, insomma, nati da mesi di test sul campo.


Descrizione

caratteristiche

Com'è ormai consueto e opportuno nei siti intranet (ed in molti siti internet), ISIS si suddivide in due macro-aree: quella libera e quella riservata, ad accesso autenticato. Una delle peculiarità di ISIS è però il fatto che le due aree non sono alternativamente esclusive: cioè, l'accesso in area riservata non preclude l'uso degli strumenti messi a disposizione nella cosiddetta area libera.

Nella precedente release, esistevano due versioni di ISIS: quella base e quella AD, che si differenziavano esclusivamente nelle modalità di accesso in area riservata. Ora (con la versione 1.1) la scelta viene fatta con la configurazione. La prima opzione, che ha il vantaggio di funzionare con un'installazione standard, prevede la memorizzazione di una password in database (in forma criptata, naturalmente); la seconda, che ha, invece, bisogno di alcuni interventi che cambiano in base al sistema operativo del server, ha il vantaggio di utilizzare le credenziali di accesso al dominio.

Tranne alcune brevi intestazioni delle pagine, i contenuti di ISIS sono totalmente dinamici: sono, cioè, inseribili, modificabili e, eventualmente, eliminabili con tutta semplicità per mezzo del Content Manager ATOMS (A Text Only Managing System), semplicissimo e leggerissimo gestore di contenuti che ho realizzato alcuni anni fa e che ho adattato per l'occasione (ma di questo parleremo più ampiamente nella sezione Amministrazione). La gestione dinamica di un sito ha innumerevoli vantaggi, non ultimo quello di poter, in qualsiasi momento, ripristinare o aggiornare i file senza perdere i dati inseriti (che stanno, infatti, su database).

[sommario]

L'area libera di ISIS prevede inizialmente 10 pagine (o sezioni) elencate in menu; altre possono essere aggiunte con estrema semplicità (ma di questo parleremo dopo):

  • Home - In essa abbiamo le classiche news, per cui è modificabile l'impaginazione, e una citazione d'autore, attinta in modalità casuale dal database.
  • Elenchi - Di fatto, un motore di ricerca per gli utenti del sito e per i comuni del distretto. È possibile la formulazione dinamica in pdf degli elenchi e dei fogli di presenza del personale.
  • Documenti - I documenti caricati (upload) e resi disponibili tramite content manager, suddivisi per categorie. Al momento di caricare un nuovo documento, si può optare, tramite un flag, per la sua riservatezza, per cui lo stesso si renderà visibile solo in area riservata. Caricando un documento, inoltre, si avrà la generazione automatica di una news (news è un termine indeclinabile :-) che rimanderà alla pagina. La stessa cosa avverà con l'inserimento di software, modelli, immagini e contributi.
  • Modelli - Modulistica di uso generale resa disponibile. Altra modulistica, di uso personale (istanze, etc.), è compilabile on-line in area riservata. In questa sezione è possibile, inoltre, compilare on-line una lettera generica su carta intestata con elaborazione in formato pdf (l'estrema semplificazione del word processing, insomma).
  • Software - Programmi, fogli di calcolo, etc. Naturalmente, si dovrebbe rendere disponibile esclusivamente software libero e autorizzato.
  • Contributi - Di fatto, un forum semplificato, dove possono essere inseriti argomenti di discussione e relativi commenti. Per l'inserimento, l'autenticazione è obbligatoria e si rende opportuna perché ognuno, anche se opta di rimanere apparentemente anonimo, possa assumersi le responsabilità di quanto scritto.
  • Immagini - Galleria di immagini, che possono essere foto dell'ufficio, di panorami e scorci del territorio, wallpapers, etc. Caricando una nuova immagine (oltre alla suddetta generazione della news), ISIS crea una miniatura proporzionale che comparirà nella pagina.
  • Link - Link utili suddivisi in categorie e sottocategorie.
  • Ausili - Ausilî di calcolo per le attvità di controllo.
  • Info-ufficio - Le informazioni essenziali sull'Ufficio inserite in database.

Oltre alle pagine elencate in menu, altre sono disponibili indirettamente (credits, amministrazione, etc.).

[sommario]

L'area riservata ad accesso autenticato costituisce il massimo dell'espressione delle potenzialità di ISIS. Effettuato l'accesso, si visualizza un altro menu al di sotto della testatina:

  • account, che è la pagina di default in area riservata, contiene le informazioni sull'utente autenticato, informazioni che, ad eccezione del codice fiscale e del cognome, possono essere modificate dall'utente stesso con estrema semplicità; la pagina permette anche la variazione della propria password (il link a postoffice per la versione AD);
  • gest-controlli o info-controlli, in base al tipo di autorizzazione dell'utente; gli utenti appartenenti ad un team di controllo (e, in aggiunta, il capo-ufficio e il capo area controllo) hanno a disposizione un'area dedicata alla completa gestione dei controlli (accedendo alla quale si ottiene la variazione del menu generale), ma anche delle verifiche, degli accessi, dei verbali in carico, delle adesioni e delle autotutele; sono qui disponibili vari titpi di elenco e (cosa veramente utile) la consuntivazione in tempo reale dell'attività di controllo, ma non solo (si possono, infatti, indicare altre attività...) - gli altri utenti (non appartenenti ai team di controllo) possono comunque ottenere delle informazioni generiche sui singoli controlli (team, accertatore, stato della pratica, scadenze...) e possono anche stampare degli utili pro-memoria per gli eventuali richiedenti;
  • documenti-ris, dove sono disponibili i documenti, ordinati per categoria, caricati con il flag "riservato" (v. supra);
  • istanze - compilare in formato pdf un'istanza di ferie, di permesso, di assenza per malattia, etc. non è mai stato così veloce...;
  • CMS, accessibile, però solo agli amministratori e ai superutenti - in pratica il Content Manager ATOMS, da dove gestire in tempo reale l'amministrazione del sito (ma ne parleremo ampiamente dopo);
  • disconnetti, per uscire dall'area riservata.

[sommario]

screenshot

Ho optato per una bassa qualità delle immagini a vantaggio della leggerezza...

configurazione di ISIS

La pagina di configurazione di ISIS: semplice e intuitiva.

homepage di ISIS

La homepage di ISIS: naturalmente l'Ufficio di Paperopoli ancora deve essere fondato (di certo avrebbe almeno due soggetti di grandi dimensioni...).

area riservata e account di ISIS

La pagina di default dell'area riservata di ISIS: l'account con le informazioni sull'utente autenticato.

[sommario]

gestione dei controlli di ISIS

La pagina di gestione dei controlli di ISIS: notate com'è variato il menu generale a sinistra...

ATOMS - content manager di ISIS

La pagina dei credits del content manager ATOMS: un gestore di contenuti solo-testo. Prossimamente, se la cosa avrà un seguito, ho intenzione di integrarlo anche graficamente in ISIS.

homepage personalizzata di ISIS

E, per finire, ecco una homepage personalizzata di ISIS: questo ufficio, nonostante il nome inusuale, esiste veramente (è quello dove presto attualmente servizio). Notata la testatina?

[sommario]


Pre-requisiti

Per utilizzare ISIS sono necessari:

  • Il software web-server Apache (sia serie 1.3.x - più stabile - che serie 2.x - più performante);
  • PHP a partire dalla versione 4.3.x (non è detto che con versioni precedenti non funzioni perfettamente - semplicemente non ho avuto modo di provare...); per la versione base di ISIS, basta l'installazione standard, per quella ad, sono invece necessari alcuni interventi, che si differiscono in base al sistema operativo del server;
  • MySql (ho provato con successo sia la serie 4.x che la serie 5.x).

server Linux

Come molti di voi sapranno, non esiste un unico sistema Linux, ma bensė esistono centinaia di distribuzioni diverse che hanno, tuttavia, un denominatore comune: offrire un sistema operativo completo, affidabile e soprattutto libero e open-source.

Inoltre, tutte le distribuzioni (o quasi) hanno anche la caratteristica di essere nativamente orientate sia alle utilizzazioni desktop che a quelle server, adottando, coerentemente, software libero. Ne consegue che un sistema Linux ha già, in genere, tutto quello che serve per essere utilizzato come web-server con piattaforma Apache, PHP e MySql (ma non solo...).

A riguardo della opzione AD, le cose si fanno un po' più complicate, nel senso che ci sono delle notevoli differenze tra una distribuzione e l'altra: alcune hanno già nativamente l'estensione ldap di PHP (necessaria per l'autenticazione in Active Directory), mentre altre no e bisogna, nel caso, documentarsi bene. Per quanto mi riguarda, essendo io un appassionato della distribuzione Slackware (distribuzione storica, famosa per la sua purezza, affidabilità e velocità, ma anche per il fatto che, in genere, non rende le cose decisamente facili), con la versione 10.2 di tale distribuzione, ho dovuto aggiornare Apache, PHP e Mysql al ramo current ed ho dovuto aggiungere alcune estensioni... Mentre ora, Slackware 11 (rilasciata il 2 ottobre 2006) ha il supporto ldap nativo. Mi si riferisce, inoltre, che una distribuzione leggera, orientata alle applicazioni server, con il supporto ldap nativamente attivo, è Ubuntu-server.

[sommario]

server Windows

Discorso inverso per Windows. Innanzitutto questo sistema operativo, in qualsiasi versione desktop, non può essere utilizzato come server: non che le versioni server siano radicalmente diverse, ma tutto dipende dalle finalità commerciali della Microsoft, che hanno portato la casa di Redmond a porre una limitazione d'accesso in rete alle postazioni client (massimo 10 utenti contemporanei). Ne consegue che bisogna avere una installazione server, ma non basta: bisogna installare Apache, PHP e MySQL. La strada più semplice potrebbe essere quella di installare il pacchetto all-in-one EasyPHP, che fornisce web-server, linguaggio e database in un colpo solo: io l'ho utilizzato per testare le pagine, nella versione 1.7 (esiste la 1.8 ma, personalmente, ho avuto problemi con questa versione e, non avendo il tempo per verificarne i motivi, sono tornato alla 1.7...). Naturalmente Windows server ha già il suo DBMS (MSSql) e il suo web-server proprietario (IIS), su cui si potrebbero installare le estensioni per PHP e MySql, ma non credo valga la pena di fare certe forzature; e poi... lo spirito di ISIS č diverso.

Le modifiche da fare per l'opzione AD sono, invece, relativamente semplici: basta aprire con un editor di testo il file php.ini, che si trova nella directory Apache (di EasyPHP, se avete installato quello...) e togliere il ";" che si trova all'inizio della stringa (per decommentarla)...
extension=php_ldap.dll
che dovrebbe essere verso la fine del file e aggiungere, nella sezione Resource Limits, la stringa...
ldap.max_links = -1
Dovrebbe bastare...

[sommario]


Download

I file, per comodità, sono disponibili in due formati compressi: .zip e .tar.bz2. Il contenuto degli archivi č identico e entrambi possono essere utilizzati sia in ambiente Linux che in quello Windows.

ISIS 1.1

isis-1.1-e.zip

1.04 Mb

isis-1.1-e.tar.bz2

906 Kb

 

da 1.0 a 1.1

Se avevamo già la versione 1.0 e non vogliamo reinstallare tutto, possiamo optare per l'aggiornamento: basta scaricare il seguente pacchetto, estrarlo nella root del sito (sovrascrivendo i relativi file) e lanciando dal browser il file indirizzoISIS/update1.1.php, che ci permetterà di selezionare il livello di protezione degli elenchi dell'area controllo e che provvederà anche all'aggiornamento del database.

isis-update1.1.zip

52.2 Kb

isis-update1.1.tar.bz2

36.2 kb

 

[sommario]


Installazione

L'installazione di ISIS è semplicissima: di fatto, non si tratta di un'installazione, ma basta decomprimere il file scaricato, estrarre il contenuto e posizionarlo nella root-directory del proprio server. Naturalmente si può optare per l'inserimento di ISIS in una sotto-cartella, così da avere, per esempio, la possibilità di ospitare più siti sullo stesso server. In tali casi, naturalmente, il sito sarà raggiungibile all'indirizzo http://ip-server/sotto-cartella (non è da sottovalutare, comunque, la possibilità di configurare il proprio DNS-server, così da poter raggiungere il sito con un nome più rappresentativo...).

Per decomprimere i file scaricati, sotto Windows usate il vostro programma di compressione preferito, mentre sotto Linux potete optare per le utility grafiche del vostro file-manager o per la linea di comando con...

unzip nomefile.zip

per i file .zip, oppure con...

tar xjvf nomefile.tar.bz2

per quelli .tar.bz2.

Dopo aver posizionato il tutto, se avete un server Linux (bravi!), tenendo presente che, su questo sistema, la gestione della sicurezza su file e cartelle è decisamente più seria che altrove, si rende necessaria la modifica dei permessi di alcune directory (quelle dove ISIS deve scrivere dei file o caricare file). Le cartelle che vanno impostate con permessi 707 sono: doc, etc, img, img/min, inc, sfw, tmp, var e var/log. Potete farlo graficamente dal vostro file-manager (konqueror, nautilus, rox...), oppure, molto più velocemente, da un terminale, con...

su
Password: [password di root]
cd [root-directory (quella dove avete posizionato ISIS)]
chmod -R 707 var var/log tmp sfw img img/min inc etc doc

[sommario]


Configurazione

A costo di ripetermi..., anche la configurazione di ISIS è di una semplicità disarmante: basta aprire un browser qualsiasi di una qualsiasi postazione (naturalmente stiamo dando per scontato che il server sia perfettamente configurato in rete...) e digitare, nella barra dell'indirizzo, l'i.p. del server (+ /sotto-cartella, eventualmente...), selezionare il tipo di autenticazione ed inviare, per trovarsi davanti alla pagina di configurazione del primo screenshot. Qui l'unica difficoltà potrebbe essere costituita dalle credenziali di MySql: prima di procedere, dobbiamo esserne a conoscenza (possiamo anche inserire un nuovo amministratore, usando la console di MySql o il gestore PhpMyAdmin). Inseriamo i campi richiesti, seguendo le semplici indicazioni e, se tutto va bene, ci ritroveremo in una paginetta di registrazione, dove va inserita soltanto l'e-mail di un amministratore del sito. Fatto questo, saremo reindirizzati subito nella home del nostro nuovo e fiammante sito locale!

Cosa abbiamo fatto?

Riempiendo quel semplice form, abbiamo:

  • Abbiamo creato il file siteconfig.inc.php sotto etc; esso contiene le informazioni base del sito, memorizzate in forma di costanti; questo file, come tutti gli altri del resto, si può modificare (se, ad esempio, avessimo sbagliato qualcosa riempiendo il form di configurazione...); nel caso, però, attenzione alla sintassi (basta una virgola, in più o in meno, perché non funzioni più nulla)!
  • Abbiato creato l'ulteriore file di configurazione specifico della versione 1.1 (etc/config-plus.php), che contiene le informazioni relative alla versione e quelle inerenti alla scelta del livello di protezione impostato.
  • Abbiamo creato ex-novo un database relazionale MySql con sole 64 tabelle. Il nome del database è quanto più possibile univoco, allo scopo di permettere l'eventuale hosting di diversi siti ISIS sullo stesso server.
  • Ci siamo registrati alla newsletter di ISIS, per mezzo della quale potremo conoscere, in tempo reale, tutte le novità future e ricevere gli eventuali aggiornamenti.

[sommario]


Amministrazione

Un sito dinamico non sarebbe tale se non avesse il suo bravo Content Manager, ovvero uno strumento attraverso il quale fosse possibile aggiungere, modificare o eliminare i contenuti del sito stesso.

il Content Manager

Il Content Manager di ISIS è ATOMS (A Text Only Managing System), che ho realizzato, in una prima stesura, già nel 2003, come versione leggera di un altro manager, COSMOS, più orientato all'e-commerce (Commerce Oriented Site Management Organized System, che non ho mai finito del tutto, però). Non sfigurerebbe, credo, in un'ipotetica classifica dei content manager più piccoli al mondo: infatti ATOMS pesa meno di 75 kb!

Per accedere ad ATOMS, basta autenticarsi e cliccare sul link CMS; ad esso possono accedere solo il superutente, che abbiamo indicato in sede di configurazione, e gli eventuali amministratori che inseriremo dopo. La differenza tra superutente e amministratore consiste nel fatto che il primo può gestire i ruoli dell'ufficio e, quindi, inserire, tra l'altro, gli amministratori.

ATOMS è provvisto di un complesso (solo in apparenza) menu ad albero, dove sono tenute in ordine e disposte con un certo criterio tutte le attività gestibili. Nella barra inferiore, inoltre, ci sono altri tre link che rinviano, rispettivamente, alla home di ATOMS, alla pagina dei credits e all'uscita dal CMS (rimanendo, tuttavia, in area riservata). Cliccando sulle voci di menu, si accede alle liste relative dove, in base ai campi contenuti, è possibile aprire. modificare o eliminare i singoli record. Cliccando sulle intestazioni delle colonne, inoltre, è possibile l'ordinamento alfabetico dei dati o, nel caso di tipi o categorie (tabelle relazionate), il raggruppamento per categorie omogenee. Inoltre, se ci troviamo al cospetto di una tabella con molti record, ATOMS permette di personalizzare l'impaginazione in base al numero di record per pagina.

[sommario]

primi passi

Le prime cose da fare, una volta configurato ISIS, potrebbero essere (non necessariamente in quest'ordine):

  1. inserire i dati dell'ufficio, tenendo presente che le immagini debbono avere dimensioni precise (come spiego sotto);
  2. inserire i Comuni del distretto, tenendo presente che, per ora, solo i dati contrassegnati con un asterisco sono essenziali;
  3. inserire gli utenti del sito (tutti i colleghi); in un primo momento, io inserirei qualche amministratore, così da avere un po' d'aiuto in questa noiosa incombenza; per farlo, dopo aver inserito gli utenti pre-destinati, bisogna andare alla sezione ruoli del menu e abbinare utente a ruolo;
  4. il resto può essere inserito all'occorrenza.

[sommario]

upload

ATOMS consente l'upload (caricamento) di documenti (compresi i modelli), di file e di immagini. Il peso massimo consentito per ogni file è di 2 Mb (che coincide con le impostazioni native di Apache). Se l'upload ha successo, ISIS produce automaticamente una news e, per quanto riguarda le immagini, anche una miniatura da visualizzare nella pagina.

dimensioni delle immagini

Per rispettare il layout di ISIS, è naturale che le immagini caricate debbano rispettare determinate dimensioni. La cosa non è tanto determinante per le immagini caricate per il download (wallpaper, immagini territorio, etc.) quanto per quelle facenti parte della grafica. Avrei potuto forzare le dimensioni, sia mediante la codifica html, sia facendo creare al PHP delle miniature (come avviene per le immagini della gallery), ma i risultati non sarebbero stati sempre ideali...

Ecco, in dettaglio, alcune indicazioni:

  • Testatina personalizzata - Un'eventuale testatina personalizzata (che consiglio vivamente: quella di default è proprio brutta. Ma chi l'ha fatta? ;-), da inserire nella tabella ufficio, deve necessariamente avere le dimensioni di 504 x 95 pixel; non c'è alcun bisogno di inserire graficamente il nome dell'Ufficio nella nuova testatina;
  • Immagine dell'Ufficio - Sempre in tabella ufficio, si può inserire un'immagine rappresentativa del proprio ufficio. In questo caso, le dimensioni non sono fisse, ma è importante che la larghezza non superi i 595 pixel; sarebbe anche opportuno non esagerare con l'altezza...; io ho optato per una striscia di due immagini delle dimensioni complessive di 593 x 201 px;
  • Icone delle news - Le icone delle news possono essere cambiate in tabella immagini alla voce di menu news; le dimensioni massime devono essere di 48 x 48 pixel;
  • Autori delle citazioni - Volendo inserire nuove citazioni (vi consiglio di non esagerare, però, altrimenti i colleghi, invece di lavorare, passeranno ore a leggerle tutte...), bisogna inserire prima l'autore (se già non c'è ) in tabella autori alla voce di menu citazioni; per quanto riguarda il ritratto, è fondamentale l'altezza, che dev'essere esattamente di 68 pixel.

[sommario]

inserimento nuove pagine statiche

Anche in questo caso, ISIS vi sorprenderà per la sua semplicità!

Per inserire nuove pagine statiche (non più di due o tre, però, altrimenti vi tocca cambiare lo stile del layout...), basta inserire titolo e testo in tabella pagine aggiuntive alla voce di menu pagine, aiutandosi con il mini-editor; è importante seguire le indicazioni dell'editor e ricordarsi di chiudere eventuali blocchi di testo aperti.

Inserendo una nuova pagina, automaticamente si modifica anche il menu principale di ISIS.

inserimento nuove pagine dinamiche

Qui ci fermiamo con la semplicità (della serie "fatelo solo se sapete quello che state facendo"): per inserire nuove pagine dinamiche, bisogna avere una conoscenza più o meno approfondita di PHP e MySQL, in quanto si deve fare tutto da soli. ISIS, tuttavia, vi viene in aiuto permettendo di inserire le nuove pagine (e relative eventuali tabelle di MySql) in ATOMS: per farlo, basta leggere le istruzioni in commento ai file menu.inc.php sotto atoms/a_etc/, list.inc.php e do.inc.php sotto atoms/a_inc/.

Mi sembra appena il caso di precisare di fare estrema attenzione alla sintassi!

avvertenze particolari

La gestione del database è lasciata alla più ampia libertà. Particolare attenzione, tuttavia, va posta nella modifica o nella cancellazione di record facenti parte di tabelle relazionate (ad esempio, quelle che classificano tipi o categorie): infatti, se noi abbiamo inserito dei record che fanno capo ad una certa categoria, dobbiamo essere coscienti che, se noi successivamente andiamo a modificare o cancellare proprio quella categoria, l'azione avrà necessariamente ripercussione in tutti i record figli...

Per stare tranquilli, la regola generale potrebbe essere: nelle tabelle che classificano tipi o categorie, non togliamo e non cambiamo, piuttosto aggiungiamo.

[sommario]


Manutenzione e backup

La manutenzione di un sito ISIS non richiede niente di particolare. L'unico accorgimento potrebbe essere quello di svuotare, saltuariamente, la cartella tmp. Per venire incontro alle diverse esigenze cross-platform e cross-browser (non imaginate nemmeno quanti problemi dia Internet Explorer :-( ), ho dovuto, infatti, far sì che i file .pdf dinamicamente generati andassero a scrivere fisicamente dei file univoci nella cartella, appunto, tmp. Non svuotarla, comunque, non comporterebbe altro che il riempimento progressivo della cartella e, conseguentemente, del disco... Un'altra cartella dal contenuto variabile è var/log, dove, giornalmente, vengono scritti dei file di log, con i dati di connessione e disconnessione degli utenti autenticati. In questo caso, i file sono di una dimensione così irrisoria che lo svuotamento della cartella si rende superfluo.

Immaginiamo, per assurdo, che il server improvvisamente esploda o che venga inghiottito dalla terra... Perderemmo tutto? Beh, i dati inseriti nel database li perderemmo di sicuro. È per questo motivo che esiste il backup! Esso è necessario soltanto per il database. Per il sito, infatti, è praticamente inutile: basterebbe soltanto ripartire daccapo dai file originali (configurazione etc...). Tutto ciò, naturalmente, ha valore se non abbiamo fatto modifiche ai file! È anche per questo motivo che invito calorosamente alla condivisione delle eventuali modifiche!

Per fare il backup del database ci sono due strade: quella graficamente guidata e quella da linea di comando. Per la prima, abbiamo bisogno di qualche gestore di MySql (PhpMyAdmin, etc...). Per la linea di comando, sia sotto Linux che sotto Windows (dove, però bisogna prima posizionarsi nella directory mysql\bin), basta digitare (i nomi in maiuscolo sono le variabili)...

mysqldump --add-drop-table NOME-DB > PERCORSO/FILE.txt -u AMMINISTRATORE -p
Enter password: PASSWORD

In questo modo, il dump del database verrà scritto sul file di testo PERCORSO/FILE.txt. Il nome del database lo ricaviamo dal valore assegnato alla costante C_DB nel file etc/siteconfig.inc.php. Il percorso del file può anche essere una cartella condivisa in rete (e montata con Samba, se parliamo di Linux).

Al momento di ripristinare, dopo aver rifatto la configurazione di ISIS, basta digitare...

mysql NOME-DB < PATH/FILE.txt -u AMMINISTRATORE -p
Enter password: PASSWORD

Tali operazioni (backup ma anche lo svuotamento di tmp), sotto Linux, possono essere benissimo organizzate con crontab, uno strumento che permette di far eseguire al sistema delle operazioni pre-determinate a intervalli pre-stabiliti. Anche sotto windows dovrebbero esistere strumenti di schedulazione simili...

[sommario]


Utilizzo da parte degli utenti

Non mi pare ci siano istruzioni particolari da dare agli utenti per l'utilizzo di ISIS... Tutte le indicazioni che servono sono esposte nelle singole pagine.


Informazioni tecniche

Ho realizzato ISIS sfruttando molte potenzialità dell'immenso PHP, ricorrendo, in particolare, alla programmazione orientata agli oggetti: il core di ISIS è infatti l'oggetto (o classe) Isis (contenuto nel file lib/isis.php), un motore di quasi 1300 righe.

Anche ATOMS è gestito da una classe (Atom, nel file atoms/a_lib/atom.lib.php). Sinceramente, essendo un po' più datata rispetto ad Isis, risente di qualche ingenuità dovuta all'inesperienza e presenta qualche ridondanza nel codice. È mia intenzione, appena possibile, di unificare le due classi e di integrare ATOMS in ISIS anche dal punto di vista grafico.

Le informazioni sul sito sono memorizzate su di un database relazionale MySql di 64 tabelle, delle quali una consistente parte è dedicata alla gestione dei controlli e delle attività inerenti...

Il codice di marcatura di ISIS è XHTML 1.1 che ho validato con successo tramite il validatore del W3C (ho potuto farlo mediante il direct input del codice: essendo ISIS posizionato dentro una intranet, infatti, la validazione on-line si rende impossibile).

Per lo stile ho utilizzato i CSS; anche da questo punto di vista, ISIS ha superato l'esame del W3C. Da notare il fatto che, con l'eccezione di ATOMS, in tutto ISIS non c'è una sola tabella e tutto il layout è ottenuto con un uso particolarmente estremo dei fogli di stile.

ISIS non dimentica gli utenti ipo o non vedenti: grazie alla validazione dell'XHTML 1.1, dei CSS e ad altri piccoli accorgimenti, è presumibile (la certezza, in questo caso, è quasi impossibile, non essendoci un modo efficace per verificarlo...) che esso sia conforme agli standard WAI AAA (o, almeno AA).

[sommario]

Per l'elaborazione del codice, ho utilizzato esclusivamente editor testuali: prevalentemente Quanta + sotto la mia Slackware e qualche editor spicciolo free sotto Windows. Non ho trovato un editor sotto Windows degno di Quanta +; ho provato anche un prodotto commerciale, PHPEdit, con licenza gratuita per uso personale, ma mi è sembrato alquanto macchinoso e, inoltre, molto spesso si impunta. Per la semplice grafica ho utilizzato il mio insostituibile The Gimp.

ISIS è cross-platform: infatti, l'ho quasi interamente costruito e testato sotto Linux (la mia fida Slackware 10.2) e abbondantemente testato anche sotto Windows (con EasyPHP 1.7).

ISIS è cross-browser: si visualizza correttamente con Firefox (il miglior browser esistente), Mozilla (ora SeaMonkey), Opera, Internet Explorer, Konqueror (e se si vede con Konqueror, potete stare certi che si vede bene anche con il Safari del mac-os), Galeon... Devo dire, ad onor del vero, che con Konqueror ed Opera (solo sotto Linux), ho notato un piccolo disallineamento delle barre arancioni, ma è cosa di poco conto...

ISIS è cross-resolution: grazie al suo particolare layout, infatti, non avremo problemi a visualizzarlo con qualsiasi risoluzione (da 800 x 600 in su).

ISIS 1.1, una volta decompresso, ha una dimensione di 3,24 Mb e conta 166 file (ad esclusione di quelli di configurazione, log, etc.), organizzati in 18 cartelle.

[sommario]


Considerazioni finali

ISIS è genuino FLOSS (Free/Libre Opensource Software, ovvero Software Libero a Sorgente Aperto). Utilizzate ISIS liberamente, ma fatelo sotto la vostra responsabilità. Potete anche modificarlo a piacimento: non mi offendo, anzi, ve lo consiglio perché sicuramente lo migliorereste. In questo caso, però vorrei che le modifiche fossero condivise con tutti.

In questa ottica, penso che ISIS possa farsi rientrare nello spirito della Licenza GNU-GPL.



| home [h] | | ISIS | | sviluppo web [w] | | php-gtk [g] | | python [p] | | interessi [i] | | opinioni [o] | | chi sono [m] | | info [f] |

Testato su: Firefox, Mozilla, Netscape, Konqueror, Galeon, Opera & Internet Explorer.
ninobi.altervista.org → software libero e libere suggestioni è una realizzazione di nino b
Questo sito è dedicato a Teresa, Melania & Annalisa.