Drupal 7 имеет очень многообещающую ORM-подобную систему запросов с EntityFieldQuery.
В настоящее время я понимаю, как сделать выбор узлов, но результат не содержит какой-либо конкретной информации, например, полей, которые я ищу.
$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();
Таким образом, нам нужно загрузить целые данные узлов, если мы хотим получить только значения одного поля, например, 'field_date' в текущем примере.
$nodes = entity_load('node', array_keys($entities['node']));
Если есть способ получить значение полей, вместо этого загрузить полные данные всех узлов, так как это вызывает некоторую перегрузку памяти.
$nodesFieldDates = ???