Рейтинг:0

How to theme a paragraph form

флаг sa

I would like to create a twig template for the form displayed inside the paragraph widget.

The only way I found is:

function mymodule_field_widget_paragraphs_form_alter(&$element, &$form_state, $context) {
// Check that the subform is opened  
if (count($element['subform']) > 2) {
    $element['subform']['#theme'][] = 'form__aw_calculator';
  }
...
}

After that, I have created a twig template form--aw-calculator.html.twig like the following

<form{{ attributes }}>
    <div class="grid--all three--columns">
        <div class="column column--first bg--red-level-3">
            {{ element.field_calc_ts }}
            {{ element.field_calc_ts_greenlight }}
            {{ element.field_calc_budget }}
            ....

Unfortunately, this is half working... some of the fields are displayed some other are not (the form mode used in the paragraph widget setting should display all of them) More over, I can't see the markup coming from my twig....

I have the feeling that this is not the right way to handle this... any idea ?

флаг ru
То, что вы пытаетесь сделать здесь, на самом деле не сработает, вы не можете использовать формы администратора в свободном стиле, такие как интерфейс. Несмотря на то, что темы администратора используют файлы Twig, они в значительной степени контролируются API форм, который обеспечивает правильную работу очень специфической разметки и очень специфических атрибутов. Изменение разметки HTML рано или поздно приведет к поломке, потому что модули contrib полагаются на эту конкретную разметку, определенные атрибуты и скрытые входные данные. Если вам нужно изменить форму за пределами CSS, лучше используйте [Form API](https://api.drupal.org/api/drupal/elements/9.3.x) вместо Twig.
Baud avatar
флаг sa
Я использовал встроенную форму сущности и смог создать шаблон ветки для своей формы. Похоже, это не относится к виджету абзаца
Baud avatar
флаг sa
Я пробовал с Form API, это работает, но не при добавлении нового абзаца. Это связано с тем, что подчиненная форма абзаца не содержит полей во время хука widget_type_form_alter. это кошмар
4uk4 avatar
флаг cn
@Baud, добавление `#theme` - правильный подход, но не шаблон `form__`.Подойдет любое другое имя пользовательского шаблона. См. https://drupal.stackexchange.com/questions/249856/custom-registration-twig-template

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.