Как пересечь(связать) словари?

26 января 2008 в 14:26
Аватар пользователя lukevr lukevr 0 9

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

Например: имеем один словарь со структурой:
Продукты питания
-Молочные
-- молоко
-- кефир
-- сыр
-Мясо
--Говядида
--Свинина

и второй словарь без структуры в котором например такие термины:
(пиво, сыр, хлеб, свининина)

есть ноды помеченые термами из первого словаря и есть ноды помеченые термами из другого.

как сделать так, что по клику на терм - выдавались ноды относящиеся как к первому, так и второму словарям?

Комментарии

Аватар пользователя Dan Dan 0

Опишите логику! С нормальным примером - какой термин, какие ноды, как выводить. А мы подскажем, как это сделать.

(может этого будет достаточно: вывод нодов, привязанных к одному из терминов - taxonomy/term/1+2+3, ко всем терминам - taxonomy/term/1,2,3)

26 января 2008 в 18:37

Логика проста - есть два термина с одинаковым именем из разных словарей. К каждому из них привязаны какие то(неважно какие) ноды. Кликая на на первом термине - хочется получить список нод привязанных, как к термину на котором кликаю, так и нод привязаных к другому термину(с таким же названием), но из другого словаря. Алгоритм такой выборки понятен - я спрашивал о готовом решении. Спасибо за ответы.

27 января 2008 в 16:02

такие связи можно было бы делать с помощью модуля category, но он сейчас находится в полуживом состоянии со множеством неисправленных ошибок. Как вариант, можете рассмотреть использование одного словаря с множественной иерархией, и включить в него все необходимые вам термины

27 января 2008 в 13:48

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

27 января 2008 в 15:40
Аватар пользователя Dan Dan 0

У терминов есть понятие синонимов. Можно задействовать этот механизм. Например по крону связывать термины друг с другом. Или при добавлении.

28 января 2008 в 8:11

Насколько я помню синонимы устанавливать можно, но реальной функциональности по работе с ними в стандартной поставке Друпала нет. Смотрел когда то модуль на эту тему, но он не заработал и я нашёл какой то вокераунд...

28 января 2008 в 22:36

может кому пригодится Smile
Болванка Views Argument Handling Code для вывода нод по всем одноимённым термам из всех существующих словарей:

if ($args[0]) {
$arg = $args[0];
$maint = taxonomy_get_term($arg);
$mainn = $maint->name;
// $mainv = $maint->vid;
$term_arr = taxonomy_get_term_by_name($mainn);
$count_arr = count($term_arr);
$queue = 0;
for ($i = 0; $i < $count_arr; $i++) {
$cur_term = $term_arr[$i];
if($queue == 0){$queue = $cur_term->tid;}else{$queue = $queue.'+'.$cur_term->tid;}
}
$args[0] = $queue;
$view->argument[0]['title'] = 'TERM: \''.$mainn.'\' ';
}

29 января 2008 в 6:00

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

27 марта 2008 в 15:46

связать то можно, через terms synonyms and related terms. Вот с выводом не получается, нету, вроде как, в стандартном друпале вывода нод по синонимам. Назначение синонимов терму - есть, а вывода нет. Надо самому писать.

5 апреля 2008 в 17:43