Autor Zpráva
hitny14
Profil
Ahoj, řeším takový problém s označením aktivní položky v menu. Už delší dobu sem používám nette. A právě nette obsahuje výborné makro ifCurrent které mi označí položku podle toho zda je uživatel právě na té stránce. Ale momentálně dělám web kde by bylo zbytečné nasazovat nette a nevím jak nato. Neví někdo co s tím prosím?
lionel messi
Profil
hitny14:
Ale momentálně dělám web kde by bylo zbytečné nasazovat nette a nevím jak nato. Neví někdo co s tím prosím?
Riešenie v čistom PHP: polopate.jakpsatweb.cz/index.php?page=include4 by malo stačiť.
hitny14
Profil
to mi ale tvoří odkazy typu example.cz/index.php?str=kontakt a já by jsem chtěl odkazy typu example.cz/kontakt.php
juriad
Profil
hitny14:
Tak si ty odkazy přepiš pomocí htaccess.

Nebo se inspiruj tady: http://jecas.cz/include#menu
Keeehi
Profil
hitny14:
A jak řešíš menu na různých stránkách? Include?
hitny14
Profil
Mám menu.php obsahujcí kod menu php a do jednotlivích stránek menu přidávám

<?php
    require_once 'menu.php';
?>
Tomáš123
Profil
hitny14:
Môžeš si poskladať vlastný kód:
menu.php:
<?php
  $polozky = array('kontakt.php', 'o-mne.php', 'ina-polozka.php');
  echo "<ul>";
  foreach($polozky as $polozka) {
    echo "<li";
    if(isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] == $polozka) echo " class=\"active\"";
    echo "><a href=\"$polozka\">".str_replace('.php', '', $polozka)."</a></li>";
  }
  echo "</ul>";
?>
Nemám prostriedky na overenie správnosti kódu. Ber to iba ako ukážku možného riešenia.

Alternatívne by šlo vytvoriť asociatívne pole a do textu odkazu ťahať verziu názvu s diakritikou a bez pomlčiek.
Corwin
Profil
no... pokud ti zde uváděná řešení připadnou příliš složitá, co to třeba udělat takto?

<?php
    $active = 'kontakt';
    require_once 'menu.php';
?>

<ul>
<li><a<? if($active == 'kontant'){?> class="active"<?}?> href="kontakt.php">Kontakt</a></li>
<li><a<? if($active == 'onas'){?> class="active"<?}?> href="onas.php">O nás</a></li>
</ul>

v šabloně kontakt.php nastavíš proměnnou active na "kontakt", v jiné šabloně zase na "onas" atd atd.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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