Как добавить настраиваемое поле в строку адреса электронной почты на языке Moodle (newusernewpasswordtext) - PullRequest
0 голосов
/ 14 января 2020

Я создал некоторое настраиваемое поле (заголовок) в моей установке Moodle: мне нужно включить его в настройку языковой строки Moodle (newusernewpasswordtext).

Строка языка по умолчанию:

Здравствуйте, {$ a-> firstname}. Для вас была создана новая учетная запись в {$ a-> sitename}, и вы уже ...

Мне нужно обновите его, чтобы разрешить обновление с помощью настраиваемого поля, заголовка и поля по умолчанию для фамилии.

Я добавил следующую строку:

Hi {$ a-> profile_field_title} {$ a-> firstname} {$ a-> lastname}, новая учетная запись был создан для вас в '{$ a-> sitename}', и вы были ...

Вывод:

Hi {$ a-> profile_field_title} Джон Доу {$ a-> фамилия}, для вас была создана новая учетная запись в 'www.mysite.com', и вы были ...

Как вставить пользовательское поле в строку?

1 Ответ

0 голосов
/ 16 января 2020

Вы не сможете сделать это без редактирования кода ядра Moodle. Письмо newusernewpassword генерируется и отправляется в файле lib / moodlelib. php с функцией setnew_password_and_mail. Вам нужно изменить объект, который передается в эту строку, чтобы включить поле вашего профиля, прежде чем вы сможете редактировать языковой пакет:

$yourfieldid = $DB->get_field('user_info_field', 'id', array('name'=>'profile_field_title'));

$a = new stdClass();
$a->firstname = fullname($user, true);
...
$a->your_profile_field = $DB->get_field('user_info_data', 'data', 
                              array('userid'=>$user->id, 'fieldid'=>$yourfieldid));

Затем вы измените свою строку на:

Здравствуйте, {$ a-> your_profile_field} {$ a-> firstname}. Для вас создана новая учетная запись по адресу {$ a-> sitename}, и вы уже ...

Также обратите внимание: причина того, что {$ a-> фамилия} также отображается в ваших выходных данных, заключается в том, что объект, который передается в функцию, которая создает электронную почту, не имеет «фамилии» - фамилия включена в «имя» через функцию полного имени Moodle.

...