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