Код php для меню

Содержание
  1. Создание меню для сайта на php
  2. Урок 3. Меню на php для сайта делаем динамичным — чайникам
  3. 1. Выделим блоки header, logo, menu, footer в отдельные файлы c расширением php или html
  4. 2. Создадим шаблон для нашего сайта на php.
  5. 3. Теперь файл template.html нам не нужен.
  6. 4. Нашим шаблоном является файл template.php
  7. 5. Создадим три странички, как собирались изначально.
  8. 6. Как просмотреть сайт на php?
  9. Теперь возьмемся за php меню сайта.
  10. 1. Откроем файл menu.html и превратим раздел1, 2 и 3 в ссылки по сайту. Ссылки в php создаются по-разному.
  11. 2. Как сделать ссылку в меню неактивной, если посетитель находится на данной странице.
  12. Итак, наши практические шаги по созданию php меню будут следующие:
  13. Повторение 1:
  14. Повторенье 2
  15. Повторенье 3
  16. Многоуровневое меню на PHP + MySQL
  17. Далее переходим от слов к практике. Создадим таблицу Categories.
  18. Алгоритм работы состоит из следующего:
  19. Создаем соединение с базой данных
  20. Пишем функцию получения данных из таблицы Categories
  21. Получаем массив вот такого вида, где ключ массива это ID категории.
  22. Функция построения дерева из массива от Tommy Lacroix
  23. Получаем массив в виде дерева
  24. Скрипт целиком
  25. Результат работы
  26. Многоуровневое меню на PHP + MySQL для админки

Создание меню для сайта на php

Если вас интересует ответ на вопрос как создать меню сайта, то вы пришли по верному адресу.

Мы рассмотрим создание динамического меню на php, написанное специально для чайников в программировании, а также для тех, кто еще в танке.

В конце этого урока будет ссылка на скачивание архива с подробными пошаговыми инструкциями и готовым шаблоном сайта на php, и скрипт меню php для сайта.

Читайте также:  Java lib for excel

Урок 3. Меню на php для сайта делаем динамичным — чайникам

Создадим будущий макет нашего сайта. Для этого нарисуем в фотошопе супер красивый сайт и разрежем на кусочки. Представим, что шапка, логотип, меню и подвал не написаны словами, как в данном примере, а это изысканно и красочно оформленные элементы сайта.

Создадим для примера три страницы и назовем их Раздел 1, Раздел 2, Раздел 3

Этот текст для разных страниц будет разный, но мы не будем на нем заморачиваться и оставим его как есть на всех страницах.

Приступим к созданию сайта на php.

Добавим файл с этим текстом, чтобы видеть его на всех страницах. Назовем его text.html

Примечание. С этого момента дальнейшие записи буду вести непосредственно в файле text.html

2. Создадим шаблон для нашего сайта на php.

Для этого поступим просто — сохраним настоящий файл, но уже с расширением php и сотрем все текстовое наполнение. Пусть это не профессионально, зато понятно, а усложнять все будем позже. Сейчас главное понять принцип верстки.

3. Теперь файл template.html нам не нужен.

Благодаря ему мы имеем представление о том, как будет выглядеть наш сайт.

4. Нашим шаблоном является файл template.php

В него мы сейчас вставим с помощью команды include все элементы сайта.

5. Создадим три странички, как собирались изначально.

Раздел 1, назовем 1.php

Раздел 2, назовем 2.php

Раздел 3, назовем 3.php

Для этого можно воспользоваться простейшей командой сохранить как.

Для самых маленьких поясню: открываем файл template.php, затем нажимаем сохранить как. и сохраняем под названием 1.php, повторяем процедуру и последовательно сохраним страницы сайта 2.php, 3.php

У нас получилось 3 страницы с одинаковым дизайном. Достаточно вставлять вместо файла text.html другой, дополнять разными картинками или какими-либо html кодами, скриптами и содержимое каждой страницы будет уникальным.

Если не будет создан файл index.php для главной страницы, то в браузере, набрав адрес сайта мы не увидим сам сайт, а всего лишь структуру директории (перечень папок).

Можете посмотреть в денвере и убедиться. Исправим ситуацию — создадим файл index.php и назовем долго не мудрствуя Главная. Заодно создадим файл text-home.html и с помощью команды include вставим на только что созданную главную страницу сайта.

6. Как просмотреть сайт на php?

Что получилось — так просто не увидим. Это уже не шаблон с расширением html.

Но и не проблема. Нам нужен собственный, т.е. локальный сервер на компьютере. Для этого установим денвер и результат своей работы будем смотреть в браузере, не выходя в интернет.

Вот теперь порядок. Набрала адрес сайта и увидела все только что созданное в нормальном виде с дизайном.

Теперь возьмемся за php меню сайта.

