В файле olivero.theme в olivero_form_alter добавляю:
case 'user_register_form':
// Делаем поле email необязательным.
if (isset($form['account']['mail'])) {
$form['account']['mail']['#required'] = FALSE;
}
break;
Но что-то неправильно. Поле все равно требует заполнения, хотя голубая звездочка исчезла.
Подскажите какой у меня косяк
Комментарии
https://drupal.ru/node/143348
Не вижу там чего-то нужного мне
Есть сомнение, что это надо делать в ТЕМЕ, а не в хуке формы. В теме форма уже сформирована, мы лишь внешний вид там меняем.
Что то такое должно быть по идее.
<?phpfunction mymodule_form_user_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'user_register_form') {
$form['account']['mail']['#required'] = FALSE;
}
}?>
Сделал кастомный модуль, но все равно требует заполнения поля Email.
<?php
function EmailRemove_form_user_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'user_register_form') {
$form['account']['mail']['#required'] = FALSE;
}
}
Потому что просто так костылить формы модулей ядра не получится.
Например, помимо атрибутов а-ля required полей формы - есть PHP-методы валидации форм (вызываются перед сабмит-методами класса), где так же производится проверка полей.
PS. https://www.drupal.org/project/optional_email
Модуль, судя по всему, в dev'е, но если вдруг не заработает - хотя бы можете посмотреть код, как это потенциально решается.
А вы вообще проверяли, в IF то заходит?
Спасибо, но не мой уровень, чтобы разобраться
ну если вы это для себя делаете, для души - то надо поднимать уровень