Drupal 7 a un système de requêtes de type ORM très prometteur avec EntityFieldQuery.
Actuellement, je comprends comment faire la sélection des nœuds, mais le résultat ne contient aucune information spécifique, comme les fichiers, que je recherche.
$query = new EntityFieldQuery();
$entities = $query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'event')
->propertyCondition('status', 1)
->fieldCondition('field_date', 'value', array('2011-03-01', '2011-03-31'), 'BETWEEN')
->fieldOrderBy('field_date', 'value', 'ASC')
->execute();
Nous devons donc charger des données entières de nœuds, si nous voulons obtenir uniquement les valeurs d'un champ, par exemple 'field_date' dans l'exemple actuel.
$nodes = entity_load('node', array_keys($entities['node']));
S'il existe un moyen d'obtenir la valeur des champs, chargez plutôt les données complètes de tous les nœuds, car cela provoque une surcharge de mémoire.
$nodesFieldDates = ???