Drupal Views / Services: хотите 5 последних узлов для всех терминов в одном запросе (вложенные представления или подпредставления) - PullRequest
0 голосов
/ 13 марта 2011

Я использую 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 как можно более тщательной (кроме установки дополнительных модулей)

Ответы [ 2 ]

1 голос
/ 13 марта 2011

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

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

0 голосов
/ 07 июля 2011

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

...