public function definition() { $mform =& $this->_form; // ensure the user is allowed to view the classes being listed $user_classes = pmclass_get_listing('crsname', 'ASC', 0, 11, '', '', 0, false, pmclasspage::get_contexts('local/elisprogram:class_view')); if (empty($user_classes)) { // show a default label $mform->addElement('static', 'static_name', get_string('no_courses', 'block_courserequest')); } else { // we have classes to list $mform->addElement('static', 'static_title', get_string('current_classes', 'block_courserequest')); foreach ($user_classes as $uc) { $context = \local_elisprogram\context\pmclass::instance($uc->id); // this points to the page that displays the specific class $target = new pmclasspage(array('id' => $uc->id, 'action' => 'view')); $mform->addElement('static', 'course' . $uc->id, '', "<a href=\"{$target->url}\">{$uc->idnumber}</a>"); } // use a "More" link if there are more than ten classes if (count($user_classes) > 10) { $target = new pmclasspage(array()); // TBV $more = "<a href=\"{$target->url}\">" . get_string('moreclasses', 'block_courserequest') . '</a>'; $mform->addElement('static', '' . $uc->id, '', $more); } } // button for creating a new request $mform->addElement('submit', 'add', get_string('request', 'block_courserequest')); }
/** * Dynamically loads child menu items for a course entity * * @param int $id The entity id * @param int $parent_cluster_id The last cluster passed going down the elisadmin tree, or 0 if none * @param int $parent_curriculum_id The last curriculum passed going down the elisadmin tree, or 0 if none * @param int $num_block_icons Max number of entries to display * @param string $parent_path Path of parent curriculum elements in the tree * @return menuitem array The appropriate child items */ function block_elisadmin_load_menu_children_course($id, $parent_cluster_id, $parent_curriculum_id, $num_block_icons, $parent_path = '') { global $CFG; //page dependencies require_once elispm::file('pmclasspage.class.php'); $result_items = array(); /***************************************** * Course - Class Associations *****************************************/ $class_css_class = block_elisadmin_get_item_css_class('class_instance'); //permissions filter $class_contexts = pmclasspage::get_contexts('local/elisprogram:class_view'); $listing = pmclass_get_listing('crsname', 'asc', 0, $num_block_icons, '', '', $id, false, $class_contexts, $parent_cluster_id); foreach ($listing as $item) { $item->clsname = $item->idnumber; $params = array('id' => $item->id, 'action' => 'view'); $result_items[] = block_elisadmin_get_menu_item('pmclass', $item, 'root', $class_css_class, $parent_cluster_id, $parent_curriculum_id, $params, false, $parent_path); } unset($listing); //summary item $num_records = pmclass_count_records('', '', $id, false, $class_contexts, $parent_cluster_id); if ($num_block_icons < $num_records) { $params = array('action' => 'default', 'id' => $id); //add extra param if appropriate if (!empty($parent_cluster_id)) { $params['parent_clusterid'] = $parent_cluster_id; } $result_items[] = block_elisadmin_get_menu_summary_item('pmclass', $class_css_class, $num_records - $num_block_icons, $params, '', $parent_path); } return $result_items; }
function display_default() { // Get parameters $sort = optional_param('sort', 'crsname', PARAM_ALPHA); $dir = optional_param('dir', 'ASC', PARAM_ALPHA); $page = optional_param('page', 0, PARAM_INT); $perpage = optional_param('perpage', 30, PARAM_INT); // how many per page $namesearch = trim(optional_param('search', '', PARAM_TEXT)); $alpha = optional_param('alpha', '', PARAM_ALPHA); $id = $this->get_cm_id(); //this parameter signifies a required relationship between a class and a track //through a cluster $parent_clusterid = $this->optional_param('parent_clusterid', 0, PARAM_INT); // Define columns $columns = array('crsname' => array('header' => get_string('class_course', 'local_elisprogram')), 'idnumber' => array('header' => get_string('class_idnumber', 'local_elisprogram')), 'moodlecourse' => array('header' => get_string('class_moodle_course', 'local_elisprogram')), 'startdate' => array('header' => get_string('class_startdate', 'local_elisprogram')), 'enddate' => array('header' => get_string('class_enddate', 'local_elisprogram')), 'starttime' => array('header' => get_string('class_starttime', 'local_elisprogram')), 'endtime' => array('header' => get_string('class_endtime', 'local_elisprogram')), 'maxstudents' => array('header' => get_string('class_maxstudents', 'local_elisprogram'))); //set the column data needed to maintain and display current sort if ($dir !== 'DESC') { $dir = 'ASC'; } if (isset($columns[$sort])) { $columns[$sort]['sortable'] = $dir; } $contexts = pmclasspage::get_contexts('local/elisprogram:class_view'); $items = pmclass_get_listing($sort, $dir, $page * $perpage, $perpage, $namesearch, $alpha, $id, false, $contexts, $parent_clusterid); $numitems = pmclass_count_records($namesearch, $alpha, $id, false, $contexts, $parent_clusterid); pmclasspage::get_contexts('local/elisprogram:class_edit'); pmclasspage::get_contexts('local/elisprogram:class_delete'); if (!empty($id)) { $coursepage = new coursepage(array('id' => $id)); $coursepage->print_tabs('pmclasspage', array('id' => $id)); } $this->print_list_view($items, $numitems, $columns, $filter = null, $alphaflag = true, $searchflag = true); unset($items); }
public function __construct(array $params = null) { // Check the course certificate global settings value $showcoursecerttab = isset(elis::$config->local_elisprogram->disablecoursecertificates); $showcoursecerttab = $showcoursecerttab && empty(elis::$config->local_elisprogram->disablecoursecertificates); $numclasses = 1; if (($id = $this->optional_param('id', 0, PARAM_INT)) > 0 && !$this->_has_capability('local/elisprogram:class_create', $id)) { $parentclusterid = $this->optional_param('parent_clusterid', 0, PARAM_INT); $numclasses = pmclass_count_records('', '', $id, false, pmclasspage::get_contexts('local/elisprogram:class_view'), $parentclusterid); } $this->tabs = array(array('tab_id' => 'view', 'page' => get_class($this), 'params' => array('action' => 'view'), 'name' => get_string('detail', 'local_elisprogram'), 'showtab' => true), array('tab_id' => 'edit', 'page' => get_class($this), 'params' => array('action' => 'edit'), 'name' => get_string('edit', 'local_elisprogram'), 'showtab' => true, 'showbutton' => true, 'image' => 'edit'), array('tab_id' => 'pmclasspage', 'page' => 'pmclasspage', 'params' => array('action' => 'default'), 'name' => get_string('course_classes', 'local_elisprogram'), 'showtab' => $numclasses > 0, 'showbutton' => $numclasses > 0, 'image' => 'class'), array('tab_id' => 'elem', 'page' => get_class($this), 'params' => array('action' => 'lelem'), 'name' => get_string('completion_elements', 'local_elisprogram'), 'showtab' => true, 'showbutton' => true, 'image' => 'grades'), array('tab_id' => 'coursecurriculumpage', 'page' => 'coursecurriculumpage', 'name' => get_string('course_curricula', 'local_elisprogram'), 'showtab' => true, 'showbutton' => true, 'image' => 'curriculum'), array('tab_id' => 'course_rolepage', 'page' => 'course_rolepage', 'name' => get_string('roles', 'role'), 'showtab' => true, 'showbutton' => false, 'image' => 'tag'), array('tab_id' => 'course_enginepage', 'page' => 'course_enginepage', 'name' => get_string('results_engine', 'local_elisprogram'), 'showtab' => true, 'showbutton' => true, 'image' => 'calculator'), array('tab_id' => 'course_enginestatuspage', 'page' => 'course_enginestatuspage', 'name' => get_string('status_report', 'local_elisprogram'), 'showtab' => false, 'showbutton' => false), array('tab_id' => 'course_certificatepage', 'page' => 'course_certificatepage', 'name' => get_string('certificate_settings', 'local_elisprogram'), 'showtab' => $showcoursecerttab, 'showbutton' => $showcoursecerttab, 'image' => 'certificate'), array('tab_id' => 'delete', 'page' => get_class($this), 'params' => array('action' => 'delete'), 'name' => get_string('delete_label', 'local_elisprogram'), 'showbutton' => true, 'image' => 'delete')); parent::__construct($params); }
/** * Method to return sql filter for table * @return array the filter sql and sql parameters */ public function table_filter() { $contexts = pmclasspage::get_contexts('local/elisprogram:class_view'); if ($contexts != null) { $filterobj = $contexts->get_filter('id', 'class'); return $filterobj->get_sql(false, 'cc'); } return array('FALSE', array()); }