Exemplo n.º 1
0
 /**
  * @todo it would be better to create a datarecord subclass with the proper delete() method
  * instead of overriding this method
  */
 function action_confirm()
 {
     global $CURMAN;
     $association_id = required_param('association_id', PARAM_INT);
     $confirm = required_param('confirm', PARAM_ALPHANUM);
     if (md5($association_id) != $confirm) {
         echo cm_error('Invalid confirmation code!');
     } else {
         $rec = $CURMAN->db->get_record(CLSTASSTABLE, 'id', $association_id);
         cluster_manual_deassign_user($rec->clusterid, $rec->userid);
     }
     $target = $this->action_default();
 }
Exemplo n.º 2
0
 function action_confirmdelem()
 {
     $id = required_param('id', PARAM_INT);
     $confirm = required_param('confirm', PARAM_TEXT);
     $elemid = cm_get_param('elemid', 0);
     $crs = new course($id);
     if (md5($elemid) != $confirm) {
         echo cm_error('Invalid confirmation code!');
     } else {
         if (!$crs->delete_completion_element($elemid)) {
             echo cm_error('Completion element not deleted.');
         } else {
             echo cm_error('Completion element deleted.');
         }
     }
     $this->print_tabs('elem', array('id' => $id));
     echo $this->get_completion_page($id);
 }
Exemplo n.º 3
0
 /**
  *
  */
 public function action_waitlistconfirm()
 {
     $id = required_param('userid', PARAM_INT);
     $form_url = new moodle_url(null, array('s' => $this->pagename, 'section' => $this->section, 'action' => 'waitlistconfirm'));
     $waitlistform = new waitlistaddform($form_url, array('student_ids' => $id));
     if ($data = $waitlistform->get_data()) {
         $now = time();
         foreach ($data->userid as $uid) {
             if (isset($data->enrol[$uid]) && isset($data->classid[$uid]) && isset($data->enrolmenttime[$uid])) {
                 if ($data->enrol[$uid] == 1) {
                     $wait_record = new object();
                     $wait_record->userid = $uid;
                     $wait_record->classid = $data->classid[$uid];
                     $wait_record->enrolmenttime = $data->enrolmenttime[$uid];
                     $wait_record->timecreated = $now;
                     $wait_record->position = 0;
                     $wait_list = new waitlist($wait_record);
                     $wait_list->add();
                 } else {
                     if ($data->enrol[$uid] == 2) {
                         $user = new user($uid);
                         $student_data = array();
                         $student_data['classid'] = $data->classid[$uid];
                         $student_data['userid'] = $uid;
                         $student_data['enrolmenttime'] = $data->enrolmenttime[$uid];
                         $student_data['timecreated'] = $now;
                         $student_data['completestatusid'] = STUSTATUS_NOTCOMPLETE;
                         $newstu = new student($student_data);
                         $status = $newstu->add();
                         if ($status !== true) {
                             if (!empty($status->message)) {
                                 echo cm_error(get_string('record_not_created_reason', 'block_curr_admin', $status->message));
                             } else {
                                 echo cm_error(get_string('record_not_created', 'block_curr_admin'));
                             }
                         }
                     }
                 }
             }
         }
     }
     $this->action_default();
 }
Exemplo n.º 4
0
 /**
  * Returns whether a class has already been assigned to the curriculum -
  * default track
  *
  * @return boolean true if record exists, otherwise false
  */
 function is_class_assigned_to_default_track()
 {
     // Get the curriculum id
     // check if default track exists
     $exists = $this->_db->record_exists(track::TABLE, 'curid', $this->track->curid, array('defaulttrack' => 1));
     if (!$exists) {
         return false;
     }
     // Retrieve track id
     $trackid = $this->_db->get_field(track::TABLE, 'id', array('curid' => $this->track->curid, 'defaulttrack' => 1));
     if (false === $trackid) {
         cm_error('Error #1001: selecting field from local_elisprogram_trk table');
     }
     // Check if class is assigned to default track
     return $this->_db->record_exists(trackassignment::TABLE, array('classid' => $this->classid, 'trackid' => $trackid));
 }
