In questo caso abbiamo cliccato sul pulsante Modifica associato ad un clipmsg dal primo fotogramma richiamando quindi la funzione "modifica" (vedere codice Action Script associato al primo fotogramma).
Questa funzione richiama uno script ASP che legge dal nostro Data Base le informazioni di un determinato canale identificato dal suo id univoco e le fornisce al filmato Flash per essere modificate.
Codice dello script "readchannel.asp" :
<%
' Parametro passato dal filmato Flash
id = request("id")
Const adOpenKeyset = 1
Const adLockReadOnly = 1
' Stringa di Connessione al Data Base
StrConnessione = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database") & "rssdb.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open StrConnessione
' Seleziono dalla tabella rssnews il canale identificato dall'id passato dal filmato Flash
SQL = "SELECT * FROM rssnews where id="&id
' Creo il RECORD SET che contiene tutti i dati selezionati dal Data base
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open SQL, Conn, adOpenKeyset,adLockReadOnly
'Codifico con lo standard URL encode i dati per evitare errori quando nell'URL appare il carattere & (e-commerciale)
titlechannel = server.URLencode(rs("title"))
urlchannel = server.URLencode(rs("url"))
'Invio in output al filmato Flash le variabili settando i campi di testo con i seguenti valori
response.write "titlechannel="& titlechannel &"&urlchannel=" & urlchannel &"&loading=Documento XML caricato correttamente."
'Libero risorse
rs.close
set rs=nothing
Conn.Close
set Conn=nothing
%>
A questo punto possiamo effettuare diverse operazioni:
- eliminare il canale cliccando sull'icona (pulsante) del cestino
- Modificare l'URL del canale e ricaricare il canale cliccando sul pulsante
Load - Modificare il titolo o caricare il titolo di dafault cliccando sul pulsante
Default - Salvare i dati sul Data Base dopo averli modificati cliccando sul pulsante
Save
1) Eliminazione del Canale>
Per eliminare il canale dal Data Base basta cliccare il pulsante del cestino al quale abbiamo attribuito il seguente codice Action Script:
on (release) {
if (_root.newchannel == "no"){
_root.DeleteRSS(this.idchannel);
} else {
_root.loading = "Operazione non consentita in fase di inserimento!"
}
}
La funzione DeleteRSS è dichiarata nel codice Action Script del primo fotogramma richiama lo script ASP "del_rss.asp" che elimina dal Data Base il canale selezionato. Vediamo il codice commentato dello script ASP:
<%
' Parametro passato dal filmato Flash
id = request("idchannel")
Const adOpenKeyset = 1
Const adLockReadOnly = 1
' Stringa di Connessione al Data Base
StrConnessione = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database") & "rssdb.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open StrConnessione
' Istruzione SQL: elimino dalla tabella rssnews il canale identificato dall'id passato dal filmato Flash
SQL = "delete from rssnews where id="&id
Conn.execute SQL
'Libero risorse
Conn.Close
set Conn=nothing
'Setto la variabile att di Flash sul valore "ok"
Response.Write("att=ok")
%>
Sul terzo fotogramma abbiamo un movieclip chiamato "controller" che quando la variabile "att" viene settata sul valore "ok" dallo script ASP riporta il filmato sul primo fotogramma e ricarica i canali dal Data Base.
Codice Action script associato:
onClipEvent(enterFrame){
if (_root.controlla == "vai"){
if (_root.att == "ok") {
_root.controlla = "basta";
_root.loading = "RSS eliminato!";
if (_root.i == 1) {
if (_root..PageNumber > 1) {
_root.PageNumber=_root.PageNumber - 1;
}
else {
_root.PageNumber=undefined;
}
}
_root.gotoAndPlay(1);
}
}
}
2) Modifica dell'URL del canale
Se modifichiamo l'URL del canale e vogliamo ricaricare il documento possiamo cliccare sul pulsante Load il cui codice Action Script associato è :
on (release) {
if (_root.urlchannel.length != 0){
_root.filexml = _root.urlchannel;
_root.Default();
} else {
_root.loading = "Inserire un URL valido!"
}
}
3) Modificare il titolo caricando quello di default
Se vogliamo caricare il titolo di default di un determinato canale clicchiamo sul pulsante Default. Il codice associato a questo pulsante è molto simile a quello visto sul pulsante Load:
on (release) {
if (_root.urlchannel.length != 0){
_root.Default();
} else {
_root.loading = "Inserire un URL valido!"
}
}
4) Salvare le modifiche
Vediamo il codice Action Script associato al pulsante Save:
on (release) {
// Caso di modifica di un canale già esistente
if (newchannel != "yes"){
loading="Connessione..."
from = urlASPfiles +"mod_channel.asp"
loadVariablesNum (from, 0, "POST");
}
else if (newchannel == "yes"){
// Caso di inserimenti di un nuovo canale
if (_root.urlchannel.length != 0 &&
_root.titlechannel.length != 0){
loading="Connessione..."
from = urlASPfiles +"ins_channel.asp";
loadVariablesNum (from, 0, "POST");
}
else {
_root.loading="Inserire un URL e un Titolo validi!"
}
}
}
Il pulsante Save mentre nel caso di inserimento di un nuovo canale richiama lo script ASP "ins_channel.asp" (che abbiamo già visto) nel caso di modifica di un canale RSS richiama lo script ASP "mod_channel.asp":
<%
' Parametri passati dal filmato Flash
id = Request("idchannel")
url = Request("urlchannel")
title = Request("titlechannel")
' Stringa di Connessione al Data Base
StrConnessione = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database") & "rssdb.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open StrConnessione
' Istruzione SQL: Seleziono dalla tabella rssnews il canale identificato dall'id passato dal filmato Flash
SQL = "SELECT * FROM rssnews where id="&id
Set RS = Server.CreateObject("ADODB.RecordSet")
RS.CursorLocation=3
RS.Open SQL, Conn, 1,3
'Modifico quindi i dati sul Data Base
RS.Update "url", url
RS.Update "title", title
'Setto il campo di testo loading del filmato Flash
Response.write ("loading=Dati modificati")
'Libero risorse
rs.Close
set rs = Nothing
Conn.Close
set Conn=nothing
%>