Создание макетов(psd) под drupal 8

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

Комментарии

Аватар пользователя gun_dose gun_dose 28 мая 2018 в 9:55

Специфичных нюансов не очень много. Но я чаще всего сталкиваюсь с неправильно нарисованной корзиной - форма корзины - это кнопка, виджет количества и выбор вариации. Естественно, всё это должно быть внутри одного тега form, но я часто вижу в макетах, что стоит виджет количества, потом какая-то дополнительная инфа, потом кнопка, а виджет выбора вообще в соседней обёртке находится. В результате в процессе вёрстки можно сломать мозг.

Аватар пользователя bumble bumble 28 мая 2018 в 14:24

gun_dose wrote:

.. должно быть внутри одного тега form, но я часто вижу в макетах, что стоит виджет количества, потом какая-то дополнительная инфа, потом кнопка, а виджет выбора вообще в соседней обёртке находится

Атрибут form - решает.

Аватар пользователя bumble bumble 28 мая 2018 в 15:35
1

Что-то вроде:

<?php
$form
['#id'] = Html::getUniqueId(preg_replace('/_/''-'$this->getFormId()));
 
// Some form staff...
 
$form['actions'] = [
     
'#type' => 'actions',
];
 
$form['actions']['submit'] = [
    
'#type' => 'submit',
    
'#value' => $this->t('Sign Up'),
    
'#attributes' => [
        
'form' => $form['#id'],
    ],
];
?>

И потом в шаблоне:

<?php
<div class="base-form">
    {{ 
form|without('actions') }}
</
div>

 <

div class="form-actions">
    {{ 
form.actions }}
</
div>
?>
Аватар пользователя bumble bumble 28 мая 2018 в 15:40

UPD - На выходе, получится прибл. следующее:

<div class="base-form">
    <form id="unique-form-id-by-form-name">
        <!-- Main form items -->
    </form>
</div>
 
<div class="form-actions">
    <input form="unique-form-id-by-form-name" type="submit" value="Sign Up" />
</div>

И по сабмиту - будет отправлена "нужная" форма.

Аватар пользователя gun_dose gun_dose 28 мая 2018 в 15:53

Прикольно. А как это распихать по разным шаблонам? Вот есть commerce-product.html.twig, который просто выводит поля. И нужно в его разных местах вывести разные куски форм.

Аватар пользователя bumble bumble 28 мая 2018 в 16:01

По разным шаблонам - наверно передавая разные куски формы в эти шаблоны, где каждому элементу вне формы будет присвоен данный атрибут (form).

Ну а по разным местам шаблона - так же как и с экшенами, только не их юзать, а какие-либо другие элементы (контейнеры, например), или прям элементы совать.