データベースモジュールのフィールドに、ログインしているユーザの「名」「姓」を自動的に割り当たいと考えております。
1.生徒ユーザがログインしてmoodleを利用しているので、生徒がわざわざ生徒の名姓をデータベースモジュールのエントリ追加画面で入力しなくても、自動的にそのエントリに生徒の「名」「姓」が保存されるフィールドがほしいです。このフィールドの作り方をどなたか教えていただけないでしょうか?
2.データベースモジュールに生徒がログインしますと、以下のタブが表示されます。
一覧表示
個別表示
検索
エントリを追加する
の4つです。これを「個別表示」と「エントリを追加する」だけにすることは可能でしょうか?
もしわかる方いらっしゃいましたら、教えていただけると助かります。
> 1.生徒ユーザがログインしてmoodleを利用しているので、生徒がわざわざ生徒の名姓をデータベースモジュールのエントリ追加画面で入力しなくても、 自動的にそのエントリに生徒の「名」「姓」が保存されるフィールドがほしいです。このフィールドの作り方をどなたか教えていただけないでしょうか?
> これを「個別表示」と「エントリを追加する」だけにすることは可能でしょうか?
可能ですが、プログラムを修正する必要があります。
「学生のロールの場合」 (if ($studentroles = get_roles_with_capability('moodle/legacy:student', CAP_ALLOW)) という条件を使って、 /mod/data/tabs.php を適切に修正すれば大丈夫だと思います。
- データベースの編集画面 > テンプレート > 「個別表示用テンプレート」または「一覧表示用テンプレート」にアクセスしてください。
- 「個別表示用テンプレート」「一覧表示用テンプレート」のユーザ氏名を表示したい場所に ##user## を設定してください。
> これを「個別表示」と「エントリを追加する」だけにすることは可能でしょうか?
可能ですが、プログラムを修正する必要があります。
「学生のロールの場合」 (if ($studentroles = get_roles_with_capability('moodle/legacy:student', CAP_ALLOW)) という条件を使って、 /mod/data/tabs.php を適切に修正すれば大丈夫だと思います。
> このようなことは可能でしょうか?
可能ですが、プログラムの修正が必要です。
下記の修正をお試しください。
変更対象プログラム: mod/data/export.php
変更箇所: 75行目
[ 変更前 ]
$exportdata = array();
// populate the header in first row of export
$datarecords = get_records('data_records', 'dataid', $data->id);
ksort($datarecords);
$line = 1;
$line--;
[ 変更後 ]
$exportdata = array();
$exportdata[0][] = 'user'; ← 追加
// populate the header in first row of export
$datarecords = get_records('data_records', 'dataid', $data->id);
ksort($datarecords);
$line = 1;
$line--;
可能ですが、プログラムの修正が必要です。
下記の修正をお試しください。
変更対象プログラム: mod/data/export.php
変更箇所: 75行目
[ 変更前 ]
$exportdata = array();
// populate the header in first row of export
foreach($fields as $key => $field) {
if(empty($formdata['field_'.$field->field->id])) {
// ignore values we aren't exporting
unset($fields[$key]);
} else {
$exportdata[0][] = $field->field->name;
}
}
$datarecords = get_records('data_records', 'dataid', $data->id);
ksort($datarecords);
$line = 1;
foreach($datarecords as $record) {
// get content indexed by fieldid
if( $content = get_records('data_content', 'recordid', $record->id, 'fieldid', 'fieldid, content, content1, content2, content3, content4') ) {
foreach($fields as $field) {
$contents = '';
if(isset($content[$field->field->id])) {
$contents = $field->export_text_value($content[$field->field->id]);
}
$exportdata[$line][] = $contents;
}
}
$line++;
}$line--;
[ 変更後 ]
$exportdata = array();
$exportdata[0][] = 'user'; ← 追加
// populate the header in first row of export
foreach($fields as $key => $field) {
if(empty($formdata['field_'.$field->field->id])) {
// ignore values we aren't exporting
unset($fields[$key]);
} else {
$exportdata[0][] = $field->field->name;
}
}
$datarecords = get_records('data_records', 'dataid', $data->id);
ksort($datarecords);
$line = 1;
foreach($datarecords as $record) {
// get content indexed by fieldid
if( $content = get_records('data_content', 'recordid', $record->id, 'fieldid', 'fieldid, content, content1, content2, content3, content4') ) {
$exportdata[$line][] = fullname($USER); ← 追加
foreach($fields as $field) {
foreach($fields as $field) {
$contents = '';
if(isset($content[$field->field->id])) {
$contents = $field->export_text_value($content[$field->field->id]);
}
$exportdata[$line][] = $contents;
}
}
$line++;
}$line--;
大変失礼致しました。
修正版を投稿させて頂きます。
青色の部分を追加してください。
変更対象プログラム: mod/data/export.php
変更箇所: 75行目
[ 変更前 ]
$exportdata = array();
// populate the header in first row of export
$datarecords = get_records('data_records', 'dataid', $data->id);
ksort($datarecords);
$line = 1;
$line--;
[ 変更後 ]
$exportdata = array();
$exportdata[0][] = 'lastname';
$exportdata[0][] = 'firstname';
// populate the header in first row of export
$datarecords = get_records('data_records', 'dataid', $data->id);
ksort($datarecords);
$line = 1;
foreach($fields as $field) {
$line--;
修正版を投稿させて頂きます。
青色の部分を追加してください。
変更対象プログラム: mod/data/export.php
変更箇所: 75行目
[ 変更前 ]
$exportdata = array();
// populate the header in first row of export
foreach($fields as $key => $field) {
if(empty($formdata['field_'.$field->field->id])) {
// ignore values we aren't exporting
unset($fields[$key]);
} else {
$exportdata[0][] = $field->field->name;
}
}
$datarecords = get_records('data_records', 'dataid', $data->id);
ksort($datarecords);
$line = 1;
foreach($datarecords as $record) {
// get content indexed by fieldid
if( $content = get_records('data_content', 'recordid', $record->id, 'fieldid', 'fieldid, content, content1, content2, content3, content4') ) {
foreach($fields as $field) {
$contents = '';
if(isset($content[$field->field->id])) {
$contents = $field->export_text_value($content[$field->field->id]);
}
$exportdata[$line][] = $contents;
}
}
$line++;
}$line--;
[ 変更後 ]
$exportdata = array();
$exportdata[0][] = 'lastname';
$exportdata[0][] = 'firstname';
// populate the header in first row of export
foreach($fields as $key => $field) {
if(empty($formdata['field_'.$field->field->id])) {
// ignore values we aren't exporting
unset($fields[$key]);
} else {
$exportdata[0][] = $field->field->name;
}
}
$datarecords = get_records('data_records', 'dataid', $data->id);
ksort($datarecords);
$line = 1;
foreach($datarecords as $record) {
// get content indexed by fieldid
if( $content = get_records('data_content', 'recordid', $record->id, 'fieldid', 'fieldid, content, content1, content2, content3, content4') ) {
if ($data_record = get_record('data_records','id',$record->id)) {
$user = get_record('user', 'id', $data_record->userid);
$exportdata[$line][] =$user->lastname;
$exportdata[$line][] =$user->firstname;
} else {$exportdata[$line][] =$user->firstname;
$exportdata[$line][] =$USER->lastname;
$exportdata[$line][] =$USER->firstname;
}$exportdata[$line][] =$USER->firstname;
foreach($fields as $field) {
$contents = '';
if(isset($content[$field->field->id])) {
$contents = $field->export_text_value($content[$field->field->id]);
}
$exportdata[$line][] = $contents;
}
}
$line++;
}$line--;