/**
  * 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());
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
//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);
 }
Ejemplo n.º 8
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);
             }
         }
     }
 }