Вед-дев, Сео, Манимейкинг

Узнать Vocubulary ID Drupal 7

taxonomy_vocabulary_machine_name_load('my_vocabulary');

Данный код показывает ID вашего словаря. Выводит этот код можно в шаблонах вашей темы либо в кастомном модуле.

drupal_set_message(taxonomy_vocabulary_machine_name_load('my_vocabulary');

После того как вы узнали ID словаря, обычно у всех возникает следующий вопрос: "А как вывести все термины этого словаря?". Делается это при помощи функции taxonomy_get_tree($vid, $parent = 0, $max_depth = NULL, $load_entities = FALSE):

$items = array();

$terms = taxonomy_get_tree(3); // vocabulary id
$term_count = count($terms);

for ($i = 0; $i < $term_count; $i++) {
  $items[] = l($terms[$i]->name, 'taxonomy/term/' . $terms[$i]->tid);
}

print theme('item_list', array('items' => $items));

PS У вас проблемы с наркотиакми или частыми запоями? Тогда вам поможет !



Комментарии (7)

Для того чтобы вывести все дочерние термины текущего словаря надо в строке
$terms = taxonomy_get_tree(3); // vocabulary id
добавить аргумент arg(2)для идентификации текущего термина итого должно быть
$terms = taxonomy_get_tree(3, arg(2)); // vocabulary id

А данный код выводит описание термина (если есть) + его дочерние термины

$current = taxonomy_term_load(arg(2));
print ''. $current->description .'';

$items = array();
$terms = taxonomy_get_tree(1, arg(2)); // vocabulary id
$term_count = count($terms);
for ($i = 0; $i < $term_count; $i++) {
$items[] = l($terms[$i]->name, 'taxonomy/term/' . $terms[$i]->tid);
}
print theme('item_list', array('items' => $items));

Так taxonomy_get_tree() итак вывводит все дочерние термины если не вписывать второй аргумент, т.к. он по умолчанию будет равен нулю, что значит показывать полную иерархию словаря.

В моем случае надо было в каждом родительском термине выводить его описание и дочерние термины (каталог товаров)

Вывод делали в блоке? Что-то типа такого:

Термин (Описание)
--подтермин
--подтермин
Термин2 (Описание)
--подтермин
--подтермин

?

Нет не в блоке во вьюхе страницы термина страница такая примерно

Тоета (родительский термин)
завод основан в бла бла бла (описание берется из описания термина таксономии)
Камри (дочерний термин)
Королла (дочерний термин)
Прадо (дочерний термин)

нода 1
нода 2
(А тут если есть ноды которые имеют отношение к данному родителскому термину.)

Если я не ошибаюсь, то ведь это можно было сделать и без кодинга - штатными средствами Views, нет?

Наверное можно... Но у меня так и не получилось...

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

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Xrumerls 1 день 19 часов назад
    Прогон вашего сайта лицензионным Xrumer Дешевле только даром https://goo.gl/vrx4SW - всего 5 за 1400 открытых ссылок 
  • Olzhas 2 месяца 2 дня назад
    Спасибо. С Новым Годом! 
  • Den 2 месяца 4 недели назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 2 месяца 4 недели назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 3 месяца 3 недели назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 3 месяца 3 недели назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 3 месяца 4 недели назад
    захожу на mysql через ssh по команде  
  • admin 3 месяца 4 недели назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 4 месяца 15 часов назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 4 месяца 2 недели назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника?