Autor Zpráva
vydrus
Profil
Nejprve bych chtěl říci, že řešení svého problému jsem už hledal. Bohužel mi žádný dávod nepomohl.

Do šablony inkluduji soubor se zdrojovým kódem menu, který vypadá takto:

<ul>
<li class="current_page_item"><a href="http://blablabla.cz">index</a></li>
<li><a href="nastroje.php">nástroje</a></li>
</ul>


Třída current_page_item označuje jméno aktuálně navštívené stránky.

Poradíte mi, jak to udělat, aby to fungovalo stejně jako na zmínené stránce? Nepoužívám totiž URL ve tvaru index.php?str=blabla.

Díky.
nightfish
Profil
zřejmě budeš potřebovat nějaké pole, které bude obsahovat všechny položky menu
a na každé stránce budeš při vypisování menu porovnávat jméno/adresu aktuální zobrazené stránky s aktuálně vypisovanou položkou menu
vydrus
Profil
A můžeš, prosím, poradit? Naházet to do pole bych asi zvládl, ale s dalšími kroky si nevím rady.
ondra121
Profil *
já bych se džel toho to stavět na tvru url, i když používáš jiný tvar, nějak to z něj půjde vytáhnout
vydrus
Profil
To mi není moc platné. :-)

Potřeboval bych pokud možno hotové řešení.
tiso
Profil
vydrus: čo za to?
vydrus
Profil
tiso
Bohužel nic nemohu nabídnout, snad jen poděkování.
SwimX
Profil
vydrus
jak tedy poznáš na které stránce jsi? je něco v url adrese?
vydrus
Profil
Nerozumím. Adresa vypadá např. takto: http://blablabla.cz/nastroje.php.
nightfish
Profil
zhruba nějak takto

$vydrusovoMenu = array(
  array("url" => "index.php", "text" => "Index"),
  array("url" => "nastroje.php", "text" => "Nástroje"),
  array("url" => "nastroje.php?q=2", "text" => "Nástroje 2")
);

$aktualni = $_SERVER['REQUEST_URI'];
if (strlen($aktualni) > 0) $aktualni = substr($aktualni, 1, strlen($aktualni)); // odstranime pocatecni lomitko

echo "<ul>";
foreach ($vydrusovoMenu as $v) {
  echo "<li ";
  if ($v['url'] == $aktualni) echo " class='current_page_item'";
  echo "><a href='".$v['url']."'>".$v['text']."</a></li>";
}
echo "</ul>";
vydrus
Profil
Výborně.

Akorát na adrese http://blablabla.cz se u odkazu na index ostylování třídy current_page_item neuplatní (jen na http://blablabla.cz/index.php). Nemohl bys to pro mě trochu upravit, aby to správně fungovalo? Ještě jednou dík.
SwimX
Profil
vydrus:
to je takový problém?

řádek 8
if (strlen($aktualni) > 0) $aktualni = substr($aktualni, 1, strlen($aktualni)); // odstranime pocatecni lomitko
else $aktualni = "index.php";


např
vydrus
Profil
Nefunguje. Problém jsem nastínil v prvním příspěvku, o souboru index.php jsem se vůbec nezmiňoval. Nebylo třeba - neodkazuji na něj (alespoň ne přímo).
SwimX
Profil
vydrus:
tak zkus místo toho else dát
if(!$aktualni) $aktualni = "index.php";

nevím co přesně vrací REQUEST_URI (jde mi o to lomítko na konci)
vydrus
Profil
Pořád nic.
vydrus
Profil
Vyřešeno.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: