Views. Не выводит список терминов на украинской версии сайта

На сайте две языковые версии сайта: российская и украинская.

Вывод списка терминов настроен через представление (view).
Тип представления: Термин.

В российской версии сайта выводит список терминов, а в украинской — нет. Как решить эту проблему?

Коментарів:

12

Коментувати

Увійдіть або зареєструйтесь, щоб додати коментар

Коментарі

i18?

Перевести термины на украинский язык

i18n cтоит. Перевод терминов не помогает. Точнее, помогает, но только если представление имеет тип «Материал» (с фильтром «Перевод материала: Content negotiation»), а если тип представления — «Термин», то каким-то странным образом показывает только первый термин.

Нужно вывести список терминов через представление (view), которое имеет тип «Термин».

ситуация странная, в таблице есть поле для языка, но фильтра для вьювс нет.
Вариантов решения несколько
1. Сделать 2 словаря для разных языков
2. Сделать патч для виевс (самый правильный вариант)
3. Написать модуль для правки запроса. В запрос добавить, например hook_views_query_alter
AND language = (%s)", $lang
4. Написать свой модуль который добавляет нужный фильтр
5. Использовать снипет. Создать обычную страницу с содержимым на РНР и выводить снипет

ps. есть еще модули которые позволяют изменять запрос виевс, но я ними не пользовался, поэтому не рекомендую

1. Это было сделано до написания вопроса. Не помогает.
2. Можно, пожалуйста, по-подробнее?
3. Для проверки, при запросе
$query = "SELECT tid, name FROM {term_data} WHERE language = 'ua' ORDER BY name ASC";
на русской версии сайта выводит список без проблем, а на украинской — не выводит ничего.

Даже при запросе
$query = "SELECT tid, name FROM {term_data} ORDER BY name ASC";
тоже аналогичная ситуация.

В чем может быть проблема?

Украинский это uk
language = 'uk'
Даже при запросе
$query = "SELECT tid, name FROM {term_data} ORDER BY name ASC";
тоже аналогичная ситуация.

как так? а в базе вообще есть термины?

У меня — это «ua».
В таблице «term_data» есть термины и русские и украинские.

тогда этого не может быть!
Если ты прямо в таблице видишь что термины в ней есть и что там ua, тогда этот запрос должен вернуть результат
$query = "SELECT tid, name FROM {term_data} WHERE language = 'ua' ORDER BY name ASC";
Убираю фигурные скобки ввожу в phpMyAdmin и он мне дает результат и Друпал тоже должен дать результат. Сверяй дальше код, где-то закралась опечатка или ты чего-то не доделываешь.

Оказалось, что код вывода по ошибке писáл в не положенном месте. В общем решено проблему тем, что сделано вывод списка терминов для украинской версии сайта напрямую (через запрос). Для каждой из двух языковых версий терминов — свой словарь.

P.S. Ответы на комментарии ставятся не правильно!!! Это ответ на комментарий orb 26 січня, 2011 - 20:19

код мови - uk
через ua - цілком можливо, що і не працює...

п.2 подробнее
нужный тебе функционал делает подмодуль views/taxonomy

http://drupal.org/project/i18nviews
Мені в свій час допоміг ось цей модуль.

Дякую. Він мені теж допоміг, але не для виводу списоку термінів через views, який має тип «Термін».