Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="Vlad"]Ситуация в следующем. Хочу сделать custom урлы. То есть чтобы юзер мог использовать _любые_ урлы (кроме запрещённых /admin например и т.п.) http://www.flipflops.org/2009/09/29/cakephp-menu-helper-for-tree-data/ - этот хелпер взят за основу В качестве парсера урла выступает, разумеется, конкретная функция. в моём случае в posts_control.php функция view Роутер выглядит следующим образом Router::connect('(?!admin|maps|news|pages|contacts|pieces|sections|users)(.*)', array('controller' => 'posts', 'action' => 'view')); Ну и первой строкой прописана / главная страница сайта В результате чудесно отрабатываются страницы вида /my-personal/url/can_be_any /Super-url и так далее, ну и, соответственно, /news /pages - урлы (указанные в роутере) отображаются как положено, не моим обрабочиком. Всё отлично, кроме одного момента, в случае генерации html->link или paginator-а, я получаю ужасного вида урлы: http://tree.tt:8888/(?!admin|maps|posts|pages|contacts|pieces|sections|users)(.news/page:2) Да, урл выглядит именно так. Со скобками и т.п. бредом passedArgs - передаётся педжинатору аккуратно, в самой переменной $this (debug($this)) - нет никакого упоминания подобного дикого урла. Почему регексп перебирается дальше? Непонятно То же самое происходит с урлом, генерируемым html->link для view post http://tree.tt:8888/(?!admin|maps|posts|pages|contacts|pieces|sections|users)(.7/) - вместо /posts/view/7 А вот урлы для /posts/edit/7, /posts/delete/7 - генерятся нормально, как положено Я где-то неправильно прописал Router? или есть какая-то другая бага? подскажите, пожалуйста. Перерыл документацию по Router - но более ничего путного не нашёл Буду признателен за советы![/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
Vlad
Добавлено: 12 Окт 2009 23:10:04
Заголовок сообщения:
Как это часто бывает, почти сразу нашёл почти подходящий ответ
во-первых смотрим тут:
http://dsi.vozibrale.com/articles/view/advanced-routing-with-cakephp-one-example
если использовать такой роутер, то урлы в педжинации получаются правильные нормальные
Затем, чтобы в в педжинации шёл не контроллер (в моём случае posts) а кастомный урл, необходимо в странице index.ctp прописать что-то вроде:
<? $paginator->options(array('url' => '../../news')); ?>
(это, кстати, я почерпнул на этом форуме
Vlad
Добавлено: 12 Окт 2009 22:54:07
Заголовок сообщения: Подсобите с роутером
Ситуация в следующем.
Хочу сделать custom урлы. То есть чтобы юзер мог использовать _любые_ урлы (кроме запрещённых /admin например и т.п.)
http://www.flipflops.org/2009/09/29/cakephp-menu-helper-for-tree-data/ - этот хелпер взят за основу
В качестве парсера урла выступает, разумеется, конкретная функция. в моём случае в posts_control.php функция view
Роутер выглядит следующим образом
Router::connect('(?!admin|maps|news|pages|contacts|pieces|sections|users)(.*)', array('controller' => 'posts', 'action' => 'view'));
Ну и первой строкой прописана / главная страница сайта
В результате чудесно отрабатываются страницы вида
/my-personal/url/can_be_any
/Super-url
и так далее, ну и, соответственно,
/news
/pages - урлы (указанные в роутере) отображаются как положено, не моим обрабочиком.
Всё отлично, кроме одного момента, в случае генерации html->link или paginator-а, я получаю ужасного вида урлы:
http://tree.tt:8888/(?!admin|maps|posts|pages|contacts|pieces|sections|users)(.news/page:2)
Да, урл выглядит именно так. Со скобками и т.п. бредом
passedArgs - передаётся педжинатору аккуратно, в самой переменной $this (debug($this)) - нет никакого упоминания подобного дикого урла. Почему регексп перебирается дальше? Непонятно
То же самое происходит с урлом, генерируемым html->link для view post
http://tree.tt:8888/(?!admin|maps|posts|pages|contacts|pieces|sections|users)(.7/) - вместо /posts/view/7
А вот урлы для /posts/edit/7, /posts/delete/7 - генерятся нормально, как положено
Я где-то неправильно прописал Router? или есть какая-то другая бага? подскажите, пожалуйста. Перерыл документацию по Router - но более ничего путного не нашёл
Буду признателен за советы!
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».