Exemplo n.º 5
0
 /**
  * Enrols a user in a track.
  *
  * @param int $userid The user id
  * @param int $trackid The track id
  */
 public static function enrol($userid, $trackid)
 {
     global $DB;
     // make sure we don't double-enrol
     if ($DB->record_exists(self::TABLE, array('userid' => $userid, 'trackid' => $trackid))) {
         return false;
     }
     $record = new usertrack();
     $record->userid = $userid;
     $record->trackid = $trackid;
     $record->save();
     $user = new user($userid);
     $track = new track($trackid);
     if (!$DB->record_exists(curriculumstudent::TABLE, array('userid' => $userid, 'curriculumid' => $track->curid))) {
         $curstu = new curriculumstudent();
         $curstu->userid = $userid;
         $curstu->curriculumid = $track->curid;
         $curstu->completed = 0;
         $curstu->credits = 0;
         $curstu->locked = 0;
         $curstu->save();
     }
     events_trigger('track_assigned', $record);
     /**
      * Get autoenrollable classes in the track.  Classes are autoenrollable
      * if:
      * - the autoenrol flag is set
      * - it is the only class in that course slot for the track
      */
     $sql = 'SELECT classid, courseid ' . 'FROM {' . trackassignment::TABLE . '} ' . 'WHERE trackid = ? ' . 'GROUP BY courseid ' . 'HAVING COUNT(*) = 1 AND MAX(autoenrol) = 1';
     $params = array($trackid);
     $classes = $DB->get_recordset_sql($sql, $params);
     foreach ($classes as $class) {
         // ELIS-3460: check pre-requisites ...
         $curcrs = new curriculumcourse(array('courseid' => $class->courseid, 'curriculumid' => $track->curid));
         if (!$curcrs->prerequisites_satisfied($userid)) {
             //error_log("/local/elisprogram/lib/data/usertrack.class.php::enrol({$userid}); pre-requisites NOT satisfied for course: {$class->courseid}, curriculum: {$track->curid}");
             continue;
         }
         $now = time();
         // enrol user in each autoenrolable class
         $stu_record = new object();
         $stu_record->userid = $userid;
         $stu_record->classid = $class->classid;
         $stu_record->enrolmenttime = $now;
         $enrolment = new student($stu_record);
         // catch enrolment limits
         try {
             $status = $enrolment->save();
         } catch (pmclass_enrolment_limit_validation_exception $e) {
             // autoenrol into waitlist
             $wait_record = new object();
             $wait_record->userid = $userid;
             $wait_record->classid = $class->classid;
             $wait_record->enrolmenttime = $now;
             $wait_record->timecreated = $now;
             $wait_record->position = 0;
             $wait_list = new waitlist($wait_record);
             $wait_list->save();
             $status = true;
         } catch (Exception $e) {
             $param = array('message' => $e->getMessage());
             echo cm_error(get_string('record_not_created_reason', 'local_elisprogram', $param));
         }
     }
     unset($classes);
     return true;
 }
 function action_update()
 {
     $userid = required_param('userid', PARAM_INT);
     $insid = required_param('association_id', PARAM_INT);
     $clsid = required_param('id', PARAM_INT);
     $users = cm_get_param('users', array());
     $uid = $userid;
     $user = current($users);
     $insrecord = array();
     $insrecord['id'] = $insid;
     $insrecord['classid'] = $clsid;
     $insrecord['userid'] = $uid;
     $startyear = $user['startyear'];
     $startmonth = $user['startmonth'];
     $startday = $user['startday'];
     $insrecord['assigntime'] = mktime(0, 0, 0, $startmonth, $startday, $startyear);
     $endyear = $user['endyear'];
     $endmonth = $user['endmonth'];
     $endday = $user['endday'];
     $insrecord['completetime'] = mktime(0, 0, 0, $endmonth, $endday, $endyear);
     $ins = new instructor($insrecord);
     if (($status = $ins->data_update_record()) !== true) {
         echo cm_error('Record not updated.  Reason: ' . $status->message);
     }
     $this->action_default();
 }
