i18n и ссылки на материал (термины таксономии)

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

Аватар пользователя divined divined 13 декабря 2010 в 21:14

Имеется View, которому аргументами передаются термины таксономии 3 штуки

Например:
http://site/business/autoservices/region/city
http://site/business/region
http://site/business/region/city
http://site/investment/appartments/region/city
и т.д. по аналогии

где,
business и investment - начальные рубрикаторы, являющиеся терминами таксономии
autoservices и appartments - дочерние рубрикаторы от вышестоящих соответственно
region и city - тоже термины таксономии

View настроен и обрабатывает все пути правильно (т.е. любой термин таксономии является пользовательским фильтром, кроме
главных рубрикаторов, которые забиты вручную)
Необходимо вывести тизеры материалов, где должен быть рисунок, заголовок, "autoservice" - т.е. дочерний рубрикатор.,
и блок расположения объекта:
т.к. пути у меня специфические, написал для этого в php custom field следующее:

<?php
$sql 
"SELECT tn.tid AS tid, t.name AS name FROM {term_data} t LEFT JOIN {term_node} tn ON t.tid = tn.tid INNER JOIN {node} n ON tn.nid = n.nid WHERE n.nid =%d ORDER BY tn.tid ";
  
$result db_query($sql$data->nid);
  
$terms = array(); 
  
$i 0
  while (
$term db_fetch_object($result))
    {
      
$terms[$i] = $term->name;
      
$i++;
    }
  print (
"<a href='/business/" .strtolower($terms[0]). "/" .strtolower($terms[1]). "'>" .t($terms[1]). "</a>"); 
  if (
$terms[2]!="")
    {
      print (
" ");
      print (
"<a href='/business/" .strtolower($terms[0]). "/" .strtolower($terms[1]). "/" .strtolower($terms[2]). "'>"
            
.t($terms[2]). "</a>"); 
    }
?>

Этот код выберет для текущего материала все термины таксономии и упорядочит их.
Выведет в качестве ссылок (фильтра) на текущую дочернюю рубрику.
Все работает прекрасно, за исключением того что стоит i18n, и для английского языка все обрабатывается прекрасно,
но на русском языке ссылки все-равно ведут на английские адреса.

Вопрос: Правильно ли я вывожу ссылки? Есть ли какая функция, которая заставит i18n обрабатывать мои ссылки и подставлять в адреса языковой префикс?

И сразу второй вопрос, чтобы не плодить темы: Есть ли модуль для Views, который бы позволял вручную вводить запрос.
Маштабируемости Views недостаточно для необычных запросов.
Ну или как расширить Views таким образом, чтобы в качестве аргумента я мог ввести свое поле, например Node->path, но сделать ему реврайт, убрать языковой префикс, изменить "_" на пробелы и сделать первую букву большой. Т.е. сделать обратное преобразование от "pathauto" к заголовку материала.

Если знаете решение плиз помогите, или подтолкните в нужном направлении Smile

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 13 декабря 2010 в 21:37

"divined" wrote:
Есть ли какая функция, которая заставит i18n обрабатывать мои ссылки и подставлять в адреса языковой префикс

например i18ntaxonomy_term_get_translations(
см i18ntaxonomy.module

Аватар пользователя divined divined 13 декабря 2010 в 22:42

А вот второй вопрос актуальный.

Может скажу проще,
нужно заставить модуль Views выводить конкретную ноду по адресу:

http://site/category_name/node_title

где, node_title - преобразованный заголовок ноды на английском языке, нижний регистр и пробел на "_";

соответственно: http://site/ru/category_name/node_title

node_title - тот же самый

создал View:Page по адресу category_name
вот, думаю что теперь добавить в аргументы, чтобы отлавливалась моя нода.