Drupal → Узнать следующий/предыдущий термин
Задача — зная tid термина, узнать следующий и предыдущий термин.
Решение:
/** * Return prev/next term. */ function helper_get_sibling_term($tid, $type) { $term = taxonomy_term_load($tid); if ($type == 'next') { $operator = '>'; $direction = 'ASC'; } else { $operator = '<'; $direction = 'DESC'; } return db_select('taxonomy_term_data', 'td') ->fields('td', array('tid', 'name')) ->condition('td.vid', $term->vid) ->where( "td.weight $operator :weight OR (td.weight = :weight AND td.name $operator :name)", array(':weight' => $term->weight, ':name' => $term->name) ) ->orderBy('td.weight', $direction) ->orderBy('td.name', $direction) ->range(0, 1) ->execute() ->fetchObject(); }
Использование:
$prev_term = helper_get_sibling_term(123, 'prev'); $next_term = helper_get_sibling_term(123, 'next');
Комментарии
Задача — зная tid термина, узнать следующий и предыдущий термин.
_______________________________________________________________
taxonomy_term_load($tid + 1);
_________________________________________________________________
наверное задачу надо озвучить
зная tid термина, узнать следующий и предыдущий термин из того же словаря ,что и данный термин
во первых tid + 1 может не существовать, во вторых термины сортируются по весу и по имени
Но ведь термины могут быть в разных словарях. На практике, особенно в для сео, полезнее будет выводить "соседей" из одного словаря. Подскажите, пожалуйта, что нужно добавить в вашем коде?
если вы прочитаете код, то поймёте, что поиск идёт в рамках одного словаря
точно! благодарю - разобрался! большое Вам спасибо!!!
Подскажите пожалуйста, как адаптировать этот код для Drupal 6? Стоит задача, на странице термина выводить ссылки на следующий/предыдущий термин словаря по id и никак не могу решить ее.
Оставить комментарий