Ho definito delle COSTANTI per le sezioni e le sottosezioni di un menu, ma pur riuscendo a collegare le varie pagine alle prime, per le COSTANTI delle sottosezioni... ho perso tutte le speranze :berto:
Questo è il file "menu.inc" dove definisco le costanti e creo l'array per il menu:
Codice PHP:
// Costanti per le sezioni principali
define("SECTION_HOME", 0);
define("SECTION_ALBERI", 10);
define("SECTION_FIORI", 20);
// Costanti per le sottosezioni
define("SECTION_ALBERI_ABETE", 11);
define("SECTION_ALBERI_PINO", 12);
define("SECTION_FIORI_MARGHERITA", 21);
define("SECTION_FIORI_ROSA", 22);
// Array che contiene il menu
$site_menu = array(
0 => array(
"nome" => "HOME", // Nome della sezione
"code" => SECTION_HOME, // Codice della sezione, usa una costante pre definita
"submenu" => NULL // Array con le sottosezioni della voce principale
),
1 => array(
"nome" => "ALBERI",
"code" => SECTION_ALBERI,
"submenu" => array( // Il sottomenu di sezione
0 => array (
"nome" => "ABETE",
"code" => SECTION_ALBERI_ABETE,
),
1 => array (
"nome" => "PINO",
"code" => SECTION_ALBERI_PINO,
),
) // chiude il sottomenu sezione SECTION_ALBERI
),
2 => array(
"nome" => "FIORI",
"code" => SECTION_FIORI,
"submenu" => array( // Il sottomenu di sezione
0 => array (
"nome" => "MARGHERITA",
"code" => SECTION_FIORI_MARGHERITA,
),
1 => array (
"nome" => "ROSA",
"code" => SECTION_FIORI_ROSA,
)
) // chiude il sottomenu sezione SECTION_FIORI
),
Questo è il file "index.php" dove cerco di collegare dei file esterni alle varie COSTANTI:
Codice PHP:
/ Include le definizioni dei menu
include_once("menu.inc");
/*
Controlla se dall'esterno arrivi una richiesta di una sezione particolare.
Se non e' stata richiesta nessuna sezione in particolare, imposta la sezione
corrente pari a SECTION_HOME
*/
if (!isset($_REQUEST['section'])) $section = SECTION_HOME;
else $section = $_REQUEST['section'];
// Include la testata
include("header.inc");
// Stampa il menu
echo "<table width=\"800\" cellspacing=\"0\" width=\"800\" cellpadding=\"0\" border=\"1\" style=\"border-collapse: collapse;\">\n";
echo "<tr>";
reset($site_menu); $cspan=1;
foreach($site_menu as $menu) {
if ($section == $menu['code']) {
echo "<td class=\"sel-tab\">{$menu['nome']}</td>\n";
if (is_array($menu['submenu'])) { // costruisce la stringa del submenu
reset($menu['submenu']);
$submenu = array();
foreach($menu['submenu'] as $sm) $submenu[] = "<a href=\"index.php?section={$menu['code']}&option={$sm['code']}\" class=\"submenu\">{$sm['nome']}</a>";
}
}
else echo "<td class=\"tab\"><a class=\"menu\" href=\"index.php?section={$menu['code']}\">{$menu['nome']}</a></td>\n";
$cspan++;
}
echo "<td class=\"empty-tab\"></td>\n</tr>\n";
echo "<tr><td colspan=\"$cspan\" class=\"menubar\">";
if (isset($submenu)) echo implode("::", $submenu);
echo "</td></tr>\n";
echo "</table>\n";
// chiude una riga del corpo del documento
echo "\t</td>\n";
echo "</tr>";
// Stampa i messaggi specifici della sezione scelta
echo "<tr valign=\"top\">\n\t<td height=\"200\" bgcolor=\"#ff0000\">\n";
// Agisce a seconda della sezione scelta
switch($section) {
case "":
case SECTION_HOME: include("home.inc"); break;
case SECTION_ALBERI: include("alberi.inc"); break;
case SECTION_ALBERI_ABETE: include("alberi_abete.inc"); break;
case SECTION_ALBERI_PINO: include("alberi_pino"); break;
case SECTION_FIORI: include("fiori.inc"); break;
case SECTION_FIORI_MARGHERITA: include("fiori_margherita.inc"); break;
case SECTION_FIORI_ROSA: include("fiori_rosa.inc"); break;
default: echo "Nessuna scelta disponibile";
}
echo "\t</td>\n</tr>\n";
// Include il piede pagina
include("footer.inc");
Ringrazio tutti anticipatamente.