Pagina 2 di 5 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 41

Discussione: includere un menu

  1. #11
    ti posto anche il codice del primo dei menu secondari (che sono 4 o 5, ognuno per ogni sezione del sito)
    Codice PHP:
    <div id="menu2"> 
    <? 

    $links2 
    = array("http://localhost/IdeaVita11/associazione.php""http://localhost/IdeaVita11/associazione/motivi.php""cenni.php""http://localhost/IdeaVita11/bassa.php""http://localhost/IdeaVita11/storia90-99.php""http://localhost/IdeaVita11/storia2000.php""http://localhost/IdeaVita11/hannocollaborato.php""http://localhost/IdeaVita11/hannoscritto.php");
    $access2 = array("a""b""c""d""e""f""g""h"); 
    $testolink2 = array("Indice Associazione""Motivi ispiratori e promotori""Cenni storico sociali e geografici""Perché la bassa?""Storia dal 1989 al 1999""Storia dal 2000 ad oggi""Hanno collaborato negli anni""Hanno scritto di noi");

    echo 
    "
    <ul>"
    ;

    for(
    $i=0$i<=count($links2)-1$i++) {
    if(
    $links2[$i] == basename($_SERVER['PHP_SELF'])) {
    echo 
    "
    <li class=\"on\">
    $testolink2[$i]";

    }

    else {
    echo 
    "[*]<a href=\"$links2[$i]\" accesskey=\"$access[$i]\">$testolink2[$i]</a>";
    }
    }

    ?> [*][/list]
    </div>
    però come detto nel primo post, con gli url assoluti non funziona più la classe assegnata via css (classe="on") che dovrebbe definire lo stile attivo del collegamento. forse occorre cambiare la funzione php

  2. #12
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    35
    Dunque, ti consiglio usare la funzione echo solo se devi mettere del codice php e non per metterci dell'html, per carità, funziona, ma credo che limiti gli errori soprattutto se utilizzi Dreamweaver.
    Questo è solo un consiglio, poi ognuno è libero di fare come meglio crede..

    Una cosa importante: per aprire uno script di php non usare <? ma <?php in quanto c'è il rischio che il server non capisca cosa deve fare (ci deve essere una configurazione su php.ini, non ricordo dove, per settare <?, quindi per toglierti i problemi, metti sempre <?php).

    A parte queste premesse, ho guardato il codice e l'ho fatto girare sul mio computer utilizzando un file css che avevo già pronto per fare delle prove e tutto gira bene, compresi i collegamenti, che devono essere tassativamente url assoluti, non perchè la funzione dia problemi (ho provato), ma perchè non ha senso...

    Prova a cambiare il nome del file di css e delle classi (ho usato menu perchè era già pronta sul mio file, ma ho visto che tu avevi messo on), sbatterlo su apache e via...

    ecco il codice:

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="css.css" rel="stylesheet" type="text/css">
    </head>

    <body>
    <div id="menu2"> 
    <?php  

    $links2 
    = array("IdeaVita11/associazione.php""IdeaVita11/associazione/motivi.php""cenni.php""IdeaVita11/bassa.php""IdeaVita11/storia90-99.php""IdeaVita11/storia2000.php""IdeaVita11/hannocollaborato.php""IdeaVita11/hannoscritto.php"); 
    $access = array("a""b""c""d""e""f""g""h");  
    $testolink2 = array("Indice Associazione""Motivi ispiratori e promotori""Cenni storico sociali e geografici""Perché la bassa?""Storia dal 1989 al 1999""Storia dal 2000 ad oggi""Hanno collaborato negli anni""Hanno scritto di noi"); 

    echo 

    <ul>"


    for(
    $i=0$i<=count($links2)-1$i++) { 
    if(
    $links2[$i] == basename($_SERVER['PHP_SELF'])) { 
    ?> 
    <li class="menu"><?php echo"$testolink2[$i]"?>
    <?php



    else { 
    ?> [*][url="<?php echo"]" accesskey="<?php echo"$access[$i]"?>"><?php echo"$testolink2[$i]"?>[/url]
    <?php



    ?>  [*] [/list]
    </div> 

    </body>
    </html>

  3. #13
    poi lo provo, questo però sarebbe sono quello del secondo menu?
    ho avuto un flash giusto ora: e se usassi un unico menu in cui definisco tutti gli array e le variabili (quindi immagino con più IF). tanto poi la pagina dovrebbe interpretarla da solo!
    L'unica cosa però... come fare per avere attiva sia la voce di menu secondaria che quella principale?

  4. #14
    no no, non va!
    i link li crea,però non associa lo stato attivo del link, come se non si verificasse mai la prima condizione dell'IF!
    Che ci sia qualche parametro sbagliato?
    oppure ho qualche problema io in locale... faccio una prova in remoto!

  5. #15

    sul server

    no niente, è evidente che la funzione non accetta i link assoluti!
    addirittura non mi accettava l'include con url assoluto (su altervista)!
    invece di quel
    codice:
    if($links2[$i] == basename($_SERVER['PHP_SELF']))
    ci vorrà qualcos'altro

  6. #16
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    35
    una cosa che potresti fare è usare delle variabili che assumono valori diversi nelle diverse pagine e controllare su quelle in quale pagina ti trovi...

    consiglio: metti il codice del menu in una funzione e passagli il valore che indica in quale pagina ti trovi...molto semplice ed elegante. L'idea rimane sempre quella di studiare una funzione che preveda tutti i tipi di menu e caricarli mediante un parametro, giusto per non decentrare il codice..

    Codice PHP:
    basename($_SERVER['PHP_SELF']) 
    ti prende solo il nome della pagina in cui è chiamata la funzione, mentre
    Codice PHP:
    $_SERVER['PHP_SELF'
    prende il percorso completo. Ecco perchè non funziona mai..guarda con cosa lo confronti...potrebbe andare solo con la pagina "cenni.php"

  7. #17
    vuoi dire una cosa come questa http://www.alistapart.com/articles/keepingcurrent/ ?
    però dovrei scrivere la variabile a mano in ogni pagina. per il resto sarebbe più facile da far funzionare.

    allora provo togliendo basename?

  8. #18
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    35
    si, è sicuramente più sicuro...

    isomma dovresti fare qualcosa del tipo

    Codice PHP:
    <?php
    include ("funzioni.inc.php");
    $pagina "prima";
    /*...bla, bla, bla
    quando arrivi al punto in cui devi sbattere il menu fai:*/

    menu($pagina); //questa è il nome della funzione che devi crearti nel file "funzioni.inc.php"
    e il gioco è fatto...provare per credere

  9. #19
    si in questo modo, nelle pagine in cui devo avere sia la voce principale che secondaria attiva mi basta definire due variabili! però, ripeto, mi tocca modificare a mano ogni pagina (almeno un centinaio) mentre avrei preferito che fosse tutto automatico! beh quando studierò bene php magari riuscirò a farlo!

  10. #20
    ecco qua, ho modificato lo script (del primo menu) in modo da abbinare la soluzione della variabile nella pagina ($thispage), alla stessa funzione vista in precedenza, ecco il risultato
    cosa ne pensi?

    Codice PHP:
    <div id="menu"> 
    <p class="hidden">[url="#titoloPagina"]Salta il menu[/url]</p>
    <?php   

    $page 
    = array("home""associazione""attivita""progetti""contatti""links");
    $links = array("home.php""associazione.php""attivita.php""progetti.php""contatti.php""links.php");
    $access = array("1""2""3""4""5""6"); 
    $testolink = array(".:Home:."".:L'Associazione:."".:Attività:."".:Progetti:."".:Cont@tti:."".:Links:.");

    echo 
    "[list=1]";

    for(
    $i=0$i<=count($page)-1$i++) {
    if(
    $page[$i] == $thispage) {
    ?>  
    <li<?php echo" id=\"$page[$i]\""?> class="on"><?php echo"$testolink[$i]"?>
    <?php 
    }

    else {
    ?>  
    <li<?php echo" id=\"$page[$i]\""?>>[url="<?php echo"]" accesskey="<?php echo"$access[$i]"?>"><?php echo"$testolink[$i]"?>[/url] 
    <?php 
    }
    }

    ?>   [/list]
    </div>
    l'unica cosa è che i link dovrò metterli per forza assoluti, e sarà una palla fare i test in locale e poi cambiare tutti i percorsi per metterlo on line

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