いつもお世話になっております。村上です。
現在、moodle3.1.3を用いてサーバを構築しております。
小テストとフィードバックを中心に利用していますが
小テストおよびフィードバックの集計の画面、およびCSVにはlastnameと
firstnameは表示されますが、usernameを表示させることは可能でしょうか?
いつも質問ばかりで申し訳ありませんが、宜しくお願い致します。
下記プログラム修正ではいかがでしょうか。
修正対象プログラム:
mod/quiz/report/attemptsreport.php
修正箇所:
164行目
[ 修正前 ]
if (!$table->is_downloading()) {
$columns[] = 'fullname';
$headers[] = get_string('name');
} else {
$columns[] = 'lastname';
$headers[] = get_string('lastname');
$columns[] = 'firstname';
$headers[] = get_string('firstname');
}
// When downloading, some extra fields are always displayed (because
// there's no space constraint) so do not include in extra-field list.
[ 修正後 ]
if (!$table->is_downloading()) {
$columns[] = 'fullname';
$headers[] = get_string('name');
} else {
$columns[] = 'lastname';
$headers[] = get_string('lastname');
$columns[] = 'firstname';
$headers[] = get_string('firstname');
}
$columns[] = 'username';
$headers[] = get_string('username');
// When downloading, some extra fields are always displayed (because
// there's no space constraint) so do not include in extra-field list.
--------------------------
修正対象プログラム:
mod/quiz/report/attemptsreport_table.php
修正箇所:
405行目
[ 修正前 ]
$fields .= '
quiza.uniqueid AS usageid,
quiza.id AS attempt,
u.id AS userid,
u.idnumber, ' . $allnames . ',
u.picture,
u.imagealt,
u.institution,
u.department,
u.email' . $extrafields . ',
quiza.state,
quiza.sumgrades,
quiza.timefinish,
quiza.timestart,
CASE WHEN quiza.timefinish = 0 THEN null
[ 修正後 ]
$fields .= '
quiza.uniqueid AS usageid,
quiza.id AS attempt,
u.id AS userid,
u.idnumber, ' . $allnames . ',
u.username,
u.picture,
u.imagealt,
u.institution,
u.department,
u.email' . $extrafields . ',
quiza.state,
quiza.sumgrades,
quiza.timefinish,
quiza.timestart,
CASE WHEN quiza.timefinish = 0 THEN null
--------------------------
修正対象プログラム:
mod/feedback/classes/responses_table.php
修正箇所:
108行目
[ 修正前 ]
/**
* Initialises table
* @param int $group retrieve only users from this group (optional)
*/
protected function init($group = 0) {
$tablecolumns = array('userpic', 'fullname');
$tableheaders = array(get_string('userpic'), get_string('fullnameuser'));
$extrafields = get_extra_user_fields($this->get_context());
$ufields = user_picture::fields('u', $extrafields, $this->useridfield);
$fields = 'c.id, c.timemodified as completed_timemodified, c.courseid, '.$ufields;
$from = '{feedback_completed} c '
. 'JOIN {user} u ON u.id = c.userid AND u.deleted = :notdeleted';
$where = 'c.anonymous_response = :anon
AND c.feedback = :instance';
[ 修正後 ]
/**
* Initialises table
* @param int $group retrieve only users from this group (optional)
*/
protected function init($group = 0) {
// $tablecolumns = array('userpic', 'fullname');
// $tableheaders = array(get_string('userpic'), get_string('fullnameuser'));
$tablecolumns = array('userpic', 'fullname', 'username');
$tableheaders = array(get_string('userpic'), get_string('fullnameuser'), get_string('username'));
$extrafields = get_extra_user_fields($this->get_context());
$ufields = user_picture::fields('u', $extrafields, $this->useridfield);
// $fields = 'c.id, c.timemodified as completed_timemodified, c.courseid, '.$ufields;
$fields = 'c.id, c.timemodified as completed_timemodified, c.courseid, u.username, '.$ufields;
$from = '{feedback_completed} c '
. 'JOIN {user} u ON u.id = c.userid AND u.deleted = :notdeleted';
$where = 'c.anonymous_response = :anon
AND c.feedback = :instance';