2010-06-22 2 views
1

Хотя вы можете легко сделать результат запроса, где vid = vocabularyId Мне хотелось бы знать, есть ли способ в api, чтобы сделать так, чтобы мой код выглядел немного менее уродливым. Я хотел бы знать, есть ли что-то вроде vocabulary_get_nodes (vid), уже реализованного в ядре Drupal.Мой ежедневный вопрос о Drupal: получить все узлы в заданном словаре через api

ответ

4

Не уверен, что это именно то, что вы хотите сделать, но проверить эти функции три API:

  1. taxonomy_select_nodes()
  2. taxonomy_render_nodes()
  3. taxonomy_term_page()

Если вы ищете api.drupal .org, есть еще несколько других функций API, связанных с лексикой, просто найдите те, которые начинаются с таксономии.

+1

+1 для 'taxonomy_select_nodes()' - следует добавить, что это возвращает ресурс результата запроса, поэтому нужно добавить код для извлечения узлов: http://stackoverflow.com/questions/3050741/getting- a-array-of-nodes-related-to-category-term-with-the-drupal-api/3051161 # 3051161 –

+0

Получение всех условий, а затем объединение узлов, по-видимому, является единственным способом, если HAS будет использоваться , Я в конечном итоге сам запросил узлы. Спасибо! – JoseMarmolejos

+0

В Drupal 6 и 5 запрос, используемый taxonomy_select_nodes(), будет использовать db_query_range() или pager_query(). Если вам действительно нужно восстановить все узлы, вам нужно будет вызвать его несколько раз, по одному для каждой страницы результатов. pager_query() будет указывать пользователю $ _GET ['page'] в качестве индекса страницы и будет хранить количество страниц в (глобальном) $ pager_total [0]. Обратите внимание, что если список узлов отображается на странице, пейджинг - это хорошо. В этом случае просто используется один вызов для taxonomy_select_nodes() и не забудьте включить пейджер на отображаемую страницу (используя theme_pager()). –