Drupal 8+
Пример темизации формы с идентификатором example_form
:
1. Реализуем хук hook_theme()
, в котором в качестве имени шаблона указываем идентификатор формы.
/**
* Implements hook_theme().
*/
function THEMENAME_theme() {
return [
'example_form' => [
'render element' => 'form',
],
];
}
2. Создаём файл example-form.html.twig
, в котором выводим всё что нужно:
<form{{ attributes }}>
<header>
{{ form.element1 }}
{{ form.element2 }}
</header>
{{ form.without('element1', 'element2') }}
</form>
3. Сбрасываем кэш.
Drupal 7
Пример темизации формы commerce_checkout_form_checkout
:
1. Реализуем хук hook_theme()
:
function THEMENAME_theme() {
return array(
'commerce_checkout_form_checkout' => array(
'render element' => 'form',
'template' => 'commerce-checkout-form-checkout',
),
);
}
2. В корне модуля/темы создаём файл commerce-checkout-form-checkout.tpl.php
:
<div class="row">
<div class="col">
<?php echo render($form['field_name1']); ?>
<?php echo render($form['field_name2']); ?>
</div>
<div class="col">
<?php echo render($form['field_name3']); ?>
</div>
</div>
<?php echo drupal_render_children($form); ?>
3. Очищаем кэш.
Написанное актуально для
Drupal 7/8/9
Комментарии
Может, мой вопрос покажется глупым, но где при этом должен находится файл commerce-checkout-form-checkout.tpl.php?
там же где файл с реализацией hook_theme
Не знаю что за ребус, но кнопку Юберкарта "Добавить в корзину" я так и не смог переоределить ни этим способом, ни
так
ни даже скопировав из юберкарта код функции в собственный модуль.
Единственное что дает эффект - это править код в самом модуле.
Добавить комментарий