views и алиасы

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

Аватар пользователя Rishpik Rishpik 25 августа 2010 в 1:47

Доброй ночи.

Поставил сайт. Создал тип материала. При помощи модуля pathauto указал маску my для этого типа материала. Создал 50 нод при помощи созданного типа материала. Все хорошо. Ссылки имею вид site.ru/my/1 - алиасы сработали.

Теперь через views создал отдельную страницу на которой в виде таблицы представил некоторые части созданных нод. одно из полей сделал ссылкой на саму ноду. НО!!!! алиаса нет. появились ссылки типа site.ru/node/1.

как сделать и на странице views представления ссылки типа site.ru/my/1?

Комментарии

Аватар пользователя Xermit Xermit 25 августа 2010 в 11:55

Попробовать те же самые токены использовать при выводе урла, они наверное итак заменяются если будут.

Или программно

Возможно стоит вывести это поле через вызов php кода, а в коде дернуть функцию
http://api.lullabot.com/_pathauto_existing_alias_data
и вывести тот алиас, который нужен.

Но лучше использовать стандартную функцию http://api.drupal.org/api/function/drupal_lookup_path
или
http://api.drupal.org/api/function/drupal_get_path_alias/6

так как она кэширует результаты по сути того же самого запроса к базе данных. Я бы даже рекомендовал использовать именно ее.

Аватар пользователя xxandeadxx xxandeadxx 25 августа 2010 в 13:04

вообще все ссылки из views проходят через l(), поэтому синонимы должны подставляться автоматически, что-то у вас не так, почистите кэш, переустановите views

Аватар пользователя Rishpik Rishpik 25 августа 2010 в 15:39

Xermit. спасибо за ответ.

xxandeadxx. вы прямо доктор айболит Lol сначала по вашей статье на блоге я через ноде импорт эти ноды загнал на сайт. а теперь пытаюсь норм вывести.

по идее я и сам смекнул что тут какой-то косяк. хз. буду побывать. спасибо вам

Аватар пользователя Rishpik Rishpik 25 августа 2010 в 15:51

решил проблему. совершенно случайно и немного в растерянности. поменял язык с английского на русский и все заработала как надо. думаю потом. может не из-за этого? поменял обратно на английский - опять не работает.

кто может объяснить связь между этим?

Аватар пользователя Rishpik Rishpik 25 августа 2010 в 16:03

вопрос назрел: у меня отдельная страница с представлением. там 20 записей на странице. всего страниц 30. внизу есть ссылки на другие страницы. но они имею некрасивый вид. как их поправить?

Аватар пользователя Rishpik Rishpik 25 августа 2010 в 16:32

по поводу первого вопроса:

оказалось что часть контента имела язык русский. часть английский. когда я переходил на английский язык то русская часть переставала работать (то есть в представлении выдавать алиасы). причем весь контент на саом деле русский. но автоматом раздаются такие значения. где убрать это? вымысле разделение контента на языки. или где хотя бы выбирать при создании нод.

Аватар пользователя Xermit Xermit 25 августа 2010 в 16:49

Все верно,функция l вызывает функцию url, та в свою очередь вызывает http://api.drupal.org/api/function/language_url_rewrite/6, а последняя проверяет переменную http://api.drupal.org/api/search/6/language_negotiation,
которая отвечает за переключение языка в зависимости от домена, настроек пользователя или просто отключить переключение языка. А алиас в друпал зависит от языка, соответственно, если алиас был создан при русском языке, то переключившись в английский их не будет.
В настройках где то есть, на крайняк в php коде переменную установите в которую надо language_negotiation