Ottieni l'ID del vocabolario per termine o nodo


9

Controllerò se un termine appartiene a un vocabolario designato.

Quale funzione viene utilizzata per ottenere il vocabolario per termine o nodo?

Risposte:


15

In Drupal 6, se si conosce l'ID del termine tassonomia, è possibile ottenere l'ID del vocabolario utilizzando il seguente codice:

$term = taxonomy_get_term($tid);
$vid = $term->vid;

Se si dispone di un ID nodo, è possibile utilizzare il seguente codice per ottenere l'ID del vocabolario di tutti i termini di tassonomia associati al nodo utilizzando il seguente codice:

$node = node_load($nid);
$vids = array();

if (!empty($node->taxonomy)) {
  foreach ($node->taxonomy as $tid => $term) {
    $vids[] = $term->vid;
  }
}

In Drupal 7, il codice sarebbe il seguente:

$term = taxonomy_term_load($tid);
$vid = $term->vid;

In Drupal 7, la proprietà node $node->taxonomynon esiste più. Invece, c'è $node->field_<vocabulary_name>, che è un array con due diverse strutture.

  • tag

    immagine dello schermo

  • altri termini di tassonomia

    immagine dello schermo

Usando field_get_items () , otterresti i termini della tassonomia nella lingua in cui verrebbero visualizzati o nella lingua il cui codice viene passato come argomento alla funzione.

$items = field_get_items('node', $node, $field_name);

$nodecontiene l'oggetto nodo e $field_nameil nome del campo del termine tassonomia.

$itemscontiene un array semplificato, rispetto all'array contenuto in $node->field_<vocabulary_name>.

immagine dello schermo


1

Per Drupal 7 il codice sopra dovrebbe essere così:

 $tid = 18;
 $vid = db_query('SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid', 
                  array(':tid' => $tid)
                )->fetchField();
 echo $vid;

Vedi altri esempi nella funzione db_query () drupal 7.


0

Risolto dal seguente codice:

$tid = 18;    
$result = db_query("SELECT vid FROM {term_data} WHERE tid = %d", $tid);
$vid = db_result($result);
echo $vid;
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.