Richiamare pagina personalizzata

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
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.
 
Devi predisporre il tutto nella pagina che includi.
Ti potresti ricavare il nome della pagina che è stata aperta in questo modo:
PHP:
$_SERVER['PHP_SELF'];
Questa funzione ti visualizzerà il path del file relativo al dominio su cui ti trovi cioè: www.sito.it/pagina.php
Per prendere solo ciò che c'è dopo l'ultimo '/' basta usare la funzione explode.
 
Devi predisporre il tutto nella pagina che includi.
Ti potresti ricavare il nome della pagina che è stata aperta in questo modo:
PHP:
$_SERVER['PHP_SELF'];
Questa funzione ti visualizzerà il path del file relativo al dominio su cui ti trovi cioè: www.sito.it/pagina.php
Per prendere solo ciò che c'è dopo l'ultimo '/' basta usare la funzione explode.
Ho fatto una cosa del genere e funziona ma non riesco però a collegare i css con i codici, mi stampa solo la parole del css

PHP:
<? 
  <div class="info">pag1</div>

<?php
$links = array('http://miosito.it/storia.php' => 'La storia', 'http://miosito.it/missione.php' => 'Missione', 'http://miosito.it/prod_alveo.php' => 'Produzione');
?>

<div class="info">pag2</div>

<?php
$links = array('http://miosito.it/kkk.php' => 'kkk', 'http://miosito.it/888.php' => '888', 'http://miosito.it/yyy.php' => 'yyy');
?>
  $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 nella pagina richiamo il menù


<?php
include("menuSX.php");
?>
 
Prova Così:
PHP:
<html>
<body>
  <div class="info">pag1</div> 

<?php 
$links = array('http://miosito.it/storia.php' => 'La storia', 'http://miosito.it/missione.php' => 'Missione', 'http://miosito.it/prod_alveo.php' => 'Produzione');
?> 

<div class="info">pag2</div> 

<?php 
$links = array('http://miosito.it/kkk.php' => 'kkk', 'http://miosito.it/888.php' => '888', 'http://miosito.it/yyy.php' => 'yyy');
$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>';  
    }  
}  
include("menuSX.php"); 
?>
</body>
</html>
 
Prova Così:
PHP:
<html>
<body>
  <div class="info">pag1</div> 

<?php 
$links = array('http://miosito.it/storia.php' => 'La storia', 'http://miosito.it/missione.php' => 'Missione', 'http://miosito.it/prod_alveo.php' => 'Produzione');
?> 

<div class="info">pag2</div> 

<?php 
$links = array('http://miosito.it/kkk.php' => 'kkk', 'http://miosito.it/888.php' => '888', 'http://miosito.it/yyy.php' => 'yyy');
$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>';  
    }  
}  
include("menuSX.php"); 
?>
</body>
</html>

E' come il mio, solo che tu metti include nella pagina esterna invece che nella pagina di richiamo
 
Intanto lo hai provato?? Prima prova poi se qualcosa non va continua a postare, grazie.
 
Intanto lo hai provato?? Prima prova poi se qualcosa non va continua a postare, grazie.
Non l'ho provato perché io voglio tenere i codici in una pagina esterna e richiamare il tutto con include, comunque ho risolto così anche se non è molto elegante:

pagina esterna

PHP:
<?  
  <div class="info">pag1</div> 

<?php 
$links = array('http://miosito.it/storia.php' => 'La storia', 'http://miosito.it/missione.php' => 'Missione', 'http://miosito.it/prod_alveo.php' => 'Produzione');
$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>';  
    }  
  }  
?> 

<div class="info">pag2</div> 

<?php 
$links = array('http://miosito.it/kkk.php' => 'kkk', 'http://miosito.it/888.php' => '888', 'http://miosito.it/yyy.php' => 'yyy'); 
?> 
  $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 nella pagina richiamo il menù


PHP:
<?php 
include("menuSX.php"); 
?>
 
Il tuo codice è identico a quello che hai postato? Cioè, c'è altro codice nella tua pagina? Perché così come sta non credo funzioni nulla (o quantomeno non funziona come dovrebbe).
 
Il tuo codice è identico a quello che hai postato? Cioè, c'è altro codice nella tua pagina? Perché così come sta non credo funzioni nulla (o quantomeno non funziona come dovrebbe).
Si è uguale, ho solo aggiunto questo codice ad ogni blocco array (togli la penultima chiusura che non serve ?>)

PHP:
  foreach($links as $link => $text)   
  {   
    if(basename($link) == $pagina)   
    {   
      echo '<div class="menu1a">' . $text . '</div>';   
    }   
    else   
    {   
      echo '<a href="' . $link . '">' . $text . '</a>';   
    }   
  }
 
Ultima modifica:
Ok, allora si :)

Ora però mi si è presentata una situazione che devo richiamare tutte le pseudoclassi, questo:

PHP:
.bottone1a {
...
}

a.bottone1:link {
...
}

a.bottone1:visited {
...
}

a.bottone1:hover {
...
}



<?php  
$links = array('http://miosito.it/kkk.php' => 'kkk');  
  $pagina = basename($_SERVER['PHP_SELF']);     
  foreach($links as $link => $text)   
  {   
    if(basename($link) == $pagina)   
    {   
      // Qui devo richiamare tutte le pseudoclassi  
    }   
    else   
    {   
      echo '<a href="' . $link . '">' . $text . '</a>';   
    }   
  }   
?>
 

Discussioni simili