Mini sistema editoriale con ASP / XML / XSL

20 marzo 2006

Un Sistema editoriale è semplicemente un sistema che raccoglie il contenuto degli articoli e li combina direttamente con la grafica, generando un documento(html, pdf, wml). Tutto ciò è comodo per le aziende di web Design per vari motivi, per esempio si riesce a dividere il lavoro del grafico da quello del programmatore e da colui che inserisce i testi, portando notevoli vantaggi alla comprensione del codice e quindi alla velocità di consegna di un prodotto finito.

Potete immaginare come può essere utile per un’azienda poter decidere di compiere un restilyng del sito senza mettere mani nel codice, ma solo nella grafica, o anche porre il cliente in condizione di gestirsi le notizie. Tutto ciò è ormai possibile grazie al boom che hanno avuto negli ultimi mesi l’xml e l’xslt , linguaggi destinati a rivoluzionare il web . Ma cosa sono xml e xslt ? XML (sta per Extenseble Markup language) è un metalinguaggio che permettere di creare altri linguaggi, mi spiego meglio con un esempio:

<Utenti>
<utente id=”1″>
<nome>Tizio</nome>
</utente>
<utente id=”2″>
<nome>Caio</nome>
</utente>
</Utenti>

Come potete capire dall’esempio, l’xml è un linguaggio strutturato ad albero ed ogni tag descrive il contenuto di se stesso.
Ma cosa manca a questi tag per diventare una pagina web?Chiaramente gli manca la formattazione, che gli verrà applicata tramite l’xslt, il quale è un linguaggio in grado di formattare e manipolare l’xml a vostro piacimento.

Progettazione e realizzazione

Per permettervi di comprenderne al meglio l’utilità e il funzionamento, ho progettato un semplicissimo Sistema editoriale che consente di gestire le parti fondamentali di un articolo e costituisce una base su cui costruire qualcosa di più concreto.

Dapprima inseriamo nel database le principali parti di una notizia, cioè titolo, testo , e/o notizia in breve , autore, email dell’autore, in seguito costruiamo una consolle per gestire questi record (cancellazione, modifica,inserimento) e le conferiamo la possibilità di generare pagine e di vedere la preview.

Struttura del database

Articoli
IdArticolo contatore (chiave primaria)
Titolo varchar(255)
Testo memo
Breve varchar(255)
Autore varchar(255)
EmailAutore varchar(255)

Il processo di creazione di una pagina html tramite sistema editoriale può essere suddiviso in quattro processi fondamentali:

– configurazione del sistema
– gestione dei dati
– generazione dinamica dell’xml
– output dei dati

1) Configurazione del sistema

Lo script di configurazione setta alcune variabili pubbliche a tutto il sistema, per cui prima di incominciare a lavorare, impostate tutte le opzioni di questo script ;)

<%
‘Nel parametro qui sotto inserite il path dove è situato il db access
path_db =”c:\inetpub\wwwroot\html-it\sed.mdb”

‘——— XSL ——————————-
‘ Inserire il path dove sono situati gli xsl
path_base_xsl=”c:\inetpub\wwwroot\html-it\xsl\”
‘inserire qui l’url relativo al path sovrastante
url_base_xsl =”http://127.0.0.1/html-it/xsl/”
‘————- Informazioni generali ———
url_base =”http://127.0.0.1/html-it/”
path_base_file_da_generare =”c:\inetpub\wwwroot\html-it\html\”
%>

2) Gestione dei Dati

La gestione dei record a sua volta è suddivisa in quattro sezioni, cioè:
a) elenco
b) inserimento
c) modifica
d) cancellazione

a) Elenco dei record (in questo caso, gli articoli)

Questa procedura propone tutti gli articoli presenti nel database, suddivisi per pagine a seconda del numero degli articoli. Visualizza il codice ASP

b) Inserimento dei dati

L’inserimento avviene attraverso un form, che contiene delle EditBox (o caselle di testo) quanti sono i campi della nostra tabella, questo form porta ad una procedura (InsArticolo) in cui vengono raccolti i dati provenienti dal form e vengono immagazzinati nella tabella. Visualizza il codice ASP

c) Modifica

Anche la modifica avviene come l’inserimento, ma la differenza sarà che il form proporrà i dati inseriti precedentemente, che andranno sostituiti con i nuovi. Visualizza il codice ASP

d) Cancellazione dell’articolo

La cancellazione dell’articolo viene chiamata da un link nella pagina iniziale della consolle. Questo link chiama la procedura passandogli l’id univoco della tabella , in modo tale che si vada a rimuovere solo il record interessato.

Sub cancella()
id = getHttpVariable(“id”,3)
if id>0 then
DeleteSQL “Articoli”,”idArticolo=”&id
End if
response.redirect “articoli.asp”
End Sub

3 ) Generazione dinamica dell’xml

Questa procedura è chiamata da uno script che specifica l’id, seleziona il record tramite una query sql , e visualizza il risultato sotto forma di xml. Visualizza il codice ASP

4) Output del sistema (generazione o preview)

Eccoci arrivati al cuore del sistema, qui viene selezionato l’Url che chiama l’xsl , verifica l’esistenza del file tramite l’activex “Scripting.FileSystemObject”, verifica se ci sono errori nell’xml o nell’xsl e stampa il risultato su file se l’utente decide di generare la pagina o su schermo se decide di vedere il preview. Visualizza il codice ASP

Le varie funzioni utilizzate nel codice. Di seguito ho inserito delle piccole funzioni che ho utilizzato in tutto il codice. Visualizza il codice ASP

Conclusioni

Il mio intento nello scrivere questo tutorial è quello mostrarvi chiaramente che, con un semplice codice come quello sopra scritto, si possono creare sistemi in grado di generare quanti siti si vogliono con lo stesso contenuto ma ognuno di loro con un target grafico differente. Scarica il file ZIP di questo tutorial

Se vuoi aggiornamenti su Mini sistema editoriale con ASP / XML / XSL inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Mini sistema editoriale con ASP / XML / XSL

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy