Очень нужна помощь (views + taxonomy + Localizer)

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

Аватар пользователя EliteMonk EliteMonk 12 декабря 2007 в 18:58

Проблема в следующем, есть Вид представления, который в полях имеет поле таксономии, выводиться всё как и должно, но только на оснавном языке, view я так понял, после 4-х часов изучения модуля в этом направлении, что модуль хранит название поля от куда надо взять содержимое. а Localizer хранит переводы в отдельной табличке...

Вопрос как выйти из положения?

Подобное делал для модуля tagadelic в template.php переписал функцию

<?php
function phptemplate_tagadelic_weighted($terms) {
  foreach ($terms as $term) {
        // добавил 6 строчек
        $nameTranslate = $term->name;
        $result = mysql_query('select translation from localizertranslation where object_key="' . $term->tid . '" and object_name="taxonomy_term" and object_field="name" and locale="' . $GLOBALS['locale'] . '";');
        $sovpad = mysql_num_rows($result);
        if ($sovpad > 0) {
                $nameTranslate = mysql_result($result, 0, 'translation');
        }
        // заменил первый аргумернт функции на полученную выше $nameTranslate
    $output .= l($nameTranslate, taxonomy_term_path($term), array('class'=>"tagadelic level$term->weight", 'rel'=>'tag')) ." \n";
  }
  return $output;
}
?>

Так здесь свё ясно, имеем объект $term по нему отыскиваем в таблице нужный перевод и подставляем всё ок, но в view как я понял имеет только некое абстрактное описание нашего поля и имя поля в таблице из которого подставляется текст, но ничего придумать не могу, кто сталкивался и/или просто гуру Друпеля помогите советом, или может уже есть патч по этой проблеме, я не смог найти патча....

С Уважением,
Сергей.

Комментарии

Аватар пользователя EliteMonk EliteMonk 13 декабря 2007 в 10:55

Где все гуру, способные мне помочь советом... никто такого не делал разве? хоть может кто с Views модулем разбирался и знает как хардкодить его? Честно очень надо отказаться не могу от данного функционала...

Аватар пользователя EliteMonk EliteMonk 13 декабря 2007 в 12:11

Как всегда сам спросил сам ответил, модуль views вообще не трогаем, только модуль taxonomy правим, в официальном патче от localizer модуля этого небыло, сейчас и им напишу, решение похожее, значит...

<?php
/**
 * Implementation of hook_link().
 *
 * This hook is extended with $type = 'taxonomy terms' to allow themes to
 * print lists of terms associated with a node. Themes can print taxonomy
 * links with:
 *
 * if (module_exists('taxonomy')) {
 *   $terms = taxonomy_link('taxonomy terms', $node);
 *   print theme('links', $terms);
 * }
 */

function taxonomy_link($type, $node = NULL) {
  if ($type == 'taxonomy terms' && $node != NULL) {
    $links = array();
    if (array_key_exists('taxonomy', $node)) {
      foreach ($node->taxonomy as $term) {
                // добавил 6 строчек
                $nameTranslate = $term->name;
                $result = mysql_query('select translation from localizertranslation where object_key="' . $term->tid . '" and object_name="taxonomy_term" and object_field="name" and locale="' . $GLOBALS['locale'] . '";');
                $sovpad = mysql_num_rows($result);
                if ($sovpad > 0) {
                        $nameTranslate = mysql_result($result, 0, 'translation');
                }
        $links['taxonomy_term_'. $term->tid] = array(
          'title' => $nameTranslate, // заменил $term->name на $nameTranslate
          'href' => taxonomy_term_path($term),
          'attributes' => array('rel' => 'tag', 'title' => strip_tags($term->description))
        );
      }
    }

    // We call this hook again because some modules and themes call taxonomy_link('taxonomy terms') directly
    foreach (module_implements('link_alter') as $module) {
      $function = $module .'_link_alter';
      $function($node, $links);
    }

    return $links;
  }
}
?>