web-dev-qa-db-fra.com

Comment accéder aux champs d'un terme de taxonomie?

Plus précisément, j'essaie d'accéder à un champ appelé "logo" à l'intérieur de quelques termes de taxonomie (Tweet et Wikipedia), qui est une image. J'ai un fil d'actualité sur la première page de mon site, et pour chaque élément de fil qui a une référence de terme à l'une de ces images à côté de chaque élément de fil dans le fil. Quelle serait la meilleure façon d'exposer ou d'accéder au champ du logo à partir de chaque terme de taxonomie?

7
nerdshark

Si vous allez accéder au contenu de ce que drupal appelez les entités (objets de données, comme les nœuds, les utilisateurs, les taxonomies, etc.), vous pourriez envisager d'utiliser le module d'entité . Il ajoute quelques fonctions d'assistance Nice. Ce que Nikit écrit n'est pas possible, vous feriez quelque chose comme ceci:

$term_id_1 = $node->field_term['und'][0]['tid'];
$term_id_2 = $node->field_term['und'][1]['tid'];

Ensuite, vous devrez charger les termes, etc. À la place, avec le module d'entité, vous pouvez le faire.

$images = array();

$node_wrapper = entity_metadata_wrapper('node', $node);
foreach ($node_wrapper->field_term as $term_wrapper) {
  $images[] = $term_wrapper->field_image->value();
}

$images sera désormais un tableau avec l'objet champ image qui contient des informations comme uri, fid etc.

8
googletorp

En utilisant taxonomy_term_load et taxonomy_term_load_multiple vous fournira l'objet terme entièrement chargé, y compris tous les champs personnalisés.

Vous pouvez également utiliser taxonomy_get_tree avec le paramètre final ($load_entities) défini sur TRUE.

5
Joshua Stewardson