×

Дополнительные материалы бесплатно предоставляются только зарегистрированным пользователям.

Для скачивания исходных файлов необходимо войти под своим аккаунтом через форму на главной панели.

Для тех кто не зарегистрирован, можно это сделать на вкладке Регистрация.

  • Рубрики
  • Слайдер
  • Сайдбар
  • Подписка
  • Вниз
  • Вверх
×
  • Как сделать сайт с нуля своими руками (вводная часть)

    1. Причины создания пошаговой инструкции по разработке самописного сайта
    2. Тема создаваемого сайта
    3. В чем будет заключаться монетизация
    4. Функционал
    5. Этапы создания
    6. Текущее состояние создаваемого сайта

    Здравствуйте уважаемый посетитель!

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

    Причем чтобы такой интернет-ресурс был создан не на каком-нибудь стандартном шаблоне бесплатной СMS (Content management system - система управления контентом) типа WordPress, Drupal, Joomla и т.п., а заточенный под себя, с возможностью обеспечить ему должную безопасность и реализовать все свои индивидуальные потребности.

    Часто такие сайты, созданные под конкретные задачи на основе языка разметки веб-страниц HTML, стилей CSS и других инструментов веб-программирования (PHP, JavaScript и т.п.), называют самописными.

    Этой статьей начинается отдельная рубрика "Как сделать сайт с нуля своими руками", где на реальном примере, с предоставлением исходных материалов (программные коды, файлы и т.п.), будет показано, как действительно можно самостоятельно сделать рабочий сайт.

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

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

Самописный сайт своими руками!

Текущее состояние создаваемого сайта

Здесь можно посмотреть текущее состояние тестового самописного сайта, который создается в рамках цикла статей Сделай сайт с нуля своими руками.

Где в дополнительных материалах можно бесплатно скачать исходные файлы сайта с таблицами MySQL.

Вы здесь: Главная → Сборник статей → URL для людей → Преобразуем динамичские URL в ЧПУ-ссылки используя GET-параметры


Автор: / Дата:

Преобразуем динамичские URL в ЧПУ-ссылки используя GET-параметры

Здравствуйте уважаемый посетитель!

В прошлой статье мы рассмотрели достаточно простой способ применения на сайте ЧПУ с непосредственным преобразованием динамических ссылок в человеко-понятные урлы и наоборот. Сегодня же будем это делать другим способом - используя для этих целей GET-параметры обычных динамических ссылок.

При этом, в данной статье выполним первую часть - создадим механизм преобразования GET-параметров обычных динамических ссылок в статические адреса с человеко-понятными урлами. А, обратное преобразование - из статических ЧПУ в динамические адреса с получением необходимых данных для формирования динамических страниц рассмотрим в следующей статье.

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

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

Содержание


  • Создаем новые записи значений GET-параметров таблицы MySQL
  • Используя GET-параметры преобразуем обычные динамические ссылки в ЧПУ
  • Исходные файлы сайта

Создаем новые записи значений GET-параметров таблицы MySQL


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

При этом, для наименования новых полей таблицы обратимся к приведенному ранее примеру обычной динамической ссылки и соответствующему ей адресу с человеко-понятным урлом с уровнем вложенности равным 3:

  • динамическая ссылка - httρ://newsite.local/index.php?section=article&rubric=carjacking&page=1;
  • ЧПУ - httρ://newsite.local/statyi/ugon-avtomobiley/statistika-ugonov-2016;

Исходя из этого составим таблицу соответствия наименований GΕT-параметров и полей таблицы к их значениям.

№ пп Наименования / значения GET-параметров (полей) section rubric page
1 Значение в динамической ссылке article carjacking 1
2 Значение в ЧПУ statyi ugon-avtomobiley statistika-ugonov-2016

Рис.1 Таблица соответствия GΕT-параметров в динамической ссылке и ЧПУ

Таким образом создадим в таблице "url" три поля - "section", "rubric" и "page".

Кроме того, для того, чтобы в цепочке "хлебные крошки" иметь возможность отображения пути к странице по-русски, добавим еще три поля, в которых будут также храниться человеко-понятные урлы, но только на русском языке. И назовем их соответственно, "section-rus", "rubric-rus" и "page-rus"

Структура таблицы "url" с добавленными полями показана на следующем скриншоте.

Для увеличения / уменьшения размера изображения кликните по картинке
Преобразуем динамичские URL в ЧПУ-ссылки используя GET-параметры, картинка 1

Рис.1 Добавление новых полей в таблицу MySQL

А теперь преобразуем предыдущую таблицу добавив в нее остальные значения GΕT-параметров и их русскоязычных словообразований для всех имеющихся на данный момент страниц сайта.

id
(№
пп)
Заголовок страницы (title) section section-rus rubric rubric-rus page page-rus
1 Главная
2 Статистика угонов statyi Статьи ugon-avtomobiley Угон автомобилей statistika-ugonov Статистика угонов за 2016 год
3 Способы маркировки sposobi-markirovki Способы маркировки
4 Получить скидку poluchity-skidku Получить скидку
5 Контакты kontakti Контакты

Рис.2 Таблица соответствия полей и значений GΕT-параметров и русскоязычных словообразований

Как видно, страница с заголовком "Статистика угонов" здесь имеет уровень вложенности равный 3 (УВ3), а остальные - УВ1. В таблице базы данных это будет выглядеть следующим образом.

Для увеличения / уменьшения размера изображения кликните по картинке
Преобразуем динамичские URL в ЧПУ-ссылки используя GET-параметры, картинка 2

Рис.3 Запись в таблицу MySQL значений GET-параметров и русскоязычных словообразований

