Как темизировать формы на примере формы комментариев?

Аватар пользователя VasyOK

Всем привет!

Подскажите как изменить HTML формы комментариев

<!-- BEGIN OUTPUT from 'core/modules/system/templates/form.html.twig' -->
<form class="comment-vopros-otvet-form comment-form>

и кнопку отправки этой формы

<!-- BEGIN OUTPUT from 'themes/cleaning/templates/input--button--submit.html.twig' -->
<button data-drupal-selector="edit-submit">

Т.е. я могу изменить файлы из "BEGIN OUTPUT from", но так изменяться все формы, а не только форма комментариев.

В FILE NAME SUGGESTIONS: ничего путного не нахожу.

Это надо модуль какой-то ставить, чтоб темизировалось легче?
Или в препроцессе функцию определить?
Или в Devel что-то посмотреть?

Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя VasyOK
VasyOK 3 месяца назад

Эмммм...
И как с помощью Display Suite изменить HTML формы комментариев?

Аватар пользователя sas@drupal.org
sas@drupal.org 3 месяца назад

Forms: style the layout of forms.

Аватар пользователя VasyOK
VasyOK 3 месяца назад

Посмотрел. Но не понял к чему.
Неужели Display Suite может изменить form.html.twig для типа комментариев?
Объединить поля комментариев в группы это немного не то что мне надо.

Аватар пользователя VasyOK
VasyOK 3 месяца назад

Частично нашел ответ тут https://drupal.stackexchange.com/questions/216204/override-form-html-twi...

<?php
function MY_THEME_theme_suggestions_alter(array &$suggestions, array $variables){

if (isset(

$variables['element']) && isset($variables['element']['#type']) && $variables['element']['#type'] == 'form') {
    
$original_theme_hook $variables['theme_hook_original'];
    
$suggestions[] = $original_theme_hook '__' str_replace('-''_'$variables['element']['#id']);
}

return 

$suggestions;
}
?>

Появилось:

<!-- FILE NAME SUGGESTIONS:
  x form--comment-form.html.twig
  * form.html.twig -->

В принципе мою проблему решает, но что если бы сайт был более сложным? Если б мне нужны были разные по HTML формы для разных типов комментариев?

Аватар пользователя BatKor
BatKor 3 месяца назад

Можно как вариант получить ноду вот так

<?php
$node 
= \Drupal::routeMatch()->getParameter('node');
// и получаем тип ноды
$node->getType();
?>

а вообще если надо поменять input на button в Д7 был хук form render element.
А зачем вы хотите поменять input на button, хотите иконку вставить?
Если да то как вариант можно убрать значение value, добавить к inputu префик с суффиксом и вставить туда иконку.

Аватар пользователя VasyOK
VasyOK 3 месяца назад

BatKor, а зачем ноду получать?

"А зачем вы хотите поменять input на button, хотите иконку вставить?" Кто? Я?

Мне нужно
1) form.html.twig для формы комментариев конкретного типа комментриев - пока что нашел только для любой формы комментариев - уже хорошо.
2) input.html.twig для кнопки отправки этой формы. Тег button там уже стоит, его я не менял.

Аватар пользователя BatKor
BatKor 3 месяца назад

Тогда что вы имеете ввиду под понятием разный тип коммментраиев?
Получив тип ноды можно сделать что то типа такого

<?php
function MY_THEME_theme_suggestions_alter(array &$suggestions, array $variables){
if (isset(
$variables['element']) && isset($variables['element']['#type']) && $variables['element']['#type'] == 'form') {
    
$original_theme_hook $variables['theme_hook_original'];
    
$suggestions[] = $original_theme_hook '__' str_replace('-''_'$variables['element']['#id']).'__'.$node->getType();
}

return 

$suggestions;
}
?>
Аватар пользователя VasyOK
VasyOK 3 месяца назад

"под понятием разный тип коммментраиев?"
В Drupal 8 есть разные типы комментариев.

Аватар пользователя BatKor
BatKor 3 месяца назад

К сожалению не смог получить, тип комментария из переменной $variables , видимо надо по id поля ноды или по типу ноды перехватывать, а может кто другой подскажет

Аватар пользователя sas@drupal.org
sas@drupal.org 3 месяца назад

На скрине показано, где появляются настройки.
ds

Аватар пользователя VasyOK
VasyOK 3 месяца назад

Алексей, серьезно не понимаю тебя.
В моем понимании изменить form.html.twig - это одно
А обернуть форму контейнером One column (что можно с Display Suite ) это другое . Не возражаю, что в этом контейнере можно теги прописать.

Или я из космоса...

Аватар пользователя VasyOK
VasyOK 3 месяца назад

нет,
меня интересует suggestions для form.html.twig связанные с типом комментария (родительской ноды)