×
Закрытие
2
×

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

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

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

Статья сборника Как установить графический редактор GIMP

Перейти к статье

Устанавливаем графический редактор GIMP

  1. Выбор графического редактора
  2. Устанавливаем программу GIMP
  3. Устанавливаем Руководство пользователя

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

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

В статье Устанавливаем бесплатный графический редактор GIMP речь пойдет о бесплатной программе GIMP, которая позволяет в полной мере решать вопросы по созданию элементов дизайна веб-страниц. И будет показано, как ее установить на локальный компьютер.

Кроме того здесь можно будет посмотреть, как в этот редактор добавить встроенное "Руководство пользователя", а также приведен бесплатный видеокурс, где можно поближе с ним познакомиться.

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

    Cайт на практическом примере

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

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

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

    Вы здесь: Главная → Сборник статей → 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" с добавленными полями показана на следующем скриншоте.

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

    Рис.2 Добавление новых полей в таблицу 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 Контакты

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

    10. else

    11. $section_slash = "";

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

    13. else

    14. $rubric_slash = "";

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

    16. else

    17. $page_slash = "/";

    18. if ($current_url == $page) echo '

    19. .$section_slash.$rubric_slash.$page_slash.'">'.$title.'
    20. ';

    21. else

    22. echo '

    23. .$section_slash.$rubric_slash.$page_slash.'">'.$title.'
    24. ';

    25. }

    26. ?>

    Рис.5 Формирование ЧПУ в файле "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).

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

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

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

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

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

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

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

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

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

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

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

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

    С уважением,


    Комментарии


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

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