Представления / службы Drupal: нужны 5 последних узлов для всех терминов в одном запросе (вложенные представления или подпредставления)

Я использую CMS Drupal 6 в качестве поставщика услуг REST на основе JSON для настраиваемого клиента. В настоящее время я использую 2 представления для контента:

  • Просмотр всех терминов таксономии
  • Представление, чтобы получить 5 последних опубликованных узлов для каждого термина

На данный момент я использую довольно много запросов для получения следующих данных:

  • Список терминов таксономии (1 запрос)
  • 5 последних узлов для каждого термина (1 запрос на термин, обычно около 10 запросов)

Я хотел бы сократить накладные расходы на связь, предоставив эти данные в 1 запросе. Это означает, что я должен создать представление, которое извлекает следующие данные:

- Term ID 1
  - Node 1
  - Node 2
  - Node 3
  - Node 4
  - Node 5
- Term ID 1
  - Node 6
  - Node 7
  - Node 8
  - Node 9
  - Node 10

и т.д

Чтобы создать это, мне понадобится какой-то механизм подзапроса или механизм подзапроса, что-то столь же мощное, как механизм подзапросов в SQL.

Есть идеи, как это реализовать?

Я мог бы попробовать путь кодирования php, но я бы хотел избежать его в этом проекте и сохранить установку Drupal как можно более ванильной (кроме установки дополнительных модулей)


person dwergkees    schedule 13.03.2011    source источник


Ответы (2)


Я не уверен, можно ли это сделать с помощью Views.

Если он служит только интерфейсом JSON, вы можете самостоятельно написать его как обычный запрос. Напишите модуль, который извлекает нужные вам данные и возвращает их таким образом, чтобы вы могли их обработать. Вы можете сделать это, создав собственный сайт (например, www.mysite.com/my_json_result), чтобы ваша служба могла получить к нему доступ.

person DrColossos    schedule 13.03.2011
comment
Спасибо, но не тот ответ, на который я надеялся - person dwergkees; 16.03.2011

Кто-то уже работает над модулем, чтобы сделать что-то подобное, http://drupal.org/project/services_views, посмотрите.

person R01010010    schedule 07.07.2011