Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Pagination url

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 16 Май 2008 23:04:44    Заголовок сообщения: Pagination url Ответить с цитатой

Друзья, я что-то совсем запутался Smile

Многоязычный сайт. Доступ вида:

/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 тут ни при чём Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
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 ? (и в остальных файлах Smile)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 23 Май 2008 15:23:51    Заголовок сообщения: Ответить с цитатой

Мда. Мой косяк. Много лишнего было в роутах.
Вопрос закрыт.
Спасибо за помощь Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 23 Май 2008 17:07:08    Заголовок сообщения: Ответить с цитатой

Хех. Теперь буду разбираться как form->edit / add генерить так же Smile))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Hellbot

цитировать



Зарегистрирован: 19 Май 2008 16:29:15
Сообщения: 34

СообщениеДобавлено: 23 Май 2008 17:58:57    Заголовок сообщения: Ответить с цитатой

Где-то так же
Код:
echo $form->create(array('url' => array('lang'=>'ru')));
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru