Как вытащить текстовое описание из словаря при заполнения формы ноды?

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

Аватар пользователя zman zman 16 февраля 2010 в 17:58

Приветствую Drupaller'ов.
Помогите чайнику (по идее всё должно быть просто):

есть заполняемый пользователем материал (node)
есть используемый модуль Automatic title generation
есть словарь(vocabluary) с двумя вложенностями уже заполненных терминов

пользователь заполняет материал, и я использую Automatic title generation для заполнения title материала(node)
также при заполнении формы материала пользователь выбирает галочками несколько словарей(vocab) и терминов из заполненные полей
и вот текстовые описания этих галочек я что-то и не могу вытащить из массива который доступен модулю Automatic title generation (см. ниже <?php return print_r ($node); ?>)

пример:
уже есть заполненными словари (vocabulary) с древовидные терминами (terms)
нужно вытащить название словаря, термина 1го уровня и термина 2го уровня

----------------------
например:

словарь (vocabulary) книга

термины 1го уровня
английская
немецкая
французская

термс 2го уровня (например: книга английская)
детектив
фантастика
поэзия
-------------------------

т.е. в финале нужно вытащить из заранее занесённых словарей-терминов
и получается, текст
книга > английская > детектив

вот например массив данных из формы который выводится посредством Automatic title generation
там я болдом выделил искомые значения галочек передаваемые из формы материала (текстовые описания которых и нужны)

<?php return print_r ($node); ?>
class stdClass { var $nid = NULL; var $vid = NULL; var $uid = '1'; var $created = 1265045976; var $type = 'pdf_book'; var $language = ''; var $changed = 1265045976; var $title = 'ant'; var $teaser_include = 1; var $body = 'chapter 1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam.   chapter 2.ghjk '; var $format = '1'; var $revision = 0; var $log = ''; var $name = 'admin'; var $date = ''; var $status = 1; var $promote = 1; var $sticky = 0; var $submit = 'Save'; var $op = 'Preview'; var $preview = 'Preview'; var $form_build_id = 'form-19f93208d49e0cea1e049e5a9ddf6428'; var $form_token = '1f62e385b7f995ff808fce8bacff3b9d'; var $form_id = 'pdf_book_node_form'; var $comment = '2'; var $menu = array ( 'mlid' => 0, 'module' => 'menu', 'hidden' => 0, 'has_children' => 0, 'customized' => 0, 'options' => array ( ), 'expanded' => 0, 'parent_depth_limit' => 8, 'link_title' => '', 'parent' => 'primary-links:0', 'weight' => '0', 'plid' => '0', 'menu_name' => 'primary-links', ); var $path = ''; var $pathauto_perform_alias = 1; var $old_alias = ''; var $taxonomy = array ( 'tags' => array ( 1 => 'Agata Christie', 2 => 'Murder on the Orient Express', 3 => '1934', 4 => 'england', 5 => 'nice', ),
6 => '1',
7 => array ( 24 => '24', ), ); var $print_display = 1; var $print_display_comment = 0; var $print_display_urllist = 1; var $print_mail_display = 1; var $print_mail_display_comment = 0; var $print_mail_display_urllist = 1; var $print_pdf_display = 1; var $print_pdf_display_comment = 0; var $print_pdf_display_urllist = 1; var $teaser = 'chapter 1.abcdef '; var $validated = true;}

т.е. вопрос как у этих значений
6 => '1',
7 => array ( 24 => '24', )
вытащить текстовые описание из словаря (vocabulary) и текстовое описание терминов

С Уважением.

Комментарии

Аватар пользователя goodboy goodboy 16 февраля 2010 в 23:32

Если я правильно понимаю, 1 и 24 - это номера терминов ( $tid ).
Попробуйте:

$tid = 1;
$term = taxonomy_get_term($tid);
print  $term->name;

Словарь 7 имеет опцию Множественный выбор, поэтому в общем случае нужно сканировать массив.

Аватар пользователя zman zman 17 февраля 2010 в 13:53

спасибо большое!

$tid = 1;
$term = taxonomy_get_term($tid);

именно то, что искал

-------

> Словарь 7 имеет опцию Множественный выбор,
> поэтому в общем случае нужно сканировать массив

если не сложно, можна накинуть пару примеров,
а то опять буду пару дней тупить

Аватар пользователя goodboy goodboy 17 февраля 2010 в 14:55

"zman" wrote:
> Словарь 7 имеет опцию Множественный выбор,
> поэтому в общем случае нужно сканировать массив

если не сложно, можна накинуть пару примеров,
а то опять буду пару дней тупить

Я имел в виду, что вам нужно подумать, что делать в том случае, если термин будет содержать несколько значений.
7 => array ( 24 => '24', 25 => '25' ). Например, брать только первый термин.

Посмотрите также в файле taxonomy.pages.inc (модуль taxonomy), как там реализован breadcrumb

Аватар пользователя zman zman 17 февраля 2010 в 15:54

> что делать в том случае, если термин
> будет содержать несколько значений

тут всё просто - выводить все значения через запятую