Синонимы для динамических страниц views (path/%/%/%)

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

Аватар пользователя MisterBBB MisterBBB 2 апреля 2013 в 20:00

Здравствуйте.

Очень нужна помощь. Можно ли как-нибудь сформировать синонимы для страниц, которые создаются с помощью views? Например, у меня views формирует страницу path/%/%/%, где % - id терминов разных словарей. Мне необходимо, чтобы пути таких страниц имели вид path/term_name_1/term_name_2/term_name_3, где term_name_1, term_name_2, term_name_3 имена терминов латинскими буквами. Так вот как сделать так, чтобы заходя по адресу path/term_name_1/term_name_2/term_name_3, у меня открывался views-страница, как будто я перешел по адресу path/%/%/%?

Искал модули для этого решения на drupal 7, но не нашел. На drupal.org нашел обсуждение этой темы и там советовали использовать hook_url_inbound_alter и hook_url_outbound_alter. Попробовал сделать через них, но возникла проблема - когда перехожу на страницу path/term_name_1/term_name_2/term_name_3, то views пустой. Хотя в hook_url_outbound_alter вывожу аргументы, чтобы посмотреть, может быть аргументы как то не правильно передаются, но выводится id терминов.

Вообщем очень нужен совет по синонимам для views-страниц. Уже не знаю куда копать.

Комментарии

Аватар пользователя Xermit Xermit 3 апреля 2013 в 0:10

Можно, главное чтобы в разных словарях не было одинаковых терминов, но даже и этот случай можно обойти заведя правило

Там где определяете аргумент-s для view сделайте свою обработку аргументов %/%/% на php
в вашу функцию прилетит этот урл, от него отгрызете аргументы, поищете каждый аргумент среди терминов словарей, а если вспомнить что в словаре у каждого термина может быть еще и алиас, то и среди русских и не русских алиасов терминов, найдете искомый термин, подставите его id как аргумент для view

по сути это стандартный механизм определения аргумента для view из url

Аватар пользователя D8i8m8a8 D8i8m8a8 18 апреля 2013 в 0:48

Там где определяете аргумент-s для view сделайте свою обработку аргументов %/%/% на php

Напишите более подробно пожалуйста.