На сайте Drupal 8 у меня есть страница таксономии с блоком просмотра. В представлении перечислены статьи, помеченные термином страницы, на которой вы находитесь. В нем также показаны статьи, помеченные дочерними условиями текущей страницы таксономии.Drupal 8: Ограничение страницы с использованием таксономии на основе родительского термина
Я использую экспонированный фильтр. «Содержание: имеет термины таксономии (с глубиной) (выставлены)», чтобы пользователь мог фильтровать статьи на основе дочерних терминов. В настоящее время этот фильтр показывает все термины, независимо от того, в какой таксономии вы сейчас находитесь.
Ниже приведен пример из элементов, перечисленных в облученной фильтре:
Mammals
- Cat
- Dog
Reptiles
- Lizard
- Snake
Amphibians
- Frog
- Salamander
URL-адрес для одного из родительских терминов будет:
site.com/animal/mammals
Мне нужно ограничить список опций в подверженном фильтре, чтобы показывать только дети этого термина на основе URL. Таким образом, по указанному выше URL, только Cat и Dog будут указаны в открытом фильтре.
В Drupal 7 Я мог бы выполнить это с помощью hook_form_alter в моей теме.module, используя URL arg (2), чтобы получить имя этого имени. Я не могу найти никакой документации о том, как это сделать в Drupal 8.
Вот что я нашел до сих пор:
function myTheme_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
if ($form_id == 'views_exposed_form' && $form['#id'] == 'views-exposed-form-article-tags-block-1') {
$term = arg(2);
//Need D8 code to load term, find it's children and alter the select box to show those children
}
}
Я открыт для других вариантов, если это не путь для достижения своей цели , Заранее спасибо.
Это сработало. Спасибо! – Pagri