Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 16 Май 2008 23:04:44 Заголовок сообщения: Pagination url |
|
|
Друзья, я что-то совсем запутался
Многоязычный сайт. Доступ вида:
/uk/members
/ru/members
Соответственно и паджинацию хотелось бы привести к такому же виду, т.е. чтобы урлы в previuos/next генерились /uk/members/index/page:1
Но параметр array ('url' => array('/uk')) который можно указать передаётся, но после всего, т.е. я получаю урлы:
/members/index/uk/page:1
В прицнипе я через route выкрутился. Но как-то неаккуратно
Что скажете? Я просто балбес, или с мультиязычностью в кейке действительно не всё так тривиально и аккуратно? |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 17 Май 2008 19:08:21 Заголовок сообщения: |
|
|
Можно просто site.com/controller/action
http://bakery.cakephp.org/articles/view/p28n-the-top-to-bottom-persistent-internationalization-tutorial |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 18 Май 2008 10:20:12 Заголовок сообщения: |
|
|
Я читал эту статью. Но мне хотелось бы чтобы все урлы были вида:
site.com/lang/controller/action
Как заставить paginator вставлять lang перед контроллером, не влазя в код, я не знаю. А в этой статье про это ни слова.
приводить многоязычный сайтоурл к виду:
site.com/controller/action/params:...lang:ru
Как-то не хотелось бы |
|
Вернуться к началу |
|
|
Hellbot Гость цитировать
|
Добавлено: 19 Май 2008 16:28:45 Заголовок сообщения: |
|
|
Например так
Router::connect('/:lang/:controller/:action/*', array(), array('lang' => 'ru|en'));
http://book.cakephp.org/view/46/routes-configuration |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 20 Май 2008 23:30:30 Заголовок сообщения: |
|
|
Hellbot: как заставить paginator helper генерить пути в таком виде? чтобы ссылк, которые лежат у меня под next/previous выглядели как:
/:lang/:controller/..
а не /:controller/:lang?
ну или если конкретный пример, то оно генерит:
/members/index/ru/
а мне надо, чтобы паджинаторовский хелпер писал /ru/members/index
параметр array ('url' => ... не помогает, язык прописывается ПОСЛЕ акшена. А мне надо, чтобы было ПЕРЕД контроллером.
routes тут ни при чём |
|
Вернуться к началу |
|
|
Hellbot
цитировать
Зарегистрирован: 19 Май 2008 16:29:15 Сообщения: 34
|
Добавлено: 21 Май 2008 16:53:31 Заголовок сообщения: |
|
|
Vlad
$paginator->prev('<< Previous', array('url' => array('lang' => 'uk')));
если не будет работать, попробуйте обновить cake до nightly
http://www.cakephp.org/downloads/index/nightly/1.2.x.x
еще ссылочка найденная в процессе:
http://debuggable.com/posts/new-router-goodies:480f4dd6-4d40-4405-908d-4cd7cbdd56cb |
|
Вернуться к началу |
|
|
Hellbot
цитировать
Зарегистрирован: 19 Май 2008 16:29:15 Сообщения: 34
|
Добавлено: 21 Май 2008 16:58:27 Заголовок сообщения: |
|
|
config/routes.php писал(а): | Router::connect('/:lang/:controller/:action/*', array(), array('pass' => array('lang'), 'lang' => 'ru|en'));
|
view/posts/example.ctp писал(а): | echo Router::url(array('controller' => 'posts', 'action' => 'view', 10, 'lang' => 'ru'));
|
Дает
Цитата: | /ru/posts/view/10
|
|
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 22 Май 2008 14:17:12 Заголовок сообщения: |
|
|
Поставил nightly - paginator как совал так и суёт lang - после названия экшена...
echo Router - да, оно даст то.
Я только не понимаю, как это красиво скрутить с
$paginator->prev
$paginator->numbers
$paginator->next... |
|
Вернуться к началу |
|
|
Hellbot
цитировать
Зарегистрирован: 19 Май 2008 16:29:15 Сообщения: 34
|
Добавлено: 22 Май 2008 17:19:34 Заголовок сообщения: |
|
|
Код: | echo $paginator->next(__('Next', true), array('url' => array('lang' => 'ru'))); |
|
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 23 Май 2008 08:30:48 Заголовок сообщения: |
|
|
Выдаёт
/controller/action/ru.... |
|
Вернуться к началу |
|
|
Hellbot
цитировать
Зарегистрирован: 19 Май 2008 16:29:15 Сообщения: 34
|
Добавлено: 23 Май 2008 14:50:36 Заголовок сообщения: |
|
|
Vlad
Очень странно, у меня с указанным маршрутом + указанной строчкой дает
/ru/controller/action/other
Что у вас в routes.php ? (и в остальных файлах ) |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 23 Май 2008 15:23:51 Заголовок сообщения: |
|
|
Мда. Мой косяк. Много лишнего было в роутах.
Вопрос закрыт.
Спасибо за помощь |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 23 Май 2008 17:07:08 Заголовок сообщения: |
|
|
Хех. Теперь буду разбираться как form->edit / add генерить так же )) |
|
Вернуться к началу |
|
|
Hellbot
цитировать
Зарегистрирован: 19 Май 2008 16:29:15 Сообщения: 34
|
Добавлено: 23 Май 2008 17:58:57 Заголовок сообщения: |
|
|
Где-то так же
Код: | echo $form->create(array('url' => array('lang'=>'ru')));
|
|
|
Вернуться к началу |
|
|
|