Аргумент в начале (hook_menu)

Главные вкладки

Аватар пользователя Eventus Eventus 10 сентября 2013 в 16:44

Всем привет. Возникла проблема и может быть кто-то сталкивался с ней и как-то решил?
Нужно сделать так, чтобы аргумент был в начале адреса. Т.е. url был вида %/check
Я так понимаю, что просто так этого не сделать, так как аргумент не может быть первым? Но как решить проблему...сделал тупо через hook_preprocess_page, разбирая урл и если он нужного вида, то тогда выводим нужный views. Но это мне совсем не нравится...но ничего лучше никак не могу придумать.

Спасибо, если кто поможет.

Комментарии

Аватар пользователя Niklan Niklan 10 сентября 2013 в 16:46

Сначала прочитал, потом увидел

"Eventus" wrote:
то тогда выводим нужный views

во вьюсе также можно пилить урлы с %. Зачем hook_menu() для этого спрашивается?

Аватар пользователя drupby drupby 10 сентября 2013 в 16:54

"Niklan" wrote:
во вьюсе также можно пилить урлы с %. Зачем hook_menu() для этого спрашивается?

а какая разница во вьюсе или в хуке
все равно "Note that wildcards may not be used as the first component."

Аватар пользователя Niklan Niklan 10 сентября 2013 в 17:46

"drupby" wrote:
а какая разница во вьюсе или в хуке
все равно "Note that wildcards may not be used as the first component."

в том то и дело, что что ни хук ни вьюс не поможет и делать это нету смысла

Аватар пользователя drupby drupby 10 сентября 2013 в 20:21

"Eventus" wrote:
Если надо, чтобы в начале был аргумент...

делай вьюху check/% а ссылки выводи как %/chek
и потом hook_url_inbound_alter и hook_url_outbound_alter

Аватар пользователя Eventus Eventus 10 сентября 2013 в 23:10

drupby, а я так понимаю, адрес в строке изменится?... Что-то не совсем понял, как работают эти хуки.

Но проблему вроде как решил так: создал тип материала (типа checkdisplay), синхронизовал его с основным (удаление, создание и обновление) через модуль, настроил синонимы [title]/check ну и как нужно подретактировал шаблон мата. Может не самый лаконичный способ, но вроде как устраивает Smile

Аватар пользователя drupby drupby 10 сентября 2013 в 23:36

"Eventus" wrote:
а я так понимаю, адрес в строке изменится?... Что-то не совсем понял, как работают эти хуки.

url_inbound_alter берет ссылку и меняет ее на нужную нам и отдает друпалу
а потом уже url_outbound_alter возвращает в адресную строку то что и было
то есть получается в ссылке и в адресной строке то что нам нужно ,а друпал обрабатывает совсем другой путь