ePrometeusCorsoLinuxLinux
testi articoli
Testi Articoli  Download
Home | OpenSource | PhpNuke | Programming | SysAdm | 
CorsoJava è ora Video! Free for all!
Clicca Qui!
PHPNUKE I MODULI
PHPNuke: i moduli
Gestire i moduli
Moduli
Oroscopo
Moduli Amministrativi
Amministrazione Oroscopo
Conclusioni


<<< Amministrazione Oroscopo >>>
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>";
  }
}
ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com