Простенький модуль «хлебных крошек» за пару минут

Опубликовано Опубликовано в рубрике Easy Patch, PHP, SQL

Сегодня не буду грузить Вас, дорогие читатели, сложными алгоритмами. Я покажу, как можно очень просто без организации каталогов сделать модуль «хлебных крошек», имея в наличии лишь обычный структурированный ЧПУ и немного алиасов в базе данных.Итак, что нам дано:

1. Структурированный адрес типа domain.ru/Country/City

2. Таблица соответствий Country — Страна, City — Город

3. Прямые руки, растущие из нужного места =)

Начнём-с. На входе у нас есть URL, который мы можем распарсить по переменным следующим кодом:

$curname = $_SERVER[REDIRECT_URL];
$curname = str_replace ("/", " ", $curname);//меняем слэш на пробел
$chars = preg_split('/[\s,]+/', $curname);//парсим по символам
$curctr = $chars[1]; //текущая страна
$curcity = $chars[2];//текущий город

Мы выбрали из глобального массива SERVER часть url после имени домена. Затем заменили в нём слэши на пробел. Теперь мы можем обработать строку и поместить её в массив. Разделителем в строке будет пробел. Первое значение в массиве — это имя страны на английском языке, второе — имя города на нём же.

Для поддержки уровня вложенности добавим проверку на наличие имени города или страны

if ($curctr != "") {...

Теперь запросим соответствие русского имени английскому аналогу. Это будет простой SQL запрос.

SELECT `name_ru` FROM `compare` WHERE `name_eng` = '$curctr'

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

 >> 

Здесь переменная $nmcntr — это русское имя страны. Вышеуказанная строчка будет соответствовать третьему уровню вложенности. Для других случаев строчка будет просто короче и без символов «>>».

Вот и всё!

Безошибочного кода Вам!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *