Drupal глазами разработчика

Блог музицирующего веб-девелопера: Drupal: Получить список всех дочерних терминов любой глубины

Функция возвращает tid-ы всех дочерних терминов независимо от глубины ребёнка:
Способ 1:
Подходит для словарей с большим количеством терминов — делается несколько запросов, количеством равным уровню вложенности самого глубокого термина
<span class="co4">/**
 * Return all term child tids.
 */</span>
<span class="kw2">function</span> helper_get_all_term_child_tids<span class="br0">(</span><span class="re0">$tid</span><span class="br0">)</span> <span class="br0">{</span>
  <span class="re0">$query</span> <span class="sy0">=</span> db_select<span class="br0">(</span><span class="st_h">'taxonomy_term_data'</span><span class="sy0">,</span> <span class="st_h">'d'</span><span class="br0">)</span><span class="sy0">;</span>
  <span class="re0">$query</span><span class="sy0">-></span><span class="me1">fields</span><span class="br0">(</span><span class="st_h">'d'</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">(</span><span class="st_h">'tid'</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
  <span class="re0">$query</span><span class="sy0">-></span><span class="me1">innerJoin</span><span class="br0">(</span><span class="st_h">'taxonomy_term_hierarchy'</span><span class="sy0">,</span> <span class="st_h">'h'</span><span class="sy0">,</span> <span class="st_h">'d.tid = h.tid'</span><span class="br0">)</span><span class="sy0">;</span>
  <span class="re0">$query</span><span class="sy0">-></span><span class="me1">condition</span><span class="br0">(</span><span class="st_h">'h.parent'</span><span class="sy0">,</span> <span class="re0">$tid</span><span class="br0">)</span><span class="sy0">;</span>

Читать дальше →
Похожие записи:
  • нет
  • 0
  • 0

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.