Drupal показываем родителя в раскрытом фильтре по словарю таксономии

Сегодня как обычно нужно было реализовать ранее не отточенное на практике. В расскрытом фильтре городов и регионов, при поиске отображать регион в который вложен город.

К сожалению расскрытые фильтры в таксономии не предоставляют возможности отслеживать иерархию вложенности, но обозначают вложенные термины в родительские при помощи символа "-" чем мы с вами и воспользуемся для выполнения нашей задачи.

Создадим кастомный модуль и добавим туда следующее содержимое. Далее как обычно чистим кэш и наслаждаемся результатом.

function MYMODULE_form_views_exposed_form_alter(&$form, &$form_state, $form_id) {
  $parent = '';
  $options = $form['tid']['#options'];
  foreach ($options as $index => $option) {
    if (is_object($option)) {
      $label = reset($option->option);
      $key = key($option->option);
      if (substr($label, 0, 1) != '-') {
        $parent = $label;
      }
      else {
        $options[$index]->option[$key] = $options[$index]->option[$key] . " ($parent)";
      }
    }
  }
}