Генерация uri

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Dismal
Сообщения: 247
Зарегистрирован: 2011.10.16, 13:25

Генерация uri

Сообщение Dismal »

Всем привет!
Кто как генерирует имена страниц?
Например для статьи с заголовком "Как варить пельмени"
Короткий адрес "kak_varit_pelmeni"
Чтобы она была доступна не по id, а по адресу http://www.site.ru/kak_varit_pelmeni.html

Это через js лучше сделать, чтобы транслитерация текста из поля title в uri происходила в админке?
Или в контроллере/модели?
Или в YII есть на этот счет встроенный функционал?
Аватара пользователя
radamir
Сообщения: 142
Зарегистрирован: 2009.08.10, 08:02
Откуда: Новосибирск

Re: Генерация uri

Сообщение radamir »

Johnatan
Сообщения: 167
Зарегистрирован: 2010.10.27, 13:06
Откуда: Reino de España

Re: Генерация uri

Сообщение Johnatan »

В конфигурации urlManager добавить правило(можно изменить на свой вкус):

Код: Выделить всё

'<controller:\w+>/<action:\w+>/<id:\d+>-<title:[\w|-|\d]+>'=>'<controller>/<action>', 
Подключаем http://www.yiiframework.com/extension/t ... erate-url/
У меня есть отдельный класс-хелпер Y, у которого есть метод:

Код: Выделить всё

public static function convertTitle($string, $separator = '-',$cleanPunctuation = TRUE, $cleanSlash = TRUE)
    {
        return UrlTransliterate::cleanString($string,$separator,$cleanPunctuation, $cleanSlash);
    }
 
Когда создаём url:

Код: Выделить всё

Yii::app()->controller->createUrl('controller/action', array('id'=>$model->id,'title'=>Y::convertTitle($model->title))); 
Вот и всё.
Конференция: yii@conference.jabber.ru
Dismal
Сообщения: 247
Зарегистрирован: 2011.10.16, 13:25

Re: Генерация uri

Сообщение Dismal »

Спасибо за варианты. То, что нужно 8-)
Ответить