Exemplo n.º 7
0
 /**
  * Returns whether a class has already been assigned to the curriculum -
  * default track
  *
  * @return boolean true if record exists, otherwise false
  */
 function is_class_assigned_to_default_track()
 {
     global $CURMAN;
     // Get the curriculum id
     // check if default track exists
     $exists = $CURMAN->db->record_exists(TRACKTABLE, 'curid', $this->track->curid, 'defaulttrack', 1);
     if (!$exists) {
         return false;
     }
     // Retrieve track id
     $trackid = $CURMAN->db->get_field(TRACKTABLE, 'id', 'curid', $this->track->curid, 'defaulttrack', 1);
     if (false === $trackid) {
         cm_error('Error #1001: selecting field from crlm_track table');
     }
     // Check if class is assigned to default track
     return $CURMAN->db->record_exists(TRACKCLASSTABLE, 'classid', $this->classid, 'trackid', $trackid);
 }
Exemplo n.º 8
0
 /**
  * Updates resulting enrolments that are auto-created after users are
  * assigned to user sets (specifically user-track assignments, user-program
  * assignments, and class enrolments in a track's default class)
  *
  * Note: This is essentially equivalent to cluster_assigned_handler but
  * runs a fixed number of queries for scalability reasons
  *
  * @param  int  $userid     A specific PM user id to filter on for
  *                          consideration, or all users if zero
  * @param  int  $clusterid  A specific cluster / user set id to filter
  *                          on for consideration, or all users if zero
  */
 static function update_enrolments($userid = 0, $clusterid = 0)
 {
     global $DB;
     require_once elispm::lib('data/usermoodle.class.php');
     // error_log("/local/elisprogram/lib/data/clusterassignment.class.php::update_enrolments({$userid}, {$clusterid})");
     // ELIS-7582
     @set_time_limit(0);
     // convert provided parameters to SQL conditions
     $extraconditions = array();
     $extraparams = array();
     if (!empty($userid)) {
         $users = array($userid);
         $extraconditions[] = 'u.id = ?';
         $extraparams[] = $userid;
     } else {
         $users = clusterassignment::find(new field_filter('clusterid', $clusterid));
     }
     if (!empty($clusterid)) {
         $extraconditions[] = 'clu.clusterid = ?';
         $extraparams[] = $clusterid;
     }
     $extrawhere = '';
     if (!empty($extraconditions)) {
         $extrawhere = ' AND ' . implode(' AND ', $extraconditions);
     }
     //use the current time as the time created and modified for curriculum
     //assignments
     $timenow = time();
     //assign to curricula based on user-cluster and cluster-curriculum
     //associations
     $sql = "INSERT INTO {" . curriculumstudent::TABLE . "}\n                    (userid, curriculumid, timecreated, timemodified)\n                SELECT DISTINCT u.id, clucur.curriculumid, {$timenow}, {$timenow}\n                  FROM {" . clusterassignment::TABLE . "} clu\n                  JOIN {" . user::TABLE . "} u ON u.id = clu.userid\n                  JOIN {" . clustercurriculum::TABLE . "} clucur\n                    ON clucur.clusterid = clu.clusterid\n             LEFT JOIN {" . curriculumstudent::TABLE . "} ca\n                    ON ca.userid = u.id\n                   AND ca.curriculumid = clucur.curriculumid\n                 WHERE ca.curriculumid IS NULL\n                   AND clucur.autoenrol = 1\n                   {$extrawhere}";
     $DB->execute($sql, $extraparams);
     //assign to curricula based on user-cluster and cluster-track
     //associations (assigning a user to a track auto-assigns them to
     //the track's curriculum, track assignment happens below)
     $sql = "INSERT INTO {" . curriculumstudent::TABLE . "}\n                    (userid, curriculumid, timecreated, timemodified)\n                SELECT DISTINCT u.id, trk.curid, {$timenow}, {$timenow}\n                  FROM {" . clusterassignment::TABLE . "} clu\n                  JOIN {" . user::TABLE . "} u\n                    ON u.id = clu.userid\n                  JOIN {" . clustertrack::TABLE . "} clutrk\n                    ON clutrk.clusterid = clu.clusterid\n                  JOIN {" . track::TABLE . "} trk\n                    ON clutrk.trackid = trk.id\n             LEFT JOIN {" . curriculumstudent::TABLE . "} ca\n                    ON ca.userid = u.id\n                   AND ca.curriculumid = trk.curid\n                 WHERE ca.curriculumid IS NULL\n                   AND clutrk.autoenrol = 1\n                   {$extrawhere}";
     $DB->execute($sql, $extraparams);
     //this represents the tracks that users will be assigned to
     //based on user-cluster and cluster-track associations
     //(actual assignment happens below)
     $exists = "EXISTS (SELECT DISTINCT u.id, clutrk.trackid\n                             FROM {" . clusterassignment::TABLE . "} clu\n                             JOIN {" . user::TABLE . "} u\n                               ON u.id = clu.userid\n                             JOIN {" . clustertrack::TABLE . "} clutrk\n                               ON clutrk.clusterid = clu.clusterid\n                        LEFT JOIN {" . usertrack::TABLE . "} ta\n                               ON ta.userid = u.id\n                              AND ta.trackid = clutrk.trackid\n                            WHERE ta.trackid IS NULL\n                              AND clutrk.autoenrol = 1\n                              AND outerta.trackid = clutrk.trackid\n\t                      {$extrawhere})";
     /**
      * Get autoenrollable classes in the track.  Classes are autoenrollable
      * if:
      * - the autoenrol flag is set
      * - it is the only class in that course slot for the track
      */
     // group the classes from the same course together
     // only select the ones that are the only class for that course in
     // the given track, and if the autoenrol flag is set
     $sql = "SELECT outerta.classid, outerta.courseid, trk.curid\n                  FROM {" . trackassignment::TABLE . "} outerta\n                  JOIN {" . track::TABLE . "} trk ON trk.id = outerta.trackid\n                 WHERE {$exists}\n              GROUP BY courseid\n                HAVING COUNT(*) = 1 AND MAX(autoenrol) = 1";
     //go through and assign user(s) to the autoenollable classes
     $classes = $DB->get_records_sql($sql, $extraparams);
     if (!empty($classes)) {
         foreach ($users as $user) {
             $userid = is_object($user) ? $user->userid : $user;
             foreach ($classes as $class) {
                 // check pre-requisites
                 $curcrs = new curriculumcourse(array('courseid' => $class->courseid, 'curriculumid' => $class->curid));
                 if (!$curcrs->prerequisites_satisfied($userid)) {
                     continue;
                 }
                 $now = time();
                 // enrol user in each autoenrolable class
                 $stu_record = new object();
                 $stu_record->userid = $userid;
                 $stu_record->classid = $class->classid;
                 $stu_record->enrolmenttime = $now;
                 $enrolment = new student($stu_record);
                 // catch enrolment limits
                 try {
                     $enrolment->save();
                 } catch (pmclass_enrolment_limit_validation_exception $e) {
                     // autoenrol into waitlist
                     $wait_record = new object();
                     $wait_record->userid = $userid;
                     $wait_record->classid = $class->classid;
                     $wait_record->enrolmenttime = $now;
                     $wait_record->timecreated = $now;
                     $wait_record->position = 0;
                     $wait_list = new waitlist($wait_record);
                     $wait_list->save();
                 } catch (Exception $e) {
                     $param = array('message' => $e->getMessage());
                     if (in_cron()) {
                         mtrace(get_string('record_not_created_reason', 'local_elisprogram', $param));
                     } else {
                         echo cm_error(get_string('record_not_created_reason', 'local_elisprogram', $param));
                     }
                 }
             }
         }
     }
     //assign to tracks based on user-cluster and cluster-track
     //associations
     $sql = "INSERT INTO {" . usertrack::TABLE . "}\n                       (userid, trackid)\n                SELECT DISTINCT u.id, clutrk.trackid\n                  FROM {" . clusterassignment::TABLE . "} clu\n                  JOIN {" . user::TABLE . "} u\n                    ON u.id = clu.userid\n                  JOIN {" . clustertrack::TABLE . "} clutrk\n                    ON clutrk.clusterid = clu.clusterid\n             LEFT JOIN {" . usertrack::TABLE . "} ta\n                    ON ta.userid = u.id\n                   AND ta.trackid = clutrk.trackid\n                 WHERE ta.trackid IS NULL\n                   AND clutrk.autoenrol = 1\n                   {$extrawhere}";
     $DB->execute($sql, $extraparams);
     //update site-level "cluster groups"
     //TODO: make sure all "cluster groups" scenarios are handled here, and look at
     //performance in more detal
     if (!empty($userid) && file_exists(elispm::file('plugins/usetgroups/lib.php'))) {
         require_once elispm::file('plugins/usetgroups/lib.php');
         //need the Moodle user id
         $mdluserid = $DB->get_field(usermoodle::TABLE, 'muserid', array('cuserid' => $userid));
         if ($mdluserid) {
             //find all assignments for this user
             $assignments = $DB->get_recordset(clusterassignment::TABLE, array('userid' => $userid));
             foreach ($assignments as $assignment) {
                 //update site-level group assignments
                 userset_groups_update_site_course($assignment->clusterid, true, $mdluserid);
             }
         }
         //update course-level group assignment
         userset_groups_update_groups(array('mdlusr.cuserid' => $userid));
     }
 }
 function action_savenew()
 {
     global $USER, $CFG, $CURMAN;
     $clsid = cm_get_param('clsid', 0);
     $class = new cmclass($clsid);
     if (!$class->is_enrollable()) {
         print_error('notenrollable');
     }
     // check if class is full
     if (!empty($class->maxstudents) && student::count_enroled($class->id) >= $class->maxstudents) {
         $form = $this->create_waitlistform($classid);
         $form->display();
         return;
     }
     // call the Moodle enrolment plugin if attached to a Moodle course, and
     // it's not the elis plugin
     $courseid = $class->get_moodle_course_id();
     if ($courseid) {
         $course = $CURMAN->db->get_record('course', 'id', $courseid);
         // the elis plugin is treated specially
         if ($course->enrol != 'elis') {
             // FIXME: add message
             redirect("{$CFG->wwwroot}/course/enrol.php?id={$courseid}");
         }
     }
     $cuserid = cm_get_crlmuserid($USER->id);
     $sturecord = array();
     $sturecord['classid'] = $class->id;
     $sturecord['userid'] = $cuserid;
     $sturecord['enrolmenttime'] = max(time(), $class->startdate);
     $sturecord['completetime'] = 0;
     $newstu = new student($sturecord);
     if (($status = $newstu->add()) !== true) {
         if (!empty($status->message)) {
             echo cm_error('Record not created. Reason: ' . $status->message);
         } else {
             echo cm_error('Record not created.');
         }
     }
     $this->action_default();
 }
 function get_body()
 {
     global $CFG, $CURMAN;
     $action = cm_get_param('action', '');
     $confirm = cm_get_param('confirm', '');
     //md5 confirmation hash
     $confirmuser = cm_get_param('confirmuser', 0);
     $trackid = cm_get_param('trackid', 0);
     $id = cm_get_param('id', 0);
     $sort = cm_get_param('sort', 'idnumber');
     $dir = cm_get_param('dir', 'ASC');
     $page = cm_get_param('page', 0);
     $perpage = cm_get_param('perpage', 30);
     // how many per page
     $namesearch = trim(cm_get_param('search', ''));
     $alpha = cm_get_param('alpha', '');
     if (!($track = new track($trackid))) {
         return ' (' . $trackid . ')';
     }
     switch ($action) {
         case 'add':
             return $this->get_add_form($trackid);
             break;
         case 'confirm':
             $tk = new trackassignmentclass($id);
             if (md5($tk->id) != $confirm) {
                 echo cm_error('Invalid confirmation code!');
             } else {
                 if (!$tk->delete()) {
                     echo cm_error('Course "name: ' . $tk->track->name . '" not deleted.');
                 }
             }
             break;
         case 'delete':
             return $this->get_delete_form($id);
             break;
         case 'edit':
             return $this->get_edit_form($id);
             break;
         case 'update':
             $id = cm_get_param('id', 0);
             $autoenrol = cm_get_param('autoenrol', 0);
             $trkassign = new trackassignmentclass($id);
             $trkassign->autoenrol = $autoenrol;
             $trkassign->data_update_record();
             break;
         case 'savenew':
             $classes = cm_get_param('classes', '');
             $classes = is_array($classes) ? $classes : array();
             $trackid = cm_get_param('trackid', 0, PARAM_INT);
             if (!empty($classes) and !empty($trackid)) {
                 $param = array('trackid' => $trackid);
                 $trackobj = new track($trackid);
                 foreach ($classes as $classid) {
                     $classobj = new cmclass($classid);
                     $param['classid'] = $classid;
                     $param['courseid'] = $classobj->courseid;
                     $param['autoenrol'] = 0;
                     $param['required'] = 0;
                     // Pull up the curricula assignment record(s)
                     $curcourse = curriculumcourse_get_list_by_curr($trackobj->curid);
                     // Traverse though curricula's courses until the the course the -
                     // selected classs is assigned to comes up
                     foreach ($curcourse as $recid => $curcourec) {
                         // Only interested in the course that the class is assigned to
                         if ($curcourec->courseid == $classobj->courseid) {
                             if ($curcourec->required) {
                                 $param['required'] = 1;
                                 // Only one class assigned to course to enable auto enrol
                                 if (1 == cmclass::count_course_assignments($curcourec->courseid)) {
                                     $param['autoenrol'] = 1;
                                 }
                             }
                         }
                     }
                     // Assign class to track now
                     $trkassignobj = new trackassignmentclass($param);
                     $trkassignobj->assign_class_to_track();
                 }
             }
             break;
     }
     $columns = array('clsname' => get_string('class_id_number', 'block_curr_admin'), 'autoenrol' => get_string('auto_enrol', 'block_curr_admin'));
     foreach ($columns as $column => $cdesc) {
         if ($sort != $column) {
             $columnicon = "";
             $columndir = "ASC";
         } else {
             $columndir = $dir == "ASC" ? "DESC" : "ASC";
             $columnicon = $dir == "ASC" ? "down" : "up";
             $columnicon = " <img src=\"{$CFG->pixpath}/t/{$columnicon}.gif\" alt=\"\" />";
         }
         ${$column} = "<a href=\"index.php?s=trkcls&amp;section=curr&amp;sort={$column}&amp;" . "dir={$columndir}&amp;search=" . urlencode(stripslashes($namesearch)) . "&amp;alpha={$alpha}&amp;trackid={$trackid}\">" . $cdesc . "</a>{$columnicon}";
         $table->head[] = ${$column};
         $table->align[] = 'left';
         $table->wrap[] = false;
     }
     $table->head[] = '';
     $table->align[] = 'center';
     $table->wrap[] = true;
     $trks = track_assignment_get_listing($trackid, $sort, $dir, $page * $perpage, $perpage, $namesearch, $alpha);
     $numtrk = track_assignment_count_records($trackid, $namesearch, $alpha);
     $alphabet = explode(',', get_string('alphabet'));
     $strall = get_string('all');
     /// Nav bar information:
     $bc = '<div style="float:right;">' . $numtrk . ' track(s) found.</div>' . '<span class="breadcrumb">' . get_string('trackasso_manage_crumb', 'block_curr_admin', $track->name) . '</span>';
     echo cm_print_heading_block($bc, '', true);
     echo '<br />' . "\n";
     /// Bar of first initials
     echo "<p style=\"text-align:center\">";
     echo 'Name' . " : ";
     if ($alpha) {
         echo " <a href=\"index.php?s=trkcls&amp;section=curr&amp;sort=name&amp;dir=ASC&amp;" . "perpage={$perpage}&amp;trackid={$trackid}\">{$strall}</a> ";
     } else {
         echo " <b>{$strall}</b> ";
     }
     foreach ($alphabet as $letter) {
         if ($letter == $alpha) {
             echo " <b>{$letter}</b> ";
         } else {
             echo " <a href=\"index.php?s=trkcls&amp;section=curr&amp;sort=idnumber&amp;dir=ASC&amp;" . "perpage={$perpage}&amp;trackid={$trackid}&amp;alpha={$letter}\">{$letter}</a> ";
         }
     }
     echo "</p>";
     print_paging_bar($numtrk, $page, $perpage, "index.php?s=trkm&amp;section=curr&amp;sort={$sort}&amp;dir={$dir}&amp;perpage={$perpage}&amp;" . "alpha={$alpha}&amp;trackid={$trackid}&amp;search=" . urlencode(stripslashes($namesearch)) . "&amp;");
     if (!$trks) {
         $match = array();
         if ($namesearch !== '') {
             $match[] = s($namesearch);
         }
         if ($alpha) {
             $match[] = 'idnumber' . ": {$alpha}" . "___";
         }
         $matchstring = implode(", ", $match);
         echo get_string('no_matching_track_assign', 'block_curr_admin') . $matchstring;
         $table = NULL;
     } else {
         $table->width = "95%";
         foreach ($trks as $trk) {
             $deletebutton = '<a href="index.php?s=trkcls&amp;section=curr&amp;action=delete&amp;' . 'id=' . $trk->id . '">' . '<img src="pix/delete.gif" alt="Delete" title="Delete" /></a>';
             $editbutton = '<a href="index.php?s=trkcls&amp;section=curr&amp;action=edit&amp;id=' . $trk->id . '">' . '<img src="pix/edit.gif" alt="Edit" title="Edit" /></a>';
             /*$tagbutton    = '<a href="index.php?s=tagins&amp;section=curr&amp;t=cur&amp;i='.$trk->id.'">'.
                               '<img src="pix/tag.gif" alt="Tags" title="Tags" /></a>';
               $clusterbutton = '<a href="index.php?s=clutrk&amp;section=curr&amp;mode=trk&amp;' .
                             'track=' . $trk->id . '"><img src="pix/cluster.gif" alt="Clusters" '.
                             'title="Clusters" /></a>';*/
             $newarr = array();
             foreach ($columns as $column => $cdesc) {
                 if ($column == 'clsname') {
                     $newarr[] = '<a href="index.php?s=cls&section=curr&action=edit&id=' . $trk->classid . '">' . $trk->{$column} . '</a>';
                 } else {
                     $newarr[] = $trk->{$column};
                 }
             }
             $newarr[] = $editbutton . ' ' . $deletebutton;
             $table->data[] = $newarr;
         }
     }
     echo "<table class=\"searchbox\" style=\"margin-left:auto;margin-right:auto\" cellpadding=\"10\"><tr><td>";
     echo "<form action=\"index.php\" method=\"get\"><fieldset class=\"invisiblefieldset\">";
     echo '<input type="hidden" name="s" value="trkcls" />';
     echo '<input type="hidden" name="section" value="curr" />';
     echo '<input type="hidden" name="sort" value="' . $sort . '" />';
     echo '<input type="hidden" name="dir" value="' . $dir . '" />';
     echo '<input type="hidden" name="perpage" value="' . $perpage . '" />';
     echo '<input type="hidden" name="trackid" value="' . $trackid . '" />';
     echo "<input type=\"text\" name=\"search\" value=\"" . s($namesearch, true) . "\" size=\"40\" />";
     echo "<input type=\"submit\" value=\"" . get_string('search', 'block_curr_admin') . "\" />";
     if ($namesearch) {
         echo "<input type=\"button\" onclick=\"document.location='index.php?s=trkcls&amp;" . "section=curr&amp;sort={$sort}&amp;dir={$dir}&amp;perpage={$perpage}&amp;alpha={$alpha}&amp;trackid={$trackid}';\" " . "value=\"" . get_string('show_all_curricula', 'block_curr_admin') . "\" />";
     }
     echo "</fieldset></form>";
     echo "</td></tr></table>";
     if (!empty($table)) {
         print_heading('<a href="index.php?s=trkcls&amp;section=curr&amp;action=add&amp;trackid=' . $trackid . '">' . get_string('trackasso_add_asso', 'block_curr_admin', $track->name) . '</a>');
         print_table($table);
         print_paging_bar($numtrk, $page, $perpage, "index.php?s=trkcls&amp;section=curr&amp;sort={$sort}&amp;dir={$dir}&amp;perpage={$perpage}" . "&amp;alpha={$alpha}&amp;trackid={$trackid}&amp;search=" . urlencode(stripslashes($namesearch)) . "&amp;");
     }
     print_heading('<a href="index.php?s=trkcls&amp;section=curr&amp;action=add&amp;trackid=' . $trackid . '">' . get_string('trackasso_add_asso', 'block_curr_admin', $track->name) . '</a>');
 }
Exemplo n.º 11
0
 /**
  * Generic handler for the confirm (confirm delete) action.  Tries to delete the object and then renders the appropriate page.
  */
 function action_confirm()
 {
     $association_id = required_param('association_id', PARAM_INT);
     $confirm = required_param('confirm', PARAM_ALPHANUM);
     if (md5($association_id) != $confirm) {
         echo cm_error('Invalid confirmation code!');
     } else {
         $obj = new $this->data_class($association_id);
         $obj->delete();
     }
     $target = $this->action_default();
 }