|
Applichiamo quanto detto, realizzando un modulo che visualizza l'oroscopo.
In particolare, selezionando la voce del menù principale che
permette di accedere al modulo dell'oroscopo, vedremo l'elenco dei segni
come mostrato in figura 2. Seguendo uno dei collegamenti potremo
mostrare l'oroscopo per un singolo segno, che è mostrato in figura
3.
Figura 2
Figura 3
Vediamo adesso il codice che lo implementa. Come abbiamo detto, il codice
del modulo è contenuto nel file modules/Oroscopo_del_Giorno/index.php.
Le regole di codifica dei moduli impongono che il modulo abbia una intestazine,
che impedisca l'accesso a non autorizzati. Per cui il codice comincia per:
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
Il corpo del modulo implementa innanzitutto una funzione di selezione
delle possibili opzioni che fornisce:
$index = 1; // a 3 colonne
include("header.php");
OpenTable();
switch($fn) {
case "det": dettaglio(); break;
default: elenco(); break;
}
CloseTable();
include("footer.php");
Notiamo pertanto l'inclusione della intestazione all'inizio, e del piedino
alla fine. Il corpo del modulo consiste in una selezione per decidere se
richiamare la funzione dettaglio(), o la funziona elenco().
Il dettaglio, mostrato in figura 3, viene richiamato
quando è stato selezionato un particolare segno da visualizzare;
questo fatto viene deciso dal fatto che il parametro fn vale det.
In alternativa, e come comportamento predefinito, viene richiamato l'elenco.
Vediamo adesso il codice che produce l'elenco:
function elenco() {
$q = mysql_query("select segno from oroscopo order by ordine");
echo "<h1 align='center'>Segni dello Zodiaco</h1>\n";
echo "Scegli il tuo segno.<br>";
echo "<ul>\n";
while($r = mysql_fetch_row($q)) {
echo "<li><a href='modules.php".
"?op=modload&name=Oroscopo_del_Giorno".
"&file=index&fn=det&seg=$r[0]'>$r[0]</a></li>";
}
echo "</ul>";
}
Come è prevedibile, viene fatta una interrogazione al database,
selezionando tutti i segni dell'oroscopo. La cosa da notare è
che viene prodotto un elenco di URL conformi alle regole dette
prima. In particolare si utilizza il parametro fn per selezionare
l'opzione dettaglio. Il collegamento richiama il modulo stesso, citando
quale segno si vuole visualizzare. Il codice della funzione che visualizza
il dettaglio è il seguente:
function dettaglio() {
global $seg;
$previsioni = mysql_fetch_row(
mysql_query("select previsioni from oroscopo where
segno='$seg'"));
echo "<h1 align='center'>Oroscopo: $seg</h1>";
echo "<blockquote><b>$previsioni[0]</b></blockquote>";
}
Questo codice non dovrebbe riservare nessuna sorpresa. Si tratta infatti
semplicemente di una interrogazione che visualizza la previsione del segno
selezionato.
|