1. Откроем файл menu.html и превратим раздел1, 2 и 3 в ссылки по сайту. Ссылки в php создаются по-разному.

Мне эта процедура создания ссылок безумно нравится в Macromedia Dreamweaver. Успевай жать ОК и пить кофе.

2. Как сделать ссылку в меню неактивной, если посетитель находится на данной странице.

Посетителю будет удобнее ориентироваться по сайту зная, на какой именно страинице он находится.

Если вы выполнили все шаги строго по пунктам, то видите, что у нас все ссылки в меню активны постоянно. Как это исправить?

Для начала вспомним определение что такое Условные операторы

– это когда какое-то действие выполняется или не выполняется в зависимости от условий.

Выполним следующие действия:

if ($master == «Главная») // это условие. Если оно выполняется – то в данном месте меню с помощью команды echo вставляются обычные HTML-теги выводящие надпись «Главная».

echo «

Главная

«;

else //означает «иначе» — что произойдёт, если условие не выполняется. В данном случае при невыполнении условия надпись «Главная» будет ссылкой, ведущей на главную страницу.

  • Условие мы придумали, но чтобы проверить переменнуюнужно её задать.

Для этого на всех страницах разместим такие блоки кода:

$master =»Главная»;

$master =»Раздел 1″;

$master =»Раздел 2″;

$master =»Раздел 3″;

Как видно для каждой страницы свой код.

Итак, наши практические шаги по созданию php меню будут следующие:

1) Открываем файл index.php

$master =»Главная»;

до места вставки кода, выводящего само меню сайта include «menu.html»;
?>

2) Открываем файл menu.html и вставляем код с условием вместо простой html ссылки на главную страницу.

Смотрим в браузере и любуемся! Если зайдем на главную страницу, то ссылка перестала быть активной!

3) Повторяем пункт 1 и 2 со страницами 1.php, 2.php, 3.php

Повторение 1:

1) Открываем файл 1.php и вставляем до кода, выводящего меню блок с заданной переменной

$master =»Раздел 1″;

2) Открываем файл menu.html и вставляем код с условием вместо простой ссылки Раздел 1, внеся следующие изменения:

if ($master == «Раздел 1») // это условие. Если оно выполняется – то в данном месте меню с помощью команды echo вставляются обычные HTML-теги выводящие надпись «Раздел 1».

echo «

Раздел 1

«;

else //означает «иначе» — что произойдёт, если условие не выполняется. В данном случае при невыполнении условия надпись «Раздел 1» будет ссылкой, ведущей на главную страницу.

Чудо повторилось! Теперь, если мы находимся на странице Раздел 1, ссылка в меню не активна.

Повторенье — мать ученья! Или для тех, кто в танке! Еще раз

Повторенье 2

1) Открываем файл 2.php и вставляем код.

$master =»Раздел 2″;

2) Снова откроем файл menu.html и вставляем код с условием

теперь вместо ссылки Раздел 2, внеся следующие изменения:

if ($master == «Раздел 2») // это условие. Если оно выполняется – то в данном месте меню с помощью команды echo вставляются обычные HTML-теги выводящие надпись «Раздел 2».

echo «

Раздел 2

«;

else //означает «иначе» — что произойдёт, если условие не выполняется. В данном случае при невыполнении условия надпись «Раздел 2» будет ссылкой, ведущей на главную страницу.

Повторенье 3

1) Открываем файл 3.php и задаем переменную.

$master =»Раздел 3″;

2) В файл menu.html вставляем код с условием вместо ссылки Раздел 3, изменения такие:

if ($master == «Раздел 3») // это условие. Если оно выполняется – то в данном месте меню с помощью команды echo вставляются обычные HTML-теги выводящие надпись «Раздел 3».

echo «

Раздел 3

«;

else //означает «иначе» — что произойдёт, если условие не выполняется. В данном случае при невыполнении условия надпись «Раздел 3» будет ссылкой, ведущей на главную страницу.

Итог: мы вместо ссылок в меню такого вида

получили динамические ссылки php в меню навигации по сайту.

Этот урок о php был написан по многочисленным просьбам посетителей сайта и является практическим пособием по изучению создания динамического меню для сайта на php.

Следующая шпрагалка вебмастера расскажет о том, как сделать на php уникальные заголовки, описания и ключевики для каждой страницы.

Вы можете скачать архив со всеми файлами шаблона сайта и меню php. Новичкам в программировании рекомендуется.

Если же вы готовы к серьезному изучению php, то лучше видео курса от Попова найти сложно. У него огромный опыт и хороший слог.

Источник

Многоуровневое меню на PHP + MySQL

Многоуровневое меню на PHP + MySQL