Таким образом мы записали в базу данных все необходимые данные для дальнейшего их использования при формировании статических ЧПУ.

Используя GET-параметры преобразуем обычные динамические ссылки в ЧПУ


После того, как мы сохранили в базе данных нужные значения GET-параметров, можно переходить к формированию человеко-понятных урлов.

Для этого достаточно будет сделать некоторые изменения в файлах "menu.php" и "ftr-menu.php". Ниже показан файл "menu.php", где более светлым цветом обозначены строки, которые добавлены, или заменены по сравнению с предыдущим вариантом формирования обычных динамических адресов.

  1. <?php

  2. //----Формирование главного меню-------------

  3. $data_bd = getAll('url');

  4. for ($i = 0; $i < count($data_bd); $i++) {

  5. $id = $data_bd[$i]['id'];

  6. $title = $data_bd[$i]['title'];

  7. $section = $data_bd[$i]['section'];

  8. $rubric = $data_bd[$i]['rubric'];

  9. $page = $data_bd[$i]['page'];

  10. if (!empty($section)) $section_slash = "/".$section;

  11. else

  12. $section_slash = "";

  13. if (!empty($rubric)) $rubric_slash = "/".$rubric;

  14. else

  15. $rubric_slash = "";

  16. if (!empty($page)) $page_slash = "/".$page;

  17. else

  18. $page_slash = "/";

  19. if ($current_url == $page) echo '<li class="activ"><a href="'.$section_slash.$rubric_slash.$page_slash.'">'.$title.'</a></li>';

  20. else

  21. echo '<li><a href="'.$section_slash.$rubric_slash.$page_slash.'">'.$title.'</a></li>';

  22. }

  23. ?>

Рис.4 Формирование ЧПУ в файле "menu.php" с использованием GET-параметров

Здесь строках 7÷9 переменным GΕT-параметров $section, $rubric и $page присваиваются значения, полученные из таблицы "url" базы данных MySQL.

Далее, из них получаются (поз.10÷18) новые переменные $section_slash, $rubric_slash и $page_slash, к которым с помощью оператора условия if при непустых значениях добавляется знак слеш "/" (поз.10,13,16). В противном случае присваивается пустая строка "" для переменных $section, $rubric (поз.12,15) и слеш "/" - для $page_slash (поз.18).

Это сделано для того, чтобы в дальнейшем, при формировании ЧПУ-ссылок, упростить использование значений параметров в тегах <a>. При таком преобразовании, при пустых значениях переменных в атрибутах ссылок ничего добавляться не будет. В случае же непустого значения параметра, он будет использован вместе впереди стоящим знаком "/".

А для главной страницы, при всех пустых значениях GΕT-параметров, в ссылках будет использован только знак слеш "/", означающий путь к корневому каталогу и, соответственно, к файлу "index.php".

Ну и в итоге, в строках 19÷21 из полученных переменных происходит формирование ссылок, где в качестве атрибута тега "href" применяется набор ранее полученных переменных $section_slash, $rubric_slash и $page_slash.

Для меню футера следует сделать аналогичные преобразования в файле "ftr_menu.php". Код этого файла мало чем отличается от "menu.php", поэтому повторять здесь его нет необходимости.

На этом мы завершили все предусмотренные в данной части преобразования. Теперь только осталось проверить полученный результат. Для этого откроем страницы сайта и убедимся, что в адресной строке человеко-понятные урлы соответствуют тем значениям GET-параметров, которое были сохранены в базе данных в предыдущей части статьи.

Для увеличения / уменьшения размера изображения кликните по картинке
Преобразуем динамичские URL в ЧПУ-ссылки используя GET-параметры, картинка 3

Рис.5 Проверка ЧПУ ссылок на соответствие GET-параметрам

Однако, следует обратить внимание на то, что пункт меню "Статистика угонов", соответствующий 3-ему уровню вложенности страницы с адресом httρ://newsite.local/statyi/ugon-avtomobiley/statistika-ugonov-2016 на данный момент не будет отображать ее активное состояние, как видно на сриншоте.

Для увеличения / уменьшения размера изображения кликните по картинке
Преобразуем динамичские URL в ЧПУ-ссылки используя GET-параметры, картинка 4

Рис.6 Отсутствие активного состояния пункта меню со ссылкой, соответствующей УВ3

Это происходит вследствие того, что теперь контроль текущего адреса в файлах "menu.php" и "ftr-menu.php" стал определяться только по наименее значимому GΕT-параметру "page", а не по всему адресу ЧПУ.

Эта проблема будет решена после создания механизм обратного преобразования статических ЧПУ в обычные динамические url и получения соответствующих GET-параметров. Чем мы и буднем заниматься в следующей статье.

Исходные файлы сайта


Знак папкиИсходные файлы сайта с обновлениями, которые были сделаны в данной статье, можно скачать из прилагаемых дополнительных материалов:

  • Файлы каталога www
  • Таблицы базы данных MySQL

Дополнительные материалы бесплатно предоставляются только зарегистрированным пользователям.

Для скачивания исходных файлов необходимо войти под своим аккаунтом через форму на главной панели.

Для тех кто не зарегистрирован, можно это сделать на вкладке Регистрация.

С уважением, Николай Гришин


Комментарии


Если у Вас возникли вопросы, или есть какие-либо пожелания по представлению материала, либо заметили какие-нибудь ошибки, а быть может просто хотите выразить свое мнение, пожалуйста, оставьте свои комментарии. Такая обратная связь очень важна для возможности учитывать в дальнейшем мнение посетителей.

Буду Вам за это очень признателен!

comments powered by HyperComments