都道府県や国名など、必須フィールドを非表示にして欲しい、という要望がありました。これらのフィールドには、外部プログラムを使ったユーザー登録時に値は設定されていますが、それ以降は学生に見せずに編集もさせたくない、とのこと。
user/editlib.php を以下のように修正。(例として都道府県と国名)
// 全管理者の情報を取得 $admins = get_admins(); if (!empty($admins[$USER->id])) { $mform->addElement('text', 'city', get_string('city'), 'maxlength="20" size="21"'); $mform->setType('city', PARAM_MULTILANG); $mform->addRule('city', $strrequired, 'required', null, 'client'); } else { $mform->addElement('hidden', 'city', $CFG->city); $mform->setType('city', PARAM_MULTILANG); } if (!empty($admins[$USER->id])) { $choices = get_list_of_countries(); $choices= array(''=>get_string('selectacountry').'...') + $choices; $mform->addElement('select', 'country', get_string('selectacountry'), $choices); $mform->addRule('country', $strrequired, 'required', null, 'client'); if (!empty($CFG->country)) { $mform->setDefault('country', $CFG->country); } } else { $mform->addElement('hidden', 'country', $CFG->country); $mform->setType('country', PARAM_MULTILANG); }
管理者ロールでログインした場合のみ修正可能としてみました。
あとは 【サイト管理】 → 【ユーザー】 → 【パーミッション】 → 【ユーザーポリシー】 → 【ユーザーフィールドを隠す】 の設定をしてやればだいたいOK。
ついでに自己紹介を任意(必須でない)にしてみました。 user/edit_form.php を 1行コメントアウトするだけ。
/// extra settigs //$mform->addRule('description', $strrequired, 'required', null, 'client');
自己紹介はコースに登録されると必須になる…んだったかな。ちょっとうろ覚え…。
コメント
E-問答 Moodle プロファイル情報変更
Moodleのプロファイル情報の変更を行ったので記載する。 (「フロントページ・カテゴリ・コースの初期設定について」の記載は後日とする。) Moodleのデフォルトプロファイル項目 Moodle…