แทนที่เทมเพลตฟอร์มล็อกอินของผู้ใช้
ฉันกำลังพยายามปรับแต่งหน้าเข้าสู่ระบบของผู้ใช้ในธีมที่กำหนดเองโดยใช้ไฟล์เทมเพลตpage--user--login.html.twig
แต่มีปัญหาในการเข้าถึงองค์ประกอบฟอร์มอื่น ทุกส่วนของแบบฟอร์มมีอยู่page.content
แต่ฉันต้องการแก้ไขเนื้อหาที่ถูกส่งออก
ยกตัวอย่างง่ายๆธีมพื้นฐานมีชื่อผู้ใช้และรหัสผ่านซ้อนกันในแนวตั้งซึ่งฉันต้องการปรับให้ใช้ bootstrap เพื่อให้ซ้อนกันในแนวนอนบนหน้าจอขนาดใหญ่และในแนวตั้งบนมือถือ
ใน Drupal 7 เรามีform
องค์ประกอบในไฟล์เทมเพลตที่อนุญาตให้ฉันแสดงองค์ประกอบฟอร์มบางอย่างแยกกันเช่น:
<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 หรือไม่?
ฉันพยายามสร้างไฟล์เทมเพลตสำหรับฟอร์ม ( form--user-login.html.twig
และform--user-login-form.html.twig
) เพื่อดูว่าฉันสามารถแก้ไขเทมเพลตฟอร์แทนเพจที่มีอยู่ในฟอร์มได้หรือไม่ แต่ไม่มีโชคกับสิ่งนั้น
ฉันต้องการแทนที่ธีมการเข้าสู่ระบบปัจจุบันแทนที่จะสร้างหน้าและแบบฟอร์มใหม่ทั้งหมดและต้องเพิ่มการกำหนดค่าที่จำเป็นทั้งหมดเพื่อให้ผู้ใช้เข้าสู่หน้าเข้าสู่ระบบที่ถูกต้อง แต่ยังไม่พบวิธีการใด ๆ ขอบคุณ ล่วงหน้า.
คำตอบ
ถ้าคุณ overrided อย่างถูกต้องelement
จะมีรายการทั้งหมดใน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>
หากเทมเพลตไม่ถูกต้องคุณควรลองเพิ่ม
function Yourtheme_theme_suggestions_alter(array &$suggestions, array $variables, $hook) { if ($hook == 'form' & !empty($variables['element']['#id'])) { $suggestions[] = 'form__' . str_replace('-', '_', $variables['element']['#id']);
}
}
จากนั้นสร้างform--user-login-form.html.twig
ในธีมของคุณ
อย่าลืมล้างแคช