【问题标题】:How To Add A Custom Field To Moodle Language Email String (newusernewpasswordtext)如何将自定义字段添加到 Moodle 语言电子邮件字符串 (newusernewpasswordtext)
【发布时间】:2020-01-14 10:25:03
【问题描述】:

我在 Moodle 安装中创建了一些自定义字段(标题):我需要将其包含在 Moodle 语言字符串的自定义(newusernewpasswordtext)中。

默认语言字符串为:

您好,{$a->firstname},已在“{$a->sitename}”为您创建了一个新帐户,您已经...

我需要更新它以允许使用自定义字段、“标题”和姓氏的默认字段进行更新。

我添加了以下字符串:

您好 {$a->profile_field_title} {$a->firstname} {$a->lastname},已在“{$a->sitename}”为您创建了一个新帐户,您已经... .

输出:

您好 {$a->profile_field_title} John Doe {$a->lastname},已在“www.mysite.com”为您创建了一个新帐户,您已经...

如何在字符串中插入自定义字段?

【问题讨论】:

    标签: php moodle


    【解决方案1】:

    如果不编辑 Moodle 核心代码,您将无法做到这一点。使用setnew_password_and_mail 函数在lib/moodlelib.php 文件中生成并发送newusernewpassword 电子邮件。您需要更改传递到该字符串的对象以包含您的个人资料字段,然后才能编辑语言包:

    $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->lastname} 也出现在您的输出中的原因是因为传递给生成电子邮件的函数的对象没有“姓氏”——包括姓氏通过 Moodle 的全名功能在“名字”中。

    【讨论】:

      【解决方案2】:

      通过主页管理>用户>权限>用户策略,您可以更改Moodle的全名功能。将“全名格式”和“替代全名格式”都从默认语言更改为所需的格式(名字、姓氏等)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-08
        • 2019-04-25
        • 2021-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多