Luca Vassalli's Website - Home page


Home
Indice

1.Introduzione

2.Centro Solidarietà di Genova

3.Politeama Genovese

 

2.6 Eliminazione notizie

L'ultima voce del menu principale va selezionata nel caso si voglia eliminare dalla bacheca elettronica qualche notizia. Tutte le operazioni di eliminazione di una notizia sono eseguite dalla pagina "elimina.PHP". Quando viene caricata mostra una schermata simile a quella che permette di scegliere quale notizia modificare. Infatti anche qui si desiderano visualizzare alcuni campi della notizia di particolare interesse per individuare quella che si vuole cancellare.
Se alla funzione di cancellazione vi fossimo arrivati direttamente dal collegamento per l'eliminazione, della pagina con il modulo di modifica di una notizia, allora questa schermata per la selezione non sarebbe stata mostrata e saremmo passati direttamente ad una pagina con i dati della notizia visualizzati all'interno di un modulo di uguale aspetto a quello utilizzato nell'inserimento e nella modifica. Questa volta però i vari campi del modulo sono disabilitati, grazie ad un apposito attributo HTML, poiché l'utente non deve poter modificare i valori, né pensare di poter farlo. La notizia è mostrata all'interno del modulo, perché si suppone che l'utente abbia ormai acquisito dimestichezza con questa visualizzazione, ed è mostrata in tutti i suoi attributi giacché magari alcuni, che non sono apparsi nella schermata iniziale, sono comunque d'interesse.
A questo punto se l'utente invia il modulo, selezionando con il mouse il bottone "Elimina", prima si richiede la conferma dell'eliminazione del file, poi si verifica se vi sono news estese collegate e, nel caso queste siano collegate solo alla news che si sta cancellando, si chiede se si desidera cancellare o no la news estesa.
Queste due notifiche di conferma di cancellazione sarebbero state semplici da implementare nel caso si fossero usate più pagine PHP, ma desiderando compattare il codice tutto in un singolo file, per ragioni di manutenzione del sito, hanno richiesto una programmazione piuttosto complessa in fase di debug.
Andando nell'ordine di come si susseguono le schermate, dopo aver inviato il modulo inizialmente appare una schermata con al centro una semplice frase: "Sei sicuro di volerla eliminare?(Y/N)". Conferma necessaria per evitare che i dati vadano persi in seguito ad un errore di selezione dell'utente.
A questa pagina non si sono dovuti passare parametri in "Get" in quanto i valori di titolo e data della notizia sono passati direttamente dal modulo con il metodo "Post". Se l'utente seleziona la "N" si viene inviati alla schermata iniziale di eliminazione delle notizie da cui se ne può scegliere un'altra oppure, utilizzando il menu sulla sinistra, cambiare pagina, in caso contrario si passerà alla nuova pagina il valore delle chiavi ed una variabile al valore true che indica che l'utente ha confermato l'eliminazione della notizia della bacheca elettronica.
A questo punto, in caso la news estesa collegata sia associata anche ad un'altra notizia oppure questa sia collegata ad un indirizzo assoluto, tramite una chiamata al database del tipo "Delete From News Where Titolo=\"$Titolo\" and Data=\"$Data\" ", si cancella solo la notizia dal database e non l'eventuale news estesa collegata.
Se al contrario la news estesa è collegata solo alla notizia che si sta cancellando si chiede conferma all'utente se cancellarla o no. Si è deciso di dargli la facoltà di non cancellare la news estesa così, una volta che avrà raggiunto un sufficiente grado di praticità con questa area riservata, l'utente avanzato potrà riuscire a collegare una news nuova ad un file già presente in memoria, senza bisogno di ricaricarlo. Non si è voluta concedere questa facoltà anche nel processo di modifica della news estesa di una notizia, come già analizzato in precedenza, in quanto, tramite questa azione, i file potrebbero rimanere inutilizzati se dimenticati nella cartella "News_estese"; quindi l'inserire la procedura una sola volta è un modo di limitarne l'utilizzo.
Questa richiesta di conferma consiste di una schermata contenente un'unica frase: "Elimino anche il file con la news estesa collegato? (Y/N)" dove selezionando con il mouse la lettera corrispondente alla scelta si viene inviati alla pagina corretta. In ogni caso verrà visualizzata una schermata tramite la quale si può accedere nuovamente alla pagina di eliminazione delle notizie oppure tornare al menu principale, ma in un caso si eliminerà anche la news estesa dalla cartella in cui si trova, nell'altro no. Si sono adoperati cinque parametri passati in "Get" per distinguere all'interno del codice le operazioni da compiere, però non si è dovuto affrontare il problema dell'aggiornamento della pagina in quanto l'istruzione di cancellazione dal database una volta avvenuta non più accadere poiché la condizione nel campo "Where" non si verifica più, essendo già stata cancellata la tupla.