Barra di Navigazione Dinamica

  • Creatore Discussione Creatore Discussione Steve
  • Data di inizio Data di inizio

Steve

Nuovo Utente
30 Ott 2011
8
0
0
Ciao a tutti, di seguito inoltro il codice di una barra di navigazione a cui vorrei introdurre una modifica per renderla dinamica, indicando la posizione di pagina con il cambio di background, sapreste dirmi se con php è possibile ottenere questa funzione e magari qualche indicazione su come procedere ?

Grazie

Stefano


PHP:
</table>
<table border="0" width=480 cellspacing="4" cellpadding="0" align=center >
<td align="middle" valign="bottom"><div id="tabsJ">
<ul>
<li><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT, '') . '">' . "<span>" . ('Home') . '</a></span>'; ?></li>
<li><?php echo '<a href="' . tep_href_link(FILENAME_LOGIN, '', 'SSL') . '">' ."<span>".('Log in') . '</a></span>'; ?></li>
<li><?php echo '<a href="' . tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL') . '">' . "<span>" . ('My Account') . '</a></span>'; ?></li>
<li><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '">' . "<span>" . ('Checkout') . '</a></span>'; ?></li>
<li><?php echo '<a href="' . tep_href_link(FILENAME_CONTACT_US, '') . '">' . "<span>" . ('Contact us') . '</a></span>'; ?></li>
</ul>
</td>
</div>
</table>

CSS:

Codice:
#tabsJ {
float:left;
width:939px;
background:#ffffff;
font-family: Tahoma;
font-size:100%;
font-weight: bold;
line-height:normal;
border-bottom:14px solid #91063d;
padding-top:5px;
}
#tabsJ ul {
margin:0;
padding:10px 10px 0 0;
list-style:none;
}
#tabsJ li {
display:inline;
margin:0;
padding:0;
}
#tabsJ a {
float:left;
background:url("http://forum.mrwebmaster.it/images/tableftJ.gif") no-repeat left top;
margin:0;
padding:0 0 0 14px;
text-decoration:none;
}
#tabsJ a span {
float:left;
display:block;
background:url("http://forum.mrwebmaster.it/images/tabrightJ.gif") no-repeat right top;
padding:9px 24px 9px 9px;
color:#333333;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
#tabsJ a span {float:none;}
/* End IE5-Mac hack */
#tabsJ a:hover span {
color:#91063d;
}
#tabsJ a:hover {
background-position:0% -31px;
}
#tabsJ a:hover span {
background-position:100% -31px;
}
 
Ultima modifica di un moderatore:
Allora ti basta controllare il valore del parametro GET p:
PHP:
<?php
echo '<a href="'. tep_href_link(FILENAME_DEFAULT) . '"' . ($_GET['p'] == 'default' ? ' class="current"' : '') . '>Pagina</a>';
// ...
?>
Ovviamente dovrai adattarlo alle tue esigenze.
 
Allora ti basta controllare il valore del parametro GET p:
PHP:
<?php
echo '<a href="'. tep_href_link(FILENAME_DEFAULT) . '"' . ($_GET['p'] == 'default' ? ' class="current"' : '') . '>Pagina</a>';
// ...
?>
Ovviamente dovrai adattarlo alle tue esigenze.

Inserendo il parametro "get p" in questo modo credi possa funzionare, senza riscrivere tutto il codice ? Ti anticipo che ho fatto un tentativo con esito negativo, probabilmente ho sbagliato ha inserire la classe "current" nel foglio di stile.

Grazie
Stefano

PHP:
<li><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT, '') . '">' . ($_GET['p'] == 'default' ? ' class="current"' : '') . "<span>" . ('Home') . '</a></span>'; ?></li>
 
Esito negativo? Che errore ti restituisce?

Non mi restituisce nessun errore, quello che voglio è che i bottoni della barra di navigazione rimangano selezionati dopo il click con un diverso background, se questo è possibile con la funzione "get p", non rimane che aggiungere correttamente la classe "current" nel file css, sto cercando aiuto per questo.


Grazie.

Stefano
 
È leggermente più complicato di quanto avevo previsto. Inserisci questo all'inizio del file:
PHP:
$page = basename($_SERVER['REQUEST_URI'], '.php');
E usalo al posto di $_GET['p'].


Ciao, ti ringrazio per l'aiuto, sto cercando di integrare la funzione da te citata nel mio codice, la modifica qui sotto però non funziona c'è sicuramente un errore perchè mi sparisce il tasto "home" dalla barra di navigazione, inoltre ho trovato un tutorial relativo.

Grazie

Stefano


PHP:
<li><?php if (basename($_SERVER["REQUEST_URI"]) == "index.php") echo " <class='active_link'> " . '<a href="' . tep_href_link(FILENAME_DEFAULT, '') . '">' . "<span>" . ('Home') . '</a></span>'; ?></li>


http://www.webdesignerforum.co.uk/topic/6937-tutorial-php-include-menu/
 
Visto che PHP è fatto apposta, invece di visualizzare l'intera barra di navigazione in PHP, usa PHP e HTML insieme:
PHP:
<li<?php if (basename($_SERVER['REQUEST_URI']) === 'index.php') { echo ' class="active_link"'; } ?>><a href="<?php echo tep_href_link(FILENAME_DEFAULT, ''); ?>">Home</a></span></li>
 
Visto che PHP è fatto apposta, invece di visualizzare l'intera barra di navigazione in PHP, usa PHP e HTML insieme:
PHP:
<li<?php if (basename($_SERVER['REQUEST_URI']) === 'index.php') { echo ' class="active_link"'; } ?>><a href="<?php echo tep_href_link(FILENAME_DEFAULT, ''); ?>">Home</a></span></li>

Ciao, ho provato a riscrivere il codice togliendo l'html in questo modo;
PHP:
<li><?php if (basename($_SERVER["REQUEST_URI"]) == "index.php") echo '<class="active_link">';  echo '<a href="' . tep_href_link(FILENAME_DEFAULT, '') . '">' . "<span>" . ('Home') . '</a></span>'; ?></li>

il tasto "home" così è funzionante, però ho delle difficoltà a scrivere il codice css quindi non posso accertare la correttezza del codice, ho trovato anche un' altro tutorial qui sotto per la funzione "active" dei bottoni.


http://www.mariocarboni.com/css-menu-e-implementazione-dello-stato-corrente-con-php/


Grazie.

Stefano
 

Discussioni simili