Autor Zpráva
Webber
Profil *
Includuji menu do vsech stranek pomoci php, ale resim jak udelat aby konkretni nactena stranka byla actived - aktivni?

Mate na to nejake reseni???
souki
Profil
ukaž konkrétní příklad.... při generování menu budeš muset prostě zjistit, na které se právě nacházíš a podle toho nastavit třídu
Stinky
Profil
Dalo by se to vyřešit uložením položek menu do pole (popis+adresa) a potom cyklem vypisovat jednotlivé odkazy. V každém cyklu kontrolovat přítomnost podřetězce (cíl odkazu) v $PHP_SELF a na základě toho přiřadit nějaký class tomu odkazu.
Webber
Profil *
Stinky

Nejsem profik, používám php jen pro layout a usnadění práce, ale nevím jak bych to vyřešil, jak ty mslíš???

Souki

myslím v kódu něco jako <?php include ("menu.php"); ?>

Kód v souboru menu.php:

<a href="stranka1.php">první odkaz</a>
<a href="stranka2.php">druhý odkaz</a>
<a href="stranka3.php">třetí odkaz</a>

A potom potrebuji aby kdyz budu na strana1.php tak tomu pridat class k aktivni polozce.
krteczek
Profil
třeba:

<?php
$url = $_SERVER['PHP_SELF'];
$class = ' class="aktivni"';
?>
<a href="stranka1.php" <?php if($url == 'stranka1.php'){echo $class;}?>>první odkaz</a>
<a href="stranka2.php" <?php if($url == 'stranka2.php'){echo $class;}?>>druhý odkaz</a>

Prográmatorštější by to bylo uložit si názvy stránek do pole, cyklem vypisovat a porovnávat jednotlivé odkazy...

Nějak takhle:

<?php
$url = $_SERVER['PHP_SELF'];
$class = ' class="aktivni"';
//takhle všechny [del]stránky[/del] položky pole ve tvaru název souboru => popis
$pole = array("stranka1.php" => "první odkaz", "stranka2.php" => " druhý odkaz");
echo "\n<menu>\n";
foreach($pole as $key => $obs)
{
if($key == $url)
{
echo '<li><a href="' . $key . '" ' . $class . '>' . $obs . "</a></li>\n";
}
else
{
echo '<li><a href="' . $key . '">' . $obs . "</a></li>\n";
}
}
echo "\n</menu>\n";
?>

krteczek
zdenek
Profil *
Podívej se na popis tvorby menu na webtipu, třeba ti to pomůže. http://www.webtip.cz/art/wt_tech_php/jave_php_09.html
Toto téma je uzamčeno. Odpověď nelze zaslat.