В коде, связанном с Drupal, $node
почти всегда является объектом, созданным функцией node_load()
.Поскольку каждый модуль имеет возможность добавлять свои собственные свойства к этому объекту, очень трудно найти центральную документацию по этим свойствам.
По опыту и по переменным проверкам опытные разработчики Drupal знают, что при установке $node->taxonomy
всегда является массивом объекта термина (как возвращено функцией taxonomy_get_term()
), проиндексированным их соответствующими идентификаторами (названными tids, для идентификатора термина).Этот массив устанавливается функцией taxonomy_nodeapi()
, когда $op == 'load'
, и создается функцией taxonomy_get_terms()
.
Вопрос дает мало информации, но мы можемПредположим, что цикл предназначен для построения двух массивов, используемых для генерации запроса к базе данных, который фильтрует столбец tid, соответствующий объектам $node
.Поскольку данные терминов уже хранятся в элементах $node->taxonomy
, будем надеяться, что этот запрос не используется для повторной загрузки терминов для отображения некоторых их названий и / или описаний.Сбор 't.tid =% d', вероятно, является плохой идеей. Запрос лучше построить с помощью одного "tid in (". <a href="http://api.drupal.org/api/drupal/includes--database.inc/function/db_placeholders/6" rel="nofollow"><code>db_placeholder($args)
. ")" WHERE предложения после сбора всех приливов в $args
.