Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Includere pagine a COSTANTE

    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(
      
    => 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
      
    ),

      
    => array(
        
    "nome" => "ALBERI"
        
    "code" => SECTION_ALBERI
        
    "submenu" => array( // Il sottomenu di sezione
            
    => array (
                  
    "nome" => "ABETE",
                  
    "code" => SECTION_ALBERI_ABETE
            ),
            
    => array (
                  
    "nome" => "PINO",
                  
    "code" => SECTION_ALBERI_PINO,
            ),
            
        ) 
    // chiude il sottomenu sezione SECTION_ALBERI
      
    ),
      
      
      
    => array(
        
    "nome" => "FIORI"
        
    "code" => SECTION_FIORI
        
    "submenu" => array( // Il sottomenu di sezione
            
    => array (
                  
    "nome" => "MARGHERITA",
                  
    "code" => SECTION_FIORI_MARGHERITA,
            ),
            
    => 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.
    - - - -Toonik- - - -
    Debian GNU/Linux

  2. #2
    Non va perchè la costante per le sottosezioni la passi con $_REQUEST['option'], puoi provare così
    Codice PHP:
    // Agisce a seconda della sezione scelta
    $option = isset($_REQUEST['option']) ? $_REQUEST['option'] : false;

    if(
    $option === false)
    {
        switch(
    $section) {
          case 
    SECTION_HOME: include("home.inc"); break;
          case 
    SECTION_ALBERI: include("alberi.inc"); break;
          case 
    SECTION_FIORI: include("fiori.inc"); break;
          default: continue;
        }
    }
    else
    {
        switch(
    $option) {
          case 
    SECTION_ALBERI_ABETE: include("alberi_abete.inc"); break;
          case 
    SECTION_ALBERI_PINO: include("alberi_pino.inc"); break;
          case 
    SECTION_FIORI_MARGHERITA: include("fiori_margherita.inc"); break;
          case 
    SECTION_FIORI_ROSA: include("fiori_rosa.inc"); break;
          default: continue;
        }


  3. #3
    @cubalibre810

    perfetto... funziona alla grande
    il tuo metodo mi ha fatto ottenere proprio quello che volevo, ed in più mi ha fatto capire il perché prima non funzionasse... mannaggia.
    Non so come ringraziarti... cmq caffè pagato
    - - - -Toonik- - - -
    Debian GNU/Linux

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.