Kullanıcı giriş formu şablonunu geçersiz kıl
Şablon dosyasını kullanarak özel temamdaki kullanıcı oturum açma sayfamı özelleştirmeye çalışıyorum page--user--login.html.twig
, ancak farklı form öğelerine erişmede sorun yaşıyorum. Formun tüm yönleri içinde bulunur page.content
, ancak çıktısı alınan içeriği düzenlemek istiyorum.
Basit bir örnek vermek gerekirse, temel temanın Kullanıcı Adı ve Parolası dikey olarak yığılmış, burada bunu önyükleme kullanmak için ayarlamak istiyorum, böylece bunlar büyük ekranda yatay olarak ve mobil cihazda dikey olarak istiflenecek.
Drupal 7'de, form
şablon dosyasında belirli form öğelerini ayrı ayrı oluşturmama izin veren bir öğe vardı , örneğin:
<div class="col-sm-12 col-lg-6">
<?php print drupal_render($form['name']); ?> </div> <div class="col-sm-12 col-lg-6"> <?php print drupal_render($form['pass']); ?>
</div>
Drupal 8 için bir eşdeğeri var mı?
Formun bulunduğu sayfa yerine form şablonunu değiştirip değiştiremeyeceğimi görmek için form ( form--user-login.html.twig
ve form--user-login-form.html.twig
) için bir şablon dosyası oluşturmaya çalıştım, ancak bu konuda hiç şansım olmadı.
Tamamen yeni bir sayfa ve form oluşturmak yerine mevcut giriş temasını geçersiz kılmayı tercih ederim ve bir kullanıcının doğru giriş sayfasına gelebilmesi için gerekli tüm yapılandırmaları eklemem gerekir, ancak henüz bunu yapmanın bir yolunu bulamamıştır. önceden.
Yanıtlar
Doğru overrided eğer element
tüm öğeleri içerecek form--user-login.html.twig
,
<div class="login-form login-form__wrapper">
<form{{ attributes }}>
<div class="login-form__top">
<h3>hello world</h3>
<div id="error_messages"></div>
{{ element.messages }}
{{ element.name }} {# username element #}
{{ element.pass }} {# password element #}
<div class="login-form__help_actions">
<input id="show_password" class="show_password" type="checkbox" />
<label class="password-toggle" for="show_password">Show password</label>
<a href="/user/password" class="forgot-password">Forgot Password?</a>
</div>
{{ element.form_build_id }} {# required #}
{{ element.form_id }} {# required #}
<div class="login-form__submit">
{{ element.actions.submit }}
</div>
</div>
</form>
</div>
şablon geçerli değilse, eklemeyi denemelisiniz.
function Yourtheme_theme_suggestions_alter(array &$suggestions, array $variables, $hook) { if ($hook == 'form' & !empty($variables['element']['#id'])) { $suggestions[] = 'form__' . str_replace('-', '_', $variables['element']['#id']);
}
}
daha sonra temanızda oluşturun form--user-login-form.html.twig
.
önbelleği temizlemeyi unutmayın.