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

    Menu PHP "intelligente"

    Ho implementato nel mio sito un caca-scriptino che mi genera un menù intelligente, ovvero si "accorge" quando sono in una pagina e quindi cambia il colore del link corrispondente alla pagina stessa.

    Il problema è che non mi "riconosce" le pagine con url del tipo index.php?p=contatti.
    C'è una soluzione?

    Vi sposto lo scriptino (preso da latoserver.it):

    Codice PHP:
    <?php
    // Barra di navigazione intelligente
    //  by Luca Balzerani

    // Struttura dati: array con link e descrizioni
    $links = array( "index.php" => "Home",
            
    "news.php" => "News",
            
    "index.php?p=contatti" => "Contatti",
            
    "book.php?p=leggi" => "Book"
            
    );

    $pagina_corrente basename($PHP_SELF);


    // Visualizzazione barra di navigazione

    echo "<div id=\"navcontainer\">\n";
    echo 
    "<ul id=\"navlist\">\n";
    while (list(
    $url,$desc)=each($links)) {
      if (
    $url==$pagina_corrente) {
        echo 
    "<li id=\"active\"><a href=\"$url\" id=\"current\">$desc</a>";
      } else {
        echo 
    "[*]<a href=\"$url\">$desc</a> ";
      }
    }
    echo 
    "[/list]\n";
    echo 
    "</div>\n";
    ?>
    Potete vedere un esempio con annesso **errore** nelle pagine "Contatti" e "Book" a questo indirizzo:
    http://buteleti.altervista.org

  2. #2

    Re: Menu PHP "intelligente"

    e certo.. questo: basename($PHP_SELF); restituisce il nome del fil... cioè index.php...

    ti basterà verificare il valore di $_GET['p'] e se questa variabile non è settata puoi assuemre sia la home... credo


  3. #3
    Cavolo non capisco come implementare la cosa!

    Ho provato inserendo nelle condizioni dell' IF altre condizioni, ma nada...

    Tipo:
    Codice PHP:
    if ( ($url==$pagina_corrente) || ($url==$pagina_corrente '?p=contatti' ) ) 
    Ma con risultati pietosi.

  4. #4
    è che usi due logiche diverse... o fai tutto il sito che cambia in base ad una variabile... o fai tutto con file diversi...


    altrimenti ci esci pazzo ad incrociare tutte le possibilità..

    cmq per legger eil valore di p:

    $_GET['p']


  5. #5
    è che usi due logiche diverse... o fai tutto il sito che cambia in base ad una variabile... o fai tutto con file diversi...
    Hai anche ragione

    Dunque ci sto continuamente pensando, ma non ne vengo definitivamente a capo!
    Allora ho modificato lo scriptino così:

    Codice PHP:
    <?php
    // Barra di navigazione intelligente
    //  by Luca Balzerani

    // Struttura dati: array con link e descrizioni
    $links = array( "index.php" => "Home",
            
    "news.php" => "News",
            
    "index.php?p=contatti" => "Contatti",
            
    "book.php?p=leggi" => "Book" );

    $pagina_corrente basename($PHP_SELF);


    // Visualizzazione barra di navigazione

    echo "<div id=\"navcontainer\">\n";
    echo 
    "<ul id=\"navlist\">\n";

    while (list(
    $url,$desc)=each($links)) {
      
      if ( (
    $url==$pagina_corrente) && (!isset($_GET['p'])) ) {
        echo 
    "<li id=\"active\"><a href=\"$url\" id=\"current\">$desc</a>";
      }
      
      else if ( (
    $url==$pagina_corrente) && (isset($_GET['p'])) ) {
        echo 
    "<li id=\"active\"><a href=\"$url\" id=\"current\">$desc</a>";
      }
      
      else {
        echo 
    "[*]<a href=\"$url\">$desc</a> ";
      }
      
    }
    echo 
    "[/list]\n";
    echo 
    "</div>\n";
    ?>
    Però nel "else if" mi riconosce sì la pagina dove sono, o meglio sà che nell' URL esiste il parametro "p", ma nella creazione del link $url e $desc non corrispondono (come dovrebbero) al 3° e 4° array...

    Potete/sapreste darmi altri spunti?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.