Visualizzazione risultati 1 fino 9 di 9

Discussione: Richiamare pagina personalizzata

  1. #1
    Guest

    Predefinito Richiamare pagina personalizzata

    Nella colonna sx del mio sito ho un lungo menu e ogni voce linka una pagina del mio sito. Tutte le volte che faccio una modifica lo devo fare alle 20 pagine, allora ho pensato di mettere il menu in una pagina esterna e con include richiamarlo in ogni pagina.

    Qui però si presenta il problema, devo fare in modo che ogni pagina richiamata abbia il proprio link colorato di giallo, mi spiego: se clicco su link1 si apre la pag1 e nella pag1 il link deve diventare giallo. Stessa cosa per tutti i rimanenti link.

    Come faccio a personalizzare ogni link? Non so se do l'idea giusta.

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Facili, ti basta recuperare il nome del file corrente ( della pagina corrente ) in questo modo:

    Codice PHP:
    $nome_pagina = basename($_SERVER['PHP_SELF'])
    Per poi produrre, il link colorato o meno, a secondo della pagina in qui ti trovi, in questo modo:

    Codice PHP:
    if ($nome_pagina = "index.php") {
    // stampo in output il link colorato.
    }else {
    // stampo in output il link.
    }
    ...
    E cosi per ogni link della pagina, non so se mi sono spiegato.

    P.S.: Alcuni siti, cosa che credo, non ne sono sicuro, sia meglio, fanno l'opposto di ciò che fai te, al posto di includere in ogni pagina il menu, includono i contenuti al secondo del link desiderato, nella pagina contenente il resto del sito ( layout, menu, ecc.. ).
    Ultima modifica di sevenjeak : 27-12-2012 alle ore 13.38.45

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Facili, ti basta recuperare il nome del file corrente ( della pagina corrente ) in questo modo:

    Codice PHP:
    $nome_pagina = basename($_SERVER['PHP_SELF'])
    Per poi produrre, il link colorato o meno, a secondo della pagina in qui ti trovi, in questo modo:

    Codice PHP:
    if ($nome_pagina = "index.php") {
    // stampo in output il link colorato.
    }else {
    // stampo in output il link.
    }
    ...
    E cosi per ogni link della pagina, non so se mi sono spiegato.

    P.S.: Alcuni siti, cosa che credo, non ne sono sicuro, sia meglio, fanno l'opposto di ciò che fai te, al posto di includere in ogni pagina il menu, includono i contenuti al secondo del link desiderato, nella pagina contenente il resto del sito ( layout, menu, ecc.. ).
    Non ho capito del tutto, ti posto i miei codici e dimmi come vanno messi:

    Questo richiama la pagina col menu

    Codice PHP:
    <?php
    include ("menu.php");
    ?>
    Questo è il css che dovrebbe colorare il link

    Codice PHP:
    <div class="menu1a">Pagina1</div>

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    All'interno della pagina menu.php, prima dovresti inizializzare una variabile che stampa in nome della pagina in qui di trovi:

    Codice PHP:
    $nome_pagina = basename($_SERVER['PHP_SELF']);
    Poi stampi il link, a seconda in quale pagina di trovi:

    Codice PHP:
    // Se ti trovi in pagina1.php
    if ($nome_pagina == "pagina1.php") {
    echo
    "<div class='menula'>Pagina 1</div>";
    }else {
    // Altrimenti se non ti trovi in pagina1.php stampa questo.
    }
    // Ed fai una if diversa per ogni pagina

    Sevenjeak
    Software developer and much more

  5. #5
    Guest

    Predefinito

    Qualcosa non quadra: nella pagina esterna menuSX.php ho messo

    Codice PHP:
    <?php
    $nome_pagina
    = basename($_SERVER['PHP_SELF']);
    ?>
    //Qui seguono tutti i link
    In storia.php

    Codice PHP:
    <?php
    include("menuSX.php");
    // Se ti trovi in storia.php
    if ($nome_pagina == "storia.php") {
    echo
    "<div class='menu1a'>Storia</div>";
    }
    else {
    // Altrimenti se non ti trovi in storia.php stampa questo.
    }
    ?>

  6. #6
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Scusa, te non vuoi che i link siano colorati a secondo della pagina in qui ti trovi, allora dovresti mettere le if al posto dei link, no in storia.php, sostituendo, i link come sono ora, in questo modo:

    Codice PHP:
    if ($nome_pagina == "pagina1.php") {
    // Se ti trovi in pagina1.php stampa il link colorato
    }else {
    // Altrimenti stampi semplicemente il link.
    }
    E questo per ogni pagina, ma dovresti modificare il codice del menu, visto che vuoi rendere dinamico quello.

    Detto questo non ho capito, cosa non ti è chiaro?

    Sevenjeak
    Software developer and much more

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Scusa, te non vuoi che i link siano colorati a secondo della pagina in qui ti trovi, allora dovresti mettere le if al posto dei link, no in storia.php, sostituendo, i link come sono ora, in questo modo:

    Codice PHP:
    if ($nome_pagina == "pagina1.php") {
    // Se ti trovi in pagina1.php stampa il link colorato
    }else {
    // Altrimenti stampi semplicemente il link.
    }
    E questo per ogni pagina, ma dovresti modificare il codice del menu, visto che vuoi rendere dinamico quello.

    Detto questo non ho capito, cosa non ti è chiaro?
    Cosi, l'ho messo nel menu esterno ma c'è qualche errore perché non richiama il menu, il classico errore quando manca un punto e virgola o le barre inverse

    Codice PHP:
    <?php
    $nome_pagina
    = basename($_SERVER['PHP_SELF']);
    ...
    if (
    $nome_pagina == "storia.php") {
    echo
    "<div class='menu1a'>Storia</div>";
    }
    else {
    <
    a href="http://miosito.it/storia.php">Storia</a>
    }
    ?>

  8. #8
    Guest

    Predefinito

    Puoi anche fare così:
    menuSX.php
    Codice PHP:
    <?
    $links
    = array('http://miosito.it/storia.php' => 'Storia', 'http://miosito.it/pagina2.php' => 'Pagina 2', 'http://miosito.it/pagina3.php' => 'Pagina 3');
    $pagina = basename($_SERVER['PHP_SELF']);
    foreach(
    $links as $link => $text)
    {
    if(
    basename($link) == $pagina)
    {
    echo
    '<div class="menu1a">' . $text . '</div>';
    }
    else
    {
    echo
    '<a href="' . $link . '">' . $text . '</a>';
    }
    }
    ?>
    E poi includi menuSX.php in ogni pagina con include("menuSX.php").
    In $links dovrai poi mettere tutti i link del tuo menù.

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da orgxiiipu Visualizza messaggio
    Puoi anche fare così:
    menuSX.php
    Codice PHP:
    <?
    $links
    = array('http://miosito.it/storia.php' => 'Storia', 'http://miosito.it/pagina2.php' => 'Pagina 2', 'http://miosito.it/pagina3.php' => 'Pagina 3');
    $pagina = basename($_SERVER['PHP_SELF']);
    foreach(
    $links as $link => $text)
    {
    if(
    basename($link) == $pagina)
    {
    echo
    '<div class="menu1a">' . $text . '</div>';
    }
    else
    {
    echo
    '<a href="' . $link . '">' . $text . '</a>';
    }
    }
    ?>
    E poi includi menuSX.php in ogni pagina con include("menuSX.php").
    In $links dovrai poi mettere tutti i link del tuo menù.
    Cosi funziona

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •