SluggableBehavior — помощник в создании ЧПУ

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

В помощь неутомимым пекарям я решил рассказать об удобном расширении модели (behavior). Вещь, на мой взгляд, полезная. Работает отлично, я этим behavior пользуюсь уже почти год. Он помогает автоматически, при записи, сгенерировать slug для строки таблицы.

Вот, кстати, мне всегда было интересно, как правильно перевести на русский слово slug в этом контексте. Ярлык?

Этот behavior написал Mariano Iglesias. Это часть его проекта Cake Syrup. О другой интересной составляющей, SoftDeletableBehavior, недавно, кстати, можно прочесть здесь.

Это расширение не использует Inflector::slug() — когда оно создавалось, этого метода еще не было. Зато поддержка транслита русских букв в UTF-8 уже встроена, не без помощи Вашего покорного слуги. ;-) Читать далее SluggableBehavior — помощник в создании ЧПУ

Улучшаем URL в Shop-Script

Идея в общем-то простая – с помощью апачевского модуля mod_rewrite преобразовать “красивые” URL в такой набор параметров, которые понимает скрипт.

Самые частые пути:

Создадим в корне сайта файл .htaccess, если, конечно, его еще нет. И добавим в него такие строчки:

Скажу честно – я не профессионал в составлении правил для mod_rewrite и Perl-овые регулярки знаю поверхностно. Наверняка эти команды можно оптимизировать, но надо же с чего-то начинать.

Собственно добавлением этих строчек все и заканчивается. Теперь вместе с теми URL, которые я написал выше будут работать и такие:

А дальше надо править шаблоны. И, кое-где, файлы скрипта. Искать строчки типа

и заменять на

Переменная у Smarty может называться и по-другому – зависит от шаблона. В общем смотреть, где формируются ссылки на категории и продукты. А также менять относительные ссылки на картинки и т.п. на абсолютные. В смысле

на

Какие еще URL перезаписать? :-)