[Решено] Views vs Pathauto (User:Name в качестве аргумента Views)

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

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 27 августа 2011 в 16:24

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

Возникла неожиданная проблема там, где её не ждали. Суть в том, что у меня есть views, который выводит список материалов. В качестве аргумента я скармливаю ему имя пользователя, чтобы получить список материалов, созданных этим пользователем. И всё бы ничего, но views принимает аргумент в виде строки, отличной от той, что используется в URL во всех остальных случаях (спасибо Pathauto). Путём манипуляций с параметрами аргумента я нашёл комбинацию (lowercase и spaces to dashes для пути), с которой большая часть аргументов становится похожа на те, что хотелось бы видеть, но всё равно не все. Например, представим, что есть пользователи с именами Ingumsky, John Smith, jack_brown, S.White, He is Awesome, Паша. Ниже я привожу, как выглядят аргументы для моего вьюса, каково имя пользователя и [в квадратных скобках], как выглядит имя пользователя в большинстве URL Друпала:
При запросе example.net/my_view/ingumsky — вьюс выдаёт материалы пользователя Ingumsky [ingumsky]
При запросе example.net/my_view/john-smith — вьюс выдаёт материалы пользователя John Smith [john-smith]
При запросе example.net/my_view/jack_brown — вьюс выдаёт материалы пользователя jack_brown [jackbrown]
При запросе example.net/my_view/s.white — вьюс выдаёт материалы пользователя S.White [swhite]
При запросе example.net/my_view/he-is-awesome — вьюс выдаёт материалы пользователя He is Awesome [he-awesome]
При запросе example.net/my_view/паша — вьюс выдаёт материалы пользователя Паша [pasha]

Как видно, в тех случаях, когда в именах пользователей встречаются знаки подчёркивания, точки, кириллица или даже некоторые английские слова, которые неважны для SEO (is, are и тому подобное), аргумент отличается от распространённого в drupal отображения. Вопрос следующий: Как добиться того, чтобы скармливаемый вьюсу аргумент всегда выглядел так же, как выглядит ник в URL, созданном Pathauto?

Комментарии

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 27 августа 2011 в 17:10

"xxandeadxx" wrote:
заведите для юзера новое поле - transliterated name, и фильтруйте по нему

Спасибо за совет, а как мне автоматически заполнить это поле для всех пользователей?

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 27 августа 2011 в 17:36

Спасибо! Я уже нашёл более изящное решение — решил воспользоваться php в аргументе. Сейчас подробнее опишу — авось кому пригодится ещё.