Темизация form-element.html.twig <!-- THEME HOOK: 'form_element' -->

Главные вкладки

Аватар пользователя Alex_Black Alex_Black 27 февраля 2017 в 1:02

Всем привет столкнулся с такой проблемой не знаю как решить, кто может помогите.

На Drupal 8 вывожу материал через views и у него есть фильтр, я решил обвернуть в свои классы каждый элемент фильтра, в файле темы я написал вот такой код:

Чтобы были универсальные form-element.html.twig

function название_темы_theme_suggestions_form_element_alter(array &$suggestions, array $variables, $hook) {
   $label_for = $hook_name = $variables["element"]["#id"];
    $matches = array();
    if(preg_match('/^edit-(.*)/', $label_for, $matches)) {
       $hook_name = $matches[1];
    }
    $suggestions[] = 'form-element--'.$hook_name;
}

Что бы были универсальные form-element-label.html.twig

function название_темы_theme_suggestions_form_element_label_alter(array &$suggestions, array $variables) {
   $label_for = $hook_name = $variables["element"]["#id"];
    $matches = array();
    if(preg_match('/^edit-(.*)/', $label_for, $matches)) {
       $hook_name = $matches[1];
    }
    $suggestions[] = 'form-element-label--'.$hook_name;
}

В итоге все работает и показывает шаблоны:

<!-- FILE NAME SUGGESTIONS:
  * form-element-label--liter.html.twig
  x form-element-label.html.twig
-->

Но когда я создаю шаблон form-element-label--liter.html.twig Drupal не считает его как основной и все равно читает form-element-label.html.twig

Кто может подсказать как заставить Drupal 8 считать мой шаблон основным.

Результат нужен такой

<!-- FILE NAME SUGGESTIONS:
  x form-element-label--liter.html.twig
  * form-element-label.html.twig
-->

Комментарии

Аватар пользователя Alex_Black Alex_Black 27 февраля 2017 в 1:41

Все разобрался оказалось все просто

function название_темы_theme_suggestions_form_element_alter(array &$suggestions, array $variables, $hook) {
 if (isset($variables['element']['#name'])) {
   $suggestions[] = 'form_element__' . explode("[", $variables['element']['#name'])[0];
  }
}