Я собираюсь проверить, принадлежит ли термин к определенной лексике.
Какая функция используется для получения словарного запаса по термину или узлу?
Я собираюсь проверить, принадлежит ли термин к определенной лексике.
Какая функция используется для получения словарного запаса по термину или узлу?
Ответы:
В Drupal 6, если вы знаете идентификатор термина таксономии, вы можете получить идентификатор словаря, используя следующий код:
$term = taxonomy_get_term($tid);
$vid = $term->vid;
Если у вас есть идентификатор узла, то вы можете использовать следующий код для получения словарного идентификатора всех терминов таксономии, связанных с узлом, используя следующий код:
$node = node_load($nid);
$vids = array();
if (!empty($node->taxonomy)) {
foreach ($node->taxonomy as $tid => $term) {
$vids[] = $term->vid;
}
}
В Drupal 7 код будет следующим:
$term = taxonomy_term_load($tid);
$vid = $term->vid;
В Drupal 7 свойство узла $node->taxonomy
больше не существует. Вместо этого есть $node->field_<vocabulary_name>
массив с двумя разными структурами.
теги
другие условия таксономии
Используя field_get_items () , вы получите термины таксономии на том языке, на котором они будут отображаться, или на языке, код которого передается в качестве аргумента функции.
$items = field_get_items('node', $node, $field_name);
$node
содержит объект узла и $field_name
имя поля термина таксономии.
$items
содержит упрощенный массив по сравнению с массивом, содержащимся в $node->field_<vocabulary_name>
.
Для Drupal 7 приведенный выше код должен быть таким:
$tid = 18;
$vid = db_query('SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid',
array(':tid' => $tid)
)->fetchField();
echo $vid;
Смотрите другие примеры в функции db_query () drupal 7.
Решено кодом ниже:
$tid = 18;
$result = db_query("SELECT vid FROM {term_data} WHERE tid = %d", $tid);
$vid = db_result($result);
echo $vid;