E-問答 Moodle プロファイル情報変更

Moodleのプロファイル情報の変更を行ったので記載する。
(「フロントページ・カテゴリ・コースの初期設定について」の記載は後日とする。)

Moodleのデフォルトプロファイル項目

Moodleは、海外の大学の講義用に開発されている側面があるので、
氏名(実名)・国・県の登録が必須となっていて、
日本のネットユーザには少々抵抗があるように思う。

プロファイルの変更内容

下記のように登録時の表記を変更する。

  • ユーザ名→システムID (必須のまま)
  • 名   →ユーザ名  (必須のまま)
  • 姓   →本名    (任意に変更)
  • 都道府県→(廃止)  (任意・登録時は非表示に変更)
  • 国   →(廃止)  (任意・登録時は非表示に変更)

また、プロファイル閲覧時に氏名が表示されてたのをユーザ名の表示にする。

表示項目の変更(moodle.phpの編集)

Moodleは言語データを変数としてランゲージパックの中で設定している。
データディレクトリの中の/lang/moodle.phpを編集すればよい。
(変数名と変数の整合性が取れなくなる項目が生じるが、影響はない。)

  • 「ユーザ名」を「システムID」に一括置換(32箇所該当した)
  • $string['firstname']」,$string['missingfirstname']の中の

「名」を「ユーザ名」に(手作業で)置換。
 (※一括置換すると別箇所も置換されてしまう)

  • 「姓」を「本名」に一括置換。
  • $string['fullnamedisplay']を{$a->firstname}'に変更。
  • $string['fullnameuser']をユーザ名に変更

必須・任意の変更

該当箇所のvalidateを設定しているaddRuleを無効化する。
(執筆時点の最新版のmoodle 2.0.3+の行数を記載)

  • user/editlib.php
    • 104行

// $mform->addRule('lastname', $strrequired, 'required', null, 'client');

    • 196行

// $mform->addRule('city', $strrequired, 'required', null, 'client');

    • 204行

// $mform->addRule('country', $strrequired, 'required', null, 'client');

  • login/signip_form.php
    • 77行

// $mform->addRule('lastname', get_string('missinglastname'), 'required', null, 'server');

    • 81行

// $mform->addRule('city', get_string('missingcity'), 'required', null, 'server');

    • 90行

// $mform->addRule('country', get_string('missingcountry'), 'required', null, 'server');

非表示項目の変更

該当箇所の要素を設定しているsetElementをhiddenとする。

  • login/signup_form.php
    • 79行

// $mform->addElement('text', 'city', get_string('city'), 'maxlength="120" size="20"');
$mform->addElement('hidden', 'city', get_string('city'), 'maxlength="120" size="20"');

    • 89行

// $mform->addElement('select', 'country', get_string('country'), $country);
$mform->addElement('hidden', 'country', get_string('country'), $country);

変更内容の反映

該当ファイルをバックアップ取得後に上書きし、
所有権が問題ないことを確認する。
サイト管理>開発>すべてのキャッシュを削除するより、
キャッシュを削除した上で、変更内容を確認する。