Как сделать подсветку категорий и текущей страницы в PHP? - PullRequest
2 голосов
/ 14 июня 2010

Я пытаюсь найти пример кода или рекомендации по созданию категорий типа CMS с помощью PHP.

Эта проблема наверняка была решена несколько раз, но по какой-то причине я не могу найти пример кода, использующего PHP, о том, как это реализовать.

Насколько я могу судить, проблема состоит из двух частей. Первый имеет отношение к стилю вещей:

  • выводит ссылку в навигации, чтобы текущая страница имела особый стиль (class = "active"), и
  • чтобы не распечатывать ссылку для текущей страницы.

Вторая часть - обработка категорий, подкатегорий и динамических страниц в категориях.

Вторая часть кажется довольно простой. Я подумываю сделать так, чтобы название категории в навигации было ссылкой на category.php? Id = x, и на этой странице я просто распечатываю страницы с этим идентификатором категории. Затем, если пользователь нажмет на страницу, он будет переведен на pages.php? Id = y.

Однако я не совсем уверен, как сделать навигацию, чтобы проверить, находимся ли мы сейчас на текущей странице. Должен ли я просто использовать какой-то переключатель регистра или как?

Любые идеи или ссылки на хороший пример кода приветствуются.

Ответы [ 2 ]

1 голос
/ 14 июня 2010

PHP не нужен, используйте CSS

a:active { color:#09f; }

UPDATE используйте этот маленький код JQuery

$("*").find("a[href='"+window.location.href+"']").each(function(){
   $(this).addClass("current");
   $(this).attr('href',"#"); //nullifying the link
   //add your own logic here if needed
})
0 голосов
/ 14 июня 2010

Если вы загружаете страницу в стиле CMS, вероятно, у вас есть какой-то идентификатор страницы, доступный в коде? Current_page_id или что-то в этом роде? Оттуда я обычно просто делаю это:

<ul id="menu"><?
foreach ($menu_items as $menu_item) {
    ?><li <?=($menu_item['page_id'] == $current_page_id) ? 'class="active"' : ''?>><a href="<?=$menu_item['link']?>"><?=$menu_item['title']?></a></li><?
}
?></ul>
...