|
Innanzitutto preoccupiamoci di inserire una voce menù di amministrazione
per l'oroscopo, in modo da ottenere quando visualizzato in figura 4.
Come potete notare nella immagine, c'è una voce con una sua icona
che permette di accedere alla modifica degli oroscopi.
Figura 4
In base a quanto detto nel paragrafo precedente, per realizzare
questa funzionalità dovremmo scrivere un file admin/links/links.oroscopo.php
come segue:
if (($radminsuper==1)) {
adminmenu("admin.php?op=oroscopo", "Oroscopo", "oroscopo.gif");
}
Facciamo un paio di osservazione: la variabile $radminsuper serve a controllare
se l'operazione è richiesta da un utente amministratore, e il valore
viene impostato nel corpo del file admin.php, che si occupa di richiamare
i vari links. L'icona deve venire posizionata nella directory images/admin.
Il parametro $op è usato sempre dal modulo admin.php
che seleziona quale funzione amministrativa richiamare. Pertanto è
opportuno scegliere valori per $op che vadano meno possibile in conflitto
con eventuali altre $op gestite da admin.php . Una convenzione
è quella di utilizzare il nome del modulo nel nome della operazione.
Il passo successivo è quello di creare il file admin/case/case.oroscopo.php
che si occupa di selezionare l'operazione da seguire. Il codice è
il seguente:
if (!eregi("admin.php", $PHP_SELF)) { die ("Access Denied");
}
switch($op) {
case "oroscopo": include("admin/modules/oroscopo.php");
break;
case "oroscoposave": include("admin/modules/oroscopo.php");
break;
}
Notare innanzitutto il solito controllo per evitare l'accesso non autorizzato
al file. Segue la selezione del modulo che deve venire incluso, in base
alle operazioni di che devono essere gestite direttamente dal modulo dell'oroscopo.
Vediamo dunque il corpo della gestione degli oroscopi, visualizzata
rispettivamente nelle figure 5 e 6.
Figura 5
Figura 6
La figura 5 mostra il modulo di inserimento di tutti gli oroscopi,
mentre la figura 6 mostra il messaggio di conferma del salvataggio di un
oroscopo. Il file admin/modules/oroscopo.php contiene il codice
di gestione del modulo amministrativo. Questo codice consiste nella visualizzazione
della intera pagina, compreso il menù per l'accesso alle
funzioni di amministrazione, e nel richiamo delle altre funzioni.
Le funzioni si occupano in un caso di visualizzare la form, e nell'altro
caso di salvare l'oroscopo modificato.
global $hlpfile, $admin, $prefix, $language, $multilingual;
include("header.php");
GraphicAdmin("manual/oroscopo.html");
OpenTable();
switch($op) {
case "saveoroscopo": save(); break;
default: form(); break;
}
CloseTable();
include("footer.php");
La funzione che visualizza la form è:
function form() {
$q = mysql_query( "select segno, previsioni from oroscopo order
by ordine");
echo "<h1 align='center'>Previsioni</h1>\n";
echo "<table border='1' width='100%'>";
while(list($segno, $previsione) = mysql_fetch_row($q)) {
echo "<form method='GET' action='admin.php'>";
echo "<input type='hidden' name='op' value='saveoroscopo'>";
echo "<input type='hidden' name='segno' value='$segno'>";
echo "<tr><td valign='middle'>$segno</td>";
echo "<td><textarea name='previsione' rows='1'
cols='60'>$previsione</textarea></td>";
echo "<td><input type='submit' value='Salva'></td>\n";
echo "</form></tr>";
}
}
Come si può notare, vengono costruite tante form quanti
sono gli oroscopi, e per ciascuna viene composto un URL con i campi hidden.
Grazie a questo, premendo il bottone Salva viene richiamato il modulo
amministrativo con impostata l'operazione di salvataggio e i parametri
necessari. La funzione infine che salva un oroscopo modificato è:
function save() {
global $segno, $previsione;
if( mysql_query(
"update oroscopo set previsioni='$previsione' where
segno='$segno'"))
{
echo "<h1>Oroscopo per $segno salvato.</h1>";
} else {
echo "<h1>ERRORE NEL SALVATAGGIO</h1>";
}
}
|