- 1
- 2
- 3
<a href="?page=news" <?php if (isset($_GET['page'])) if ($_GET['page']=='news') echo 'class="active"' ?> >Новости</a>
<a href="?page=photo" <?php if (isset($_GET['page'])) if ($_GET['page']=='photo') echo 'class="active"' ?> >Фото</a>
<a href="/" <?php if (isset($_GET['page'])); else echo ' class="active"'?> >Главная</a>
Подсветка той ссылки, на которой сейчас находишься (присвоение класса active).
Проверка if (isset($_GET['page'])) сделана для того, чтобы PHP не ругался на то, что page не передан (такое происходит при переходе на главную).
Если ты думаешь что ты кому-то действуешь на нервы (малолетнии убогие критины любят это делать), то скажу тебе что всем безразличен твой бред, просто какой смысл, ты тупо теряешь своё время.
Ты мудак короче.
А Ваш код не сработал: просто присваивает класс всем ссылкам подряд.
Потом в шаблоне:
Не в шаблоне
в шаблоне
А по-хорошему, то, что я написал, тоже не самая лучшая реализация.
вначале прочиталось "пердикат" :) простите
В современных языках предикаты, это, как правило, функции принимающие один аргумент - читай: подлежащее, и выносящие суждение о проверяемом свойстве - ложно оно или истинно. Типичный пример, в ECMAScript - isNaN(n). Или, если мы попробуем создать предикат на основе первого примера: estLupus(homo).
:)
foreach ($menuItems = array(
'news' => 'Новости',
'hunews' => 'хуевости',
) as $url => $name):
?><a href="<?= $url ?>" <?= $page == $url ? 'class="active"' : '' ?>><?= $name ?></a><?
foreachend;
а вообще, конечно, это в целом говно.
надо переписать как:
$photo = (isset($_GET['page']) === true and false !== ($_GET['page'] == 'photo')) ? true : false;
if($photo) $photo = true; else $photo = false;
if(!$photo) $photo = false;
и еще пару строк на всякий случай.
<a href="?page=news" <?php if (@$_GET['page']=='news') echo 'class="active"' ?> >Новости</a>