#php #mysql
Здравствуйте! У меня сайт на базе mysql. Интересует Как сделать хлебные крошки на php(типа такого: Главная>Новости>Погода...и т.д.)? В инете много таких крошек для cms, а у меня самописный сайт. Буду рад любой помощи. Спасибо.
Ответы
Ответ 1
Как-то делал давно. Обработчик крошек: function navigation() { $arg_list = func_get_args(); $numargs = func_num_args(); $str = ''; for ($i = 0; $i < $numargs; $i++) { $str .= ($arg_list[$i][1] ? ($arg_list[$i][0] ? '' . $arg_list[$i][1] . '' : $arg_list[$i][1] ) . ($numargs - 1 > $i && $arg_list[$i][0] ? '›' : '' ) : '' ); } return $str; } Использование: echo navigation( array('/', 'Главная'), array('/old', 'Чуток ниже'), array('/old-s', 'И еще чуток ниже') ); Результат: Главная›Чуток ниже›И еще чуток ниже Естественно HTML-код можно изменить как нужно. Да, функция кривая и бла бла бла. Еще Месси 5 голов забил, ага.Ответ 2
Делал когда-то используя Nested Sets. Преимущество - не надо у каждого родителя спрашивать родителя или таскать за собой всю связку id-шников, а только зная 1 id получай всю ветку разомОтвет 3
//Определяем переменную parent_id $parent_id = isset($_GET['parent_id']) ? $_GET['parent_id'] : null; function breadcrumb($cat, $parent_idid){ //Проверяем что parent_ID это число if(!intval($parent_idid)) return false; //Создаем пустой массив $brc = array(); //Перебираем полученый массив с меню for($i = 0; $i < count($cat); $i++){ //Проверяем что мы не нашли родителя и не массив пуст if($parent_id != 0 and !empty($cat[$parent_id])){ //Ищем родителя $brc[$cat[$id]['parent_id']] = $cat[$parent_id]['title']; $parent_id = $cat[$parent_id]['parent']; } //Останавливаем цикл else break; } //Возвращаем перевернутый массив с сохранением ключей return array_reverse($brc, true); }
Комментариев нет:
Отправить комментарий