Проблема в следующем, есть Вид представления, который в полях имеет поле таксономии, выводиться всё как и должно, но только на оснавном языке, view я так понял, после 4-х часов изучения модуля в этом направлении, что модуль хранит название поля от куда надо взять содержимое. а Localizer хранит переводы в отдельной табличке...
Вопрос как выйти из положения?
Подобное делал для модуля tagadelic в template.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 как я понял имеет только некое абстрактное описание нашего поля и имя поля в таблице из которого подставляется текст, но ничего придумать не могу, кто сталкивался и/или просто гуру Друпеля помогите советом, или может уже есть патч по этой проблеме, я не смог найти патча....
С Уважением,
Сергей.
Комментарии
Где все гуру, способные мне помочь советом... никто такого не делал разве? хоть может кто с Views модулем разбирался и знает как хардкодить его? Честно очень надо отказаться не могу от данного функционала...
Как всегда сам спросил сам ответил, модуль views вообще не трогаем, только модуль taxonomy правим, в официальном патче от localizer модуля этого небыло, сейчас и им напишу, решение похожее, значит...
/**
* 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;
}
}
?>