Ни один сайт не обходится без навигации или как еще называют «меню сайта». Так вот меню сайта бывает одноуровневым и многоуровневым в виде дерева. Если с одноуровневым меню особых сложностей в плане реализации не возникает, то при создании многоуровневого меню нужно хорошо подумать.

Самое главное в этой задаче это спроектировать базу данных для нашего многоуровневого меню. Создадим таблицу Categories с тремя полями id , title , parent где:

  • ID – идентификатор
  • Title – Название меню
  • Parent – Родитель категории по умолчанию 0

За ветвление меню отвечает поле Parent если Parent = 0 , то эта категория является родительской. Для того чтобы добавить потомков к родительской категории нужно в поле parent указать ID нужного родителя. Например:

Таблицы с категориями
ID TITLE PARENT
1 Автомобили 0
2 Мотоциклы 0
3 Мазда 1
4 Хонда 1
5 Кавасаки 2
6 Харлей 2
7 Лодки 0

Как видно из таблицы, у родительской категории Автомобили есть два потомка – это Мазда и Хонда связанных по полю Parent . А у категории Мотоциклы два потомка – это Кавасаки и Харлей . При этом у категории Лодки нет потомков. Надеюсь, что Вы поняли,как связать категории.

Далее переходим от слов к практике. Создадим таблицу Categories.

 CREATE TABLE IF NOT EXISTS `categories` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `parent` int(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ; -- -- Дамп данных таблицы `categories` -- INSERT INTO `categories` (`id`, `title`, `parent`) VALUES (1, 'Автомобили', 0), (2, 'Мотоциклы', 0), (3, 'Мазда', 1), (4, 'Хонда', 1), (5, 'Кавасаки', 2), (6, 'Харлей', 2), (7, 'Мазда 3', 3), (8, 'Мазда 6', 3), (9, 'Седан', 7), (10, 'Хечбэк', 7), (11, 'Лодки', 0), (12, 'Лифтбэк', 8), (13, 'Кроссовер', 8), (14, 'Белый', 13), (15, 'Красный', 13), (16, 'Черный', 13), (17, 'Зеленый', 13), (18, 'Мазда CX', 3), (19, 'Мазда MX', 3); 

Алгоритм работы состоит из следующего:

  • Создаем соединение с базой данных
  • Получаем все данные из таблицы Categories
  • Обрабатываем полученные данные изменив ключ массива на номер ID
  • Из обработанного массива строим дерево зависимостей неограниченной вложенности используя метод рекурсии для построения
  • Выводим наше многоуровневое меню на экран

Создаем соединение с базой данных

 query("SET NAMES 'utf8'"); /* * Это "официальный" объектно-ориентированный способ сделать это * однако $connect_error не работал вплоть до версий PHP 5.2.9 и 5.3.0. */ if ($mysqli->connect_error) < die('Ошибка подключения (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); > /* * Если нужно быть уверенным в совместимости с версиями до 5.2.9, * лучше использовать такой код */ if (mysqli_connect_error())

Пишем функцию получения данных из таблицы Categories

 //Получаем массив нашего меню из БД в виде массива function getCat($mysqli)< $sql = 'SELECT * FROM `categories`'; $res = $mysqli->query($sql); //Создаем масив где ключ массива является ID меню $cat = array(); while($row = $res->fetch_assoc()) < $cat[$row['id']] = $row; >return $cat; > 

Получаем массив вот такого вида, где ключ массива это ID категории.

Многоуровневое меню на PHP + MySQL

Далее нам нужно из этого массива построить дерево зависимости дочерних элементов от родительских проходя рекурсивно по всему массиву.

Функция построения дерева из массива от Tommy Lacroix

 //Функция построения дерева из массива от Tommy Lacroix function getTree($dataset) < $tree = array(); foreach ($dataset as $id =>&$node) < //Если нет вложений if (!$node['parent'])< $tree[$id] = &$node; >else < //Если есть потомки то перебераем массив $dataset[$node['parent']]['childs'][$id] = &$node; >> return $tree; > 

Получаем массив в виде дерева

Многоуровневое меню на PHP + MySQL

Скрипт целиком

Результат работы

Многоуровневое меню на PHP + MySQL для админки

Если Вы хотите использовать данное меню в админке своего сайта, то нужно переписать пару функций tplMenu() , showCat() .

 '.$category['title'].''; >else< $menu = ''; > if(isset($category['childs'])) < $i = 1; for($j = 0; $j < $i; $j++)< $str .= '→'; >$i++; $menu .= showCat($category['childs'], $str); > return $menu; > /** * Рекурсивно считываем наш шаблон **/ function showCat($data, $str) < $string = ''; $str = $str; foreach($data as $item)< $string .= tplMenu($item, $str); >return $string; > //Получаем HTML разметку $cat_menu = showCat($tree, ''); //Выводим на экран echo ''; ?> 

Источник

Оцените статью