/** * Override this to define the second tab row should be defined in this function */ function define_second_row() { global $CFG; //if the tab plugin has been installed we will use the id of the class in the block_ilp_dash_tab table //as part fo the identifier for sub tabs. ALL TABS SHOULD FOLLOW THIS CONVENTION if (!empty($this->plugin_id)) { $this->secondrow = array(); //get all plugins that are of type misc and add them as a tab $plugins = $CFG->dirroot . '/blocks/ilp/classes/dashboard/mis'; if ($this->dbc->get_mis_plugins() !== false) { $mis_plugins = ilp_records_to_menu($this->dbc->get_mis_plugins(), 'id', 'name'); foreach ($mis_plugins as $plugin_file) { if (file_exists($plugins . '/' . $plugin_file . ".php")) { require_once $plugins . '/' . $plugin_file . ".php"; // instantiate the object $class = basename($plugin_file, ".php"); $pluginobj = new $class(); $method = array($pluginobj, 'plugin_type'); //check whether the config_settings method has been defined if (is_callable($method, true)) { if ($pluginobj->plugin_type() == 'attendance') { $mismisc = $this->dbc->get_mis_plugin_by_name($plugin_file); $status = get_config('block_ilp', $plugin_file . '_pluginstatus'); $status = !empty($status) ? $status : 0; if (!empty($mismisc) && $status == ILP_ENABLED) { //NOTE names of tabs can not be get_string as this causes a nesting error $this->secondrow[] = array('id' => $mismisc->id, 'link' => $this->linkurl, 'name' => $pluginobj->tab_name()); } } } } } } } }
//this section gets language strings for all tab plugins foreach ($tab_plugins as $plugin_file) { if (file_exists($tabs . '/' . $plugin_file . ".php")) { require_once $tabs . '/' . $plugin_file . ".php"; // instantiate the object $class = basename($plugin_file, ".php"); $tabobj = new $class(); $method = array($tabobj, 'language_strings'); //check whether the language string element has been defined if (is_callable($method, true)) { $tabobj->language_strings($string); } } } $plugins = $CFG->dirroot . '/blocks/ilp/classes/dashboard/mis'; if ($dbc->get_mis_plugins() !== false) { $mis_plugins = ilp_records_to_menu($dbc->get_mis_plugins(), 'id', 'name'); foreach ($mis_plugins as $plugin_file) { if (file_exists($plugins . '/' . $plugin_file . ".php")) { require_once $plugins . '/' . $plugin_file . ".php"; // instantiate the object $class = basename($plugin_file, ".php"); $pluginobj = new $class(); $method = array($pluginobj, 'language_strings'); //check whether the config_settings method has been defined if (is_callable($method, true)) { $pluginobj->language_strings($string); } } } }
/** * Returns the * @see ilp_dashboard_plugin::display() */ function display() { global $CFG, $OUTPUT, $PAGE, $PARSER, $USER; //set any variables needed by the display page //get students full name $student = $this->dbc->get_user_by_id($this->student_id); if (!empty($student)) { $studentname = fullname($student); $studentpicture = $OUTPUT->user_picture($student, array('size' => 100, 'return' => 'true')); $tutors = $this->dbc->get_student_tutors($this->student_id); $tutorslist = array(); if (!empty($tutors)) { foreach ($tutors as $t) { $tutorslist[] = fullname($t); } } else { $tutorslist = ""; } //get the students current status $studentstatus = $this->dbc->get_user_status($this->student_id); if (!empty($studentstatus)) { $statusitem = $this->dbc->get_status_item_by_id($studentstatus->parent_id); } $userstatuscolor = get_config('block_ilp', 'passcolour'); if (!empty($statusitem)) { if ($statusitem->passfail == 1) { $userstatuscolor = get_config('block_ilp', 'failcolour'); } //that's all very well, but if the ilp is up to date, status hex colour is defined, so actually we should always do this... //the above logic only allows 2 colours, so is inadequate to the task if (!empty($statusitem->hexcolour)) { $userstatuscolor = $statusitem->hexcolour; } //ah that's better } //TODO place percentage bar code into a class $percentagebars = array(); //set the display attendance flag to false $displayattendance = false; /**** * This code is in place as moodle insists on calling the settings functions on normal pages * */ //check if the set_context method exists if (!isset($PAGE->context) === false) { $course_id = is_object($PARSER) ? $PARSER->optional_param('course_id', SITEID, PARAM_INT) : SITEID; $user_id = is_object($PARSER) ? $PARSER->optional_param('user_id', $USER->id, PARAM_INT) : $USER->id; if ($course_id != SITEID && !empty($course_id)) { if (method_exists($PAGE, 'set_context')) { //check if the siteid has been set if not $PAGE->set_context(get_context_instance(CONTEXT_COURSE, $course_id)); } else { $PAGE->context = get_context_instance(CONTEXT_COURSE, $course_id); } } else { if (method_exists($PAGE, 'set_context')) { //check if the siteid has been set if not $PAGE->set_context(get_context_instance(CONTEXT_USER, $user_id)); } else { $PAGE->context = get_context_instance(CONTEXT_USER, $user_id); } } } $access_viewotherilp = has_capability('block/ilp:viewotherilp', $PAGE->context); //can the current user change the users status $can_editstatus = !empty($access_viewotherilp) && $USER->id != $student->id ? true : false; //include the attendance $misclassfile = $CFG->dirroot . '/blocks/ilp/classes/dashboard/mis/ilp_mis_attendance_percentbar_plugin.php'; if (file_exists($misclassfile)) { include_once $misclassfile; //create an instance of the MIS class $misclass = new ilp_mis_attendance_percentbar_plugin(); //set the data for the student in question $misclass->set_data($this->student_id); $punch_method1 = array($misclass, 'get_student_punctuality'); $attend_method1 = array($misclass, 'get_student_attendance'); //check whether the necessary functions have been defined if (is_callable($punch_method1, true)) { $misinfo = new stdClass(); if ($misclass->get_student_punctuality() != false) { //calculate the percentage $misinfo->percentage = $misclass->get_student_punctuality(); $misinfo->name = get_string('punctuality', 'block_ilp'); //pass the object to the percentage bars array $percentagebars[] = $misinfo; } } //check whether the necessary functions have been defined if (is_callable($attend_method1, true)) { $misinfo = new stdClass(); //if total_possible is empty then there will be nothing to report if ($misclass->get_student_attendance() != false) { //calculate the percentage $misinfo->percentage = $misclass->get_student_attendance(); $misinfo->name = get_string('attendance', 'block_ilp'); $percentagebars[] = $misinfo; } } } $misoverviewplugins = false; if ($this->dbc->get_mis_plugins() !== false) { $misoverviewplugins = array(); //get all plugins that mis plugins $plugins = $CFG->dirroot . '/blocks/ilp/classes/dashboard/mis'; $mis_plugins = ilp_records_to_menu($this->dbc->get_mis_plugins(), 'id', 'name'); foreach ($mis_plugins as $plugin_file) { if (file_exists($plugins . '/' . $plugin_file . ".php")) { require_once $plugins . '/' . $plugin_file . ".php"; // instantiate the object $class = basename($plugin_file, ".php"); $pluginobj = new $class(); $method = array($pluginobj, 'plugin_type'); if (is_callable($method, true)) { //we only want mis plugins that are of type overview if ($pluginobj->plugin_type() == 'overview') { //get the actual overview plugin $misplug = $this->dbc->get_mis_plugin_by_name($plugin_file); //if the admin of the moodle has done there job properly then only one overview mis plugin will be enabled //otherwise there may be more and they will all be displayed $status = get_config('block_ilp', $plugin_file . '_pluginstatus'); $status = !empty($status) ? $status : ILP_DISABLED; if (!empty($misplug) & $status == ILP_ENABLED) { $misoverviewplugins[] = $pluginobj; } } } } } } //if the user has the capability to view others ilp and this ilp is not there own //then they may change the students status otherwise they can only view //get all enabled reports in this ilp $reports = $this->dbc->get_reports(ILP_ENABLED); //we are going to output the add any reports that have state fields to the percentagebar array if (!empty($reports)) { foreach ($reports as $r) { if ($this->dbc->has_plugin_field($r->id, 'ilp_element_plugin_state')) { $reportinfo = new stdClass(); $reportinfo->total = $this->dbc->count_report_entries($r->id, $this->student_id); $reportinfo->actual = $this->dbc->count_report_entries_with_state($r->id, $this->student_id, ILP_STATE_PASS); //retrieve the number of entries that have the not counted state $reportinfo->notcounted = $this->dbc->count_report_entries_with_state($r->id, $this->student_id, ILP_STATE_NOTCOUNTED); //if total_possible is empty then there will be nothing to report if (!empty($reportinfo->total)) { $reportinfo->total = $reportinfo->total - $reportinfo->notcounted; //calculate the percentage $reportinfo->percentage = $reportinfo->actual / $reportinfo->total * 100; $reportinfo->name = $r->name; $percentagebars[] = $reportinfo; } } } } //instantiate the percentage bar class in case there are any percentage bars $pbar = new ilp_percentage_bar(); //we need to buffer output to prevent it being sent straight to screen ob_start(); require_once $CFG->dirroot . '/blocks/ilp/classes/dashboard/plugins/' . $this->directory . '/ilp_dashboard_student_info.html'; //$learnercontact->set_data(1); //echo $learnercontact->display(); //pass the output instead to the output var $pluginoutput = ob_get_contents(); ob_end_clean(); return $pluginoutput; } else { //the student was not found display and error print_error('studentnotfound', 'block_ilp'); } }
/** * Adds config settings for the plugin to the given mform * @see ilp_plugin::config_form() */ function config_form(&$mform) { global $CFG; $this->config_text_element($mform, 'mis_plugin_registerterm_table', get_string('ilp_mis_attendance_plugin_registerterm_table', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_tabledesc', 'block_ilp'), ''); $this->config_text_element($mform, 'mis_plugin_registerterm_studentidfield', get_string('ilp_mis_attendance_plugin_registerterm_studentidfield', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_studentidfielddesc', 'block_ilp'), 'studentID'); $this->config_text_element($mform, 'mis_plugin_registerterm_courseid', get_string('ilp_mis_attendance_plugin_registerterm_courseid', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_courseiddesc', 'block_ilp'), 'courseID'); $this->config_text_element($mform, 'mis_plugin_registerterm_registerid', get_string('ilp_mis_attendance_plugin_registerterm_registerid', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_registeriddesc', 'block_ilp'), 'registerID'); $this->config_text_element($mform, 'mis_plugin_registerterm_registerName', get_string('ilp_mis_attendance_plugin_registerterm_registername', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_registernamedesc', 'block_ilp'), 'registerName'); $this->config_text_element($mform, 'mis_plugin_registerterm_datetime', get_string('ilp_mis_attendance_plugin_registerterm_datetime', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_datetimedesc', 'block_ilp'), 'datetime'); $this->config_text_element($mform, 'mis_plugin_registerterm_starttime', get_string('ilp_mis_attendance_plugin_registerterm_starttime', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_starttimedesc', 'block_ilp'), 'starttime'); $this->config_text_element($mform, 'mis_plugin_registerterm_endtime', get_string('ilp_mis_attendance_plugin_registerterm_endtime', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_endtimedesc', 'block_ilp'), 'endtime'); $this->config_text_element($mform, 'mis_plugin_registerterm_coursename', get_string('ilp_mis_attendance_plugin_registerterm_coursename', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_coursenamedesc', 'block_ilp'), 'coursename'); $this->config_text_element($mform, 'mis_plugin_registerterm_mark', get_string('ilp_mis_attendance_plugin_registerterm_mark', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_markdesc', 'block_ilp'), 'mark'); $this->config_text_element($mform, 'mis_plugin_registerterm_present', get_string('ilp_mis_attendance_plugin_registerterm_present', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_presentdesc', 'block_ilp'), ''); $this->config_text_element($mform, 'mis_plugin_registerterm_presentcolour', get_string('ilp_mis_attendance_plugin_registerterm_presentcolour', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_presentcolourdesc', 'block_ilp'), 'green'); $this->config_text_element($mform, 'mis_plugin_registerterm_absent', get_string('ilp_mis_attendance_plugin_registerterm_absent', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_absentdesc', 'block_ilp'), ''); $this->config_text_element($mform, 'mis_plugin_registerterm_absentcolour', get_string('ilp_mis_attendance_plugin_registerterm_absentcolour', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_absentcolourdesc', 'block_ilp'), 'red'); $this->config_text_element($mform, 'mis_plugin_registerterm_late', get_string('ilp_mis_attendance_plugin_registerterm_late', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_latedesc', 'block_ilp'), ''); $this->config_text_element($mform, 'mis_plugin_registerterm_latecolour', get_string('ilp_mis_attendance_plugin_registerterm_latecolour', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_latecolourdesc', 'block_ilp'), 'amber'); $this->config_text_element($mform, 'mis_plugin_registerterm_noclass', get_string('ilp_mis_attendance_plugin_registerterm_noclass', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_noclassdesc', 'block_ilp'), ''); $options = array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6); $this->config_select_element($mform, 'mis_plugin_registerterm_terms', $options, get_string('ilp_mis_attendance_plugin_registerterm_terms', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termsdesc', 'block_ilp'), 3); $this->config_date_element($mform, 'mis_plugin_registerterm_term1start', get_string('ilp_mis_attendance_plugin_registerterm_termonestart', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termstartdesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term1end', get_string('ilp_mis_attendance_plugin_registerterm_termoneend', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termenddesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term2start', get_string('ilp_mis_attendance_plugin_registerterm_termtwostart', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termstartdesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term2end', get_string('ilp_mis_attendance_plugin_registerterm_termtwoend', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termenddesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term3start', get_string('ilp_mis_attendance_plugin_registerterm_termthreestart', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termstartdesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term3end', get_string('ilp_mis_attendance_plugin_registerterm_termthreeend', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termenddesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term4start', get_string('ilp_mis_attendance_plugin_registerterm_termfourstart', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termstartdesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term4end', get_string('ilp_mis_attendance_plugin_registerterm_termfourend', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termenddesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term5start', get_string('ilp_mis_attendance_plugin_registerterm_termfivestart', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termstartdesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term5end', get_string('ilp_mis_attendance_plugin_registerterm_termfiveend', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termenddesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term6start', get_string('ilp_mis_attendance_plugin_registerterm_termsixstart', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termstartdesc', 'block_ilp'), ''); $this->config_date_element($mform, 'mis_plugin_registerterm_term6end', get_string('ilp_mis_attendance_plugin_registerterm_termsixend', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termenddesc', 'block_ilp'), ''); $this->config_text_element($mform, 'mis_plugin_registerterm_term1header', get_string('ilp_mis_attendance_plugin_registerterm_term1header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termone', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_registerterm_term2header', get_string('ilp_mis_attendance_plugin_registerterm_term2header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termtwo', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_registerterm_term3header', get_string('ilp_mis_attendance_plugin_registerterm_term3header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termthree', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_registerterm_term4header', get_string('ilp_mis_attendance_plugin_registerterm_term4header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termfour', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_registerterm_term5header', get_string('ilp_mis_attendance_plugin_registerterm_term5header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termfive', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_registerterm_term6header', get_string('ilp_mis_attendance_plugin_registerterm_term6header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termsix', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_registerterm_overallheader', get_string('ilp_mis_attendance_plugin_registerterm_overallheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_overall', 'block_ilp')); //set the plugin that term will link to if any $options = array(0 => get_string('notapplicable', 'block_ilp')); //get all mis_plugins $mis_plugins = ilp_records_to_menu($this->dbc->get_mis_plugins(), 'id', 'name'); $plugins = $CFG->dirroot . '/blocks/ilp/classes/dashboard/mis'; foreach ($mis_plugins as $plugin_file) { if (file_exists($plugins . '/' . $plugin_file . ".php")) { require_once $plugins . '/' . $plugin_file . ".php"; // instantiate the object $class = basename($plugin_file, ".php"); $pluginobj = new $class(); $method = array($pluginobj, 'plugin_type'); //check whether the config_settings method has been defined if (is_callable($method, true)) { if ($pluginobj->plugin_type() == 'attendance') { $mismisc = $this->dbc->get_mis_plugin_by_name($plugin_file); $options[$mismisc->id] = $pluginobj->tab_name(); } } } } $this->config_select_element($mform, 'mis_plugin_registerterm_linkedplugin', $options, get_string('linkedplugin', 'block_ilp'), get_string('linkedplugindesc', 'block_ilp'), ''); $options = array(ILP_IDTYPE_STRING => get_string('stringid', 'block_ilp'), ILP_IDTYPE_INT => get_string('intid', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_registerterm_idtype', $options, get_string('idtype', 'block_ilp'), get_string('idtypedesc', 'block_ilp'), 1); $options = array(ILP_MIS_TABLE => get_string('table', 'block_ilp'), ILP_MIS_STOREDPROCEDURE => get_string('storedprocedure', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_registerterm_tabletype', $options, get_string('ilp_mis_attendance_plugin_registerterm_tabletype', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_tabletypedesc', 'block_ilp'), 1); $options = array(ILP_DISABLED => get_string('disabled', 'block_ilp'), ILP_ENABLED => get_string('enabled', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_registerterm_yearfilter', $options, get_string('ilp_mis_attendance_plugin_registerterm_yearfilter', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_yearfilterdesc', 'block_ilp'), 0); $this->config_text_element($mform, 'mis_plugin_registerterm_yearfilter_field', get_string('ilp_mis_attendance_plugin_registerterm_yearfilter_field', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_yearfilter_fielddesc', 'block_ilp'), 'year'); $this->config_text_element($mform, 'mis_plugin_registerterm_yearfilter_year', get_string('ilp_mis_attendance_plugin_registerterm_yearfilter_year', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_yearfilter_yeardesc', 'block_ilp'), date('Y')); $options = array(ILP_ENABLED => get_string('enabled', 'block_ilp'), ILP_DISABLED => get_string('disabled', 'block_ilp')); $this->config_select_element($mform, 'ilp_mis_attendance_plugin_registerterm_pluginstatus', $options, get_string('ilp_mis_attendance_plugin_registerterm_pluginstatus', 'block_ilp'), get_string('ilp_mis_attendance_plugin_registerterm_pluginstatusdesc', 'block_ilp'), 0); }
/** * Installs any new plugins */ public static function install_new_plugins() { global $CFG; // instantiate the assmgr db $dbc = new ilp_db(); // get all the currently installed evidence resource types $plugins = ilp_records_to_menu($dbc->get_form_element_plugins(), 'id', 'name'); $plugins_directory = $CFG->dirroot . '/blocks/ilp/classes/form_elements/plugins'; // get the folder contents of the resource plugin directory $files = scandir($plugins_directory); foreach ($files as $file) { // look for plugins if (preg_match('/^([a-z_]+)\\.php$/i', $file, $matches)) { if (!in_array($matches[1], $plugins) && substr($matches[1], -5) != 'mform') { // include the class require_once $plugins_directory . '/' . $file; // instantiate the object $class = basename($file, ".php"); $formelementobj = new $class(); // install the plugin $formelementobj->install(); // update the resource_types table $dbc->create_form_element_plugin($formelementobj->get_name(), $formelementobj->get_tablename()); } } } }
/** * Adds config settings for the plugin to the given mform * @see ilp_plugin::config_form() */ function config_form(&$mform) { global $CFG; $this->config_text_element($mform, 'mis_plugin_term_table', get_string('ilp_mis_attendance_plugin_term_table', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_tabledesc', 'block_ilp'), ''); $this->config_text_element($mform, 'mis_plugin_term_studentidfield', get_string('ilp_mis_attendance_plugin_term_studentidfield', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_studentidfielddesc', 'block_ilp'), 'studentID'); $this->config_text_element($mform, 'mis_plugin_term_term', get_string('ilp_mis_attendance_plugin_term_term', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termdesc', 'block_ilp'), 'term'); $this->config_text_element($mform, 'mis_plugin_term_markstotalfield', get_string('ilp_mis_attendance_plugin_term_markstotal', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_markstotaldesc', 'block_ilp'), 'marksTotal'); $this->config_text_element($mform, 'mis_plugin_term_markspresentfield', get_string('ilp_mis_attendance_plugin_term_markspresent', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_markspresentdesc', 'block_ilp'), 'marksPresent'); $this->config_text_element($mform, 'mis_plugin_term_marksabsentfield', get_string('ilp_mis_attendance_plugin_term_marksabsent', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_marksabsentdesc', 'block_ilp'), 'marksAbsent'); $this->config_text_element($mform, 'mis_plugin_term_marksauthabsentfield', get_string('ilp_mis_attendance_plugin_term_marksauthabsent', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_marksauthabsentdesc', 'block_ilp'), 'marksAuthAbsent'); $this->config_text_element($mform, 'mis_plugin_term_markslatefield', get_string('ilp_mis_attendance_plugin_term_markslate', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_markslatedesc', 'block_ilp'), 'marksLate'); $this->config_text_element($mform, 'mis_plugin_term_term1header', get_string('ilp_mis_attendance_plugin_term_term1header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termone', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_term_term2header', get_string('ilp_mis_attendance_plugin_term_term2header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termtwo', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_term_term3header', get_string('ilp_mis_attendance_plugin_term_term3header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termthree', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_term_term4header', get_string('ilp_mis_attendance_plugin_term_term4header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termfour', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_term_term5header', get_string('ilp_mis_attendance_plugin_term_term5header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termfive', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_term_term6header', get_string('ilp_mis_attendance_plugin_term_term6header', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termsix', 'block_ilp')); $this->config_text_element($mform, 'mis_plugin_term_overallheader', get_string('ilp_mis_attendance_plugin_term_overallheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termheader', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_overall', 'block_ilp')); //set the plugin that term will link to if any $options = array(0 => get_string('notapplicable', 'block_ilp')); //get all mis_plugins $mis_plugins = ilp_records_to_menu($this->dbc->get_mis_plugins(), 'id', 'name'); $plugins = $CFG->dirroot . '/blocks/ilp/classes/dashboard/mis'; foreach ($mis_plugins as $plugin_file) { if (file_exists($plugins . '/' . $plugin_file . ".php")) { require_once $plugins . '/' . $plugin_file . ".php"; // instantiate the object $class = basename($plugin_file, ".php"); $pluginobj = new $class(); $method = array($pluginobj, 'plugin_type'); //check whether the config_settings method has been defined if (is_callable($method, true)) { if ($pluginobj->plugin_type() == 'attendance') { $mismisc = $this->dbc->get_mis_plugin_by_name($plugin_file); $options[$mismisc->id] = $pluginobj->tab_name(); } } } } $this->config_select_element($mform, 'mis_plugin_term_linkedplugin', $options, get_string('linkedplugin', 'block_ilp'), get_string('linkedplugindesc', 'block_ilp'), ''); $options = array(0 => get_string('ilp_mis_attendance_plugin_term_threeterms', 'block_ilp'), 1 => get_string('ilp_mis_attendance_plugin_term_sixterms', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_term_termformat', $options, get_string('ilp_mis_attendance_plugin_term_termformat', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_termformatdesc', 'block_ilp'), 9); $options = array(0 => get_string('ilp_mis_attendance_plugin_term_ignore', 'block_ilp'), 1 => get_string('ilp_mis_attendance_plugin_term_positive', 'block_ilp'), 2 => get_string('ilp_mis_attendance_plugin_term_negative', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_term_authorised', $options, get_string('ilp_mis_attendance_plugin_term_table', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_tabledesc', 'block_ilp'), 1); $options = array(ILP_IDTYPE_STRING => get_string('stringid', 'block_ilp'), ILP_IDTYPE_INT => get_string('intid', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_term_idtype', $options, get_string('idtype', 'block_ilp'), get_string('idtypedesc', 'block_ilp'), 1); $options = array(ILP_MIS_TABLE => get_string('table', 'block_ilp'), ILP_MIS_STOREDPROCEDURE => get_string('storedprocedure', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_term_tabletype', $options, get_string('ilp_mis_attendance_plugin_term_table', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_tabledesc', 'block_ilp'), 1); $options = array(ILP_ENABLED => get_string('enabled', 'block_ilp'), ILP_DISABLED => get_string('disabled', 'block_ilp')); $this->config_select_element($mform, 'ilp_mis_attendance_plugin_term_pluginstatus', $options, get_string('ilp_mis_attendance_plugin_term_pluginstatus', 'block_ilp'), get_string('ilp_mis_attendance_plugin_term_pluginstatusdesc', 'block_ilp'), 0); }
/** * Adds config settings for the plugin to the given mform * @see ilp_plugin::config_form() */ function config_form(&$mform) { global $CFG; $this->config_text_element($mform, 'mis_plugin_mcb_table', get_string('ilp_mis_attendance_plugin_mcb_table', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_tabledesc', 'block_ilp'), ''); $this->config_text_element($mform, 'mis_plugin_mcb_studentidfield', get_string('ilp_mis_attendance_plugin_mcb_studentidfield', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_studentidfielddesc', 'block_ilp'), 'studentID'); $this->config_text_element($mform, 'mis_plugin_mcb_courseidfield', get_string('ilp_mis_attendance_plugin_mcb_course_idfield', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_course_idfielddesc', 'block_ilp'), 'courseID'); $this->config_text_element($mform, 'mis_plugin_mcb_coursenamefield', get_string('ilp_mis_attendance_plugin_mcb_course_namefield', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_course_namefielddesc', 'block_ilp'), 'courseName'); $this->config_text_element($mform, 'mis_plugin_mcb_monthidfield', get_string('ilp_mis_attendance_plugin_mcb_monthidfield', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_monthidfielddesc', 'block_ilp'), 'month'); $this->config_text_element($mform, 'mis_plugin_mcb_monthorderfield', get_string('ilp_mis_attendance_plugin_mcb_monthorderfield', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_monthorderfielddesc', 'block_ilp'), 'monthOrder'); $this->config_text_element($mform, 'mis_plugin_mcb_markstotalfield', get_string('ilp_mis_attendance_plugin_mcb_markstotal', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_markstotaldesc', 'block_ilp'), 'marksTotal'); $this->config_text_element($mform, 'mis_plugin_mcb_markspresentfield', get_string('ilp_mis_attendance_plugin_mcb_markspresent', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_markspresentdesc', 'block_ilp'), 'marksPresent'); $this->config_text_element($mform, 'mis_plugin_mcb_marksabsentfield', get_string('ilp_mis_attendance_plugin_mcb_marksabsent', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_marksabsentdesc', 'block_ilp'), 'marksAbsent'); $this->config_text_element($mform, 'mis_plugin_mcb_marksauthabsentfield', get_string('ilp_mis_attendance_plugin_mcb_marksauthabsent', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_marksauthabsentdesc', 'block_ilp'), 'marksAuthAbsent'); $this->config_text_element($mform, 'mis_plugin_mcb_markslatefield', get_string('ilp_mis_attendance_plugin_mcb_markslate', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_markslatedesc', 'block_ilp'), 'marksLate'); $options = array(1 => get_string('jan', 'block_ilp'), 2 => get_string('feb', 'block_ilp'), 3 => get_string('mar', 'block_ilp'), 4 => get_string('apr', 'block_ilp'), 5 => get_string('may', 'block_ilp'), 6 => get_string('jun', 'block_ilp'), 7 => get_string('jul', 'block_ilp'), 8 => get_string('aug', 'block_ilp'), 9 => get_string('sep', 'block_ilp'), 10 => get_string('oct', 'block_ilp'), 11 => get_string('nov', 'block_ilp'), 12 => get_string('dec', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_mcb_startmonth', $options, get_string('ilp_mis_attendance_plugin_mcb_startmonth', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_startmonthdesc', 'block_ilp'), 9); $options = array(1 => get_string('jan', 'block_ilp'), 2 => get_string('feb', 'block_ilp'), 3 => get_string('mar', 'block_ilp'), 4 => get_string('apr', 'block_ilp'), 5 => get_string('may', 'block_ilp'), 6 => get_string('jun', 'block_ilp'), 7 => get_string('jul', 'block_ilp'), 8 => get_string('aug', 'block_ilp'), 9 => get_string('sep', 'block_ilp'), 10 => get_string('oct', 'block_ilp'), 11 => get_string('nov', 'block_ilp'), 12 => get_string('dec', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_mcb_endmonth', $options, get_string('ilp_mis_attendance_plugin_mcb_endmonth', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_endmonthdesc', 'block_ilp'), 6); $options = array(0 => get_string('ilp_mis_attendance_plugin_mcb_ignore', 'block_ilp'), 1 => get_string('ilp_mis_attendance_plugin_mcb_positive', 'block_ilp'), 2 => get_string('ilp_mis_attendance_plugin_mcb_negative', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_mcb_authorised', $options, get_string('ilp_mis_attendance_plugin_mcb_table', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_tabledesc', 'block_ilp'), 1); $options = array(ILP_IDTYPE_STRING => get_string('stringid', 'block_ilp'), ILP_IDTYPE_INT => get_string('intid', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_mcb_idtype', $options, get_string('idtype', 'block_ilp'), get_string('idtypedesc', 'block_ilp'), 1); //set the plugin that term will link to if any $options = array(0 => get_string('notapplicable', 'block_ilp')); //get all mis_plugins $mis_plugins = ilp_records_to_menu($this->dbc->get_mis_plugins(), 'id', 'name'); $plugins = $CFG->dirroot . '/blocks/ilp/classes/dashboard/mis'; foreach ($mis_plugins as $plugin_file) { if (file_exists($plugins . '/' . $plugin_file . ".php")) { require_once $plugins . '/' . $plugin_file . ".php"; // instantiate the object $class = basename($plugin_file, ".php"); $pluginobj = new $class(); $method = array($pluginobj, 'plugin_type'); //check whether the config_settings method has been defined if (is_callable($method, true)) { if ($pluginobj->plugin_type() == 'attendance') { $mismisc = $this->dbc->get_mis_plugin_by_name($plugin_file); $options[$mismisc->id] = $pluginobj->tab_name(); } } } } $this->config_select_element($mform, 'mis_plugin_mcb_linkedplugin', $options, get_string('linkedplugin', 'block_ilp'), get_string('linkedplugindesc', 'block_ilp'), ''); $options = array(ILP_MIS_TABLE => get_string('table', 'block_ilp'), ILP_MIS_STOREDPROCEDURE => get_string('storedprocedure', 'block_ilp')); $this->config_select_element($mform, 'mis_plugin_mcb_tabletype', $options, get_string('ilp_mis_attendance_plugin_mcb_tabletype', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_tabledesc', 'block_ilp'), 1); $options = array(ILP_ENABLED => get_string('enabled', 'block_ilp'), ILP_DISABLED => get_string('disabled', 'block_ilp')); $this->config_select_element($mform, 'ilp_mis_attendance_plugin_mcb_pluginstatus', $options, get_string('ilp_mis_attendance_plugin_mcb_pluginstatus', 'block_ilp'), get_string('ilp_mis_attendance_plugin_mcb_pluginstatusdesc', 'block_ilp'), 0); }
/** * Installs any new plugins */ public function install_new_plugins($dbplugins, $plugin_class_directory) { global $CFG; // instantiate the assmgr db $dbc = new ilp_db(); // get all the currently installed evidence resource types $plugins = ilp_records_to_menu($dbplugins, 'id', 'name'); // get the folder contents of the resource plugin directory $files = scandir($plugin_class_directory); foreach ($files as $file) { // look for plugins if (preg_match('/^([a-z_]+)\\.php$/i', $file, $matches)) { if (!in_array($matches[1], $plugins)) { // include the class require_once $plugin_class_directory . '/' . $file; // instantiate the object $class = basename($file, ".php"); $pluginobj = new $class(); // update the resource_types table $id = $dbc->create_plugin($pluginobj->get_plugin_table(), $pluginobj->get_name()); // any additional functions that must be carried that are specific to a child class can be carried out in the install function $pluginobj->install($id); } } } }