set_url('/blocks/autoattend/class_settings.php', $urlparams);
$wwwBlock = $CFG->wwwroot.'/blocks/autoattend';
$wwwMyURL = $wwwBlock.'/class_settings.php';
$course = $DB->get_record('course', array('id'=>$courseid));
if (!$course) {
print_error('courseidwrong', 'block_autoattend');
}
require_login($course->id);
$context = jbxl_get_course_context($course->id);
$isteacher = jbxl_is_teacher($USER->id, $context);
if (!$isteacher) {
print_error('notaccessnoteacher', 'block_autoattend');
}
$user = $DB->get_record('user', array('id'=>$USER->id));
if (!$user) {
print_error('nosuchuser', 'block_autoattend');
}
//////////////////////////////////////////////////////////////////////////////////////////
//
function class_settings_show_table($classes)
{
$table = new html_table();
//
$table->head [] = '#';
$table->align[] = 'center';
$table->size [] = '20px';
$table->wrap [] = 'nowrap';
$table->head [] = get_string('classname','block_autoattend');
$table->align[] = 'center';
$table->size [] = '60px';
$table->wrap [] = 'nowrap';
$table->head [] = get_string('delete');
$table->align[] = 'center';
$table->size [] = '60px';
$table->wrap [] = 'nowrap';
//
$i = 0;
foreach($classes as $class) {
$classid_input = '';
$table->data[$i][] = $i + 1;
$table->data[$i][] = '';
$table->data[$i][] = ''.$classid_input;
$i++;
}
echo '
';
echo html_writer::table($table);
echo '
';
return $i;
}
//////////////////////////////////////////////////////////////////////////////////////////
// Print header
$title = $course->shortname.': '.get_string('autoattend','block_autoattend');
if ($course->category) {
$title.= ' '.get_string('class_settings','block_autoattend');
}
$PAGE->set_title($title);
$PAGE->set_heading($course->fullname);
$PAGE->set_cacheable(true);
$PAGE->set_button(' ');
//$PAGE->set_headingmenu();
echo $OUTPUT->header();
$currenttab = 'class_settings';
include('tabs.php');
if($isteacher) {
//
if (isset($formdata->addclass)) {
$classname = required_param('classname', PARAM_TEXT);
if ($classname) {
autoattend_insert_session_class($course->id, $classname);
}
}
//
// by Emilio Arjona
else if (isset($formdata->groupingtoclass)) {
$groupingid = required_param('groupingid', PARAM_TEXT);
if(isset($groupingid) and $groupingid!=''){
$groups = groups_get_all_groups($course->id, 0, $groupingid);
$existingclasses = autoattend_get_session_classes($courseid);
if (isset($groups)){
foreach ($groups as $group){
$createclass = true;
// Check groups and class names.
if (!empty($existingclasses)){
foreach ($existingclasses as $existingclass){
if ($group->name==autoattend_get_session_classname($existingclass->id)){
// Class exists
$newclassid= $existingclass->id;
$createclass = false;
}
}
}
// Create class
if ($createclass){
$newclassid = autoattend_insert_session_class($course->id, $group->name);
}
// $newclassid, id of the class to join users (created or existing)
// Join group members to class
$students = groups_get_members ($group->id);
foreach ($students as $student){
$userclass = autoattend_get_user_class($student->id, $course->id, true);
if ($userclass->classid!=$newclassid) {
$userclass->classid = $newclassid;
if ($userclass->id!=0) {
$DB->update_record('autoattend_classifies', $userclass);
}
else {
$userclass->id = $DB->insert_record('autoattend_classifies', $userclass);
}
}
}
}
}
}
}
//
else if (isset($formdata->updateclass)) {
$exist_flag = false;
$classids = array();
$classnames = array();
$classdels = array();
//
if (!$confirm) {
$classids = required_param_array('classids', PARAM_INTEGER);
$classdels = optional_param_array('classdels', array(), PARAM_INTEGER);
if ($classdels) {
foreach ($classdels as $key=>$classdel) {
$sessions = $DB->get_records('autoattend_sessions', array('classid'=>$classids[$key]));
if ($sessions) {
foreach ($sessions as $session) {
$students = $DB->get_records('autoattend_students', array('attsid'=>$session->id));
if ($students) {
$exist_flag = true;
break;
}
}
if ($exist_flag) break;
}
}
}
if ($exist_flag) { // クラスの削除:既に出欠を取った講義が存在する.
$classnames = required_param_array('classnames', PARAM_TEXT);
include('html/class_delete.html');
echo $OUTPUT->footer($course);
exit();
}
}
if (!$exist_flag) {
if (empty($classids)) $classids = required_param_array('classids', PARAM_INTEGER);
if (empty($classnames)) $classnames = required_param_array('classnames', PARAM_TEXT);
if (empty($classdels)) $classdels = optional_param_array('classdels', array(), PARAM_INTEGER);
autoattend_update_session_classes($classids, $classnames, $classdels);
}
}
//
else if (isset($formdata->submit_delete) and $confirm) {
$classids = required_param_array('classids', PARAM_INTEGER);
$classnames = required_param_array('classnames', PARAM_TEXT);
$classdels = optional_param_array('classdels', array(), PARAM_INTEGER);
autoattend_update_session_classes($classids, $classnames, $classdels);
}
//
$classes = autoattend_get_session_classes($course->id);
include('html/class_settings.html');
}
echo $OUTPUT->footer($course);