コード例 #1
0
 /**
  * Override this method to return the main pulldown option
  * @return array List of options keyed on id
  */
 function get_main_options()
 {
     global $USER;
     $courses_array = array('0' => get_string('selectacourse', 'block_curr_admin'));
     // Fetch array of allowed classes
     $contexts = get_contexts_by_capability_for_user('class', 'block/php_report:view', $USER->id);
     if ($records = cmclass_get_listing('crsname', 'ASC', 0, 0, '', '', 0, false, $contexts)) {
         $allowed_courses = array();
         foreach ($records as $record) {
             if (!in_array($record->courseid, $allowed_courses)) {
                 $allowed_courses[] = $record->courseid;
             }
         }
         sort($allowed_courses);
         // Fetch array of all courses
         $course_list = course_get_listing('name', 'ASC', 0, 0, '', '');
         foreach ($course_list as $course_obj) {
             // Only show courses that are associated with an allowed class
             if (in_array($course_obj->id, $allowed_courses)) {
                 $courses_array[$course_obj->id] = strlen($course_obj->name) > 80 ? substr($course_obj->name, 0, 80) . '...' : $course_obj->name;
             }
         }
     }
     return $courses_array;
 }
コード例 #2
0
 */
/**
 * Generate a JSON data set containing all the classes belonging to the specified course
 */
require_once '../../../../config.php';
// Moodle
require_once $CFG->dirroot . '/curriculum/config.php';
// Curriculum
require_once $CFG->dirroot . '/blocks/php_report/instances/class_roster/class_roster_report.class.php';
require_once $CFG->dirroot . '/curriculum/lib/contexts.php';
require_once $CFG->dirroot . '/curriculum/lib/cmclass.class.php';
if (!isloggedin() || isguestuser()) {
    mtrace("ERROR: must be logged in!");
    exit;
}
$ids = optional_param('id', '', PARAM_INT);
if (!is_array($ids)) {
    $ids = array($ids);
}
$choices_array = array(array('', get_string('selectclass', 'rlreport_class_roster')));
if (count($ids) > 0) {
    foreach ($ids as $id) {
        $contexts = get_contexts_by_capability_for_user('class', 'block/php_report:view', $USER->id);
        if ($records = cmclass_get_listing('idnumber', 'ASC', 0, 0, '', '', $id, false, $contexts)) {
            foreach ($records as $record) {
                $choices_array[] = array($record->id, $record->idnumber);
            }
        }
    }
}
echo json_encode($choices_array);
コード例 #3
0
 function action_add()
 {
     $crsid = cm_get_param('crsid', 0);
     if ($classes = cmclass_get_listing('startdate', 'ASC', 0, 0, '', '', $crsid, true)) {
         $table = new addclasstable($classes);
         $table->print_table();
     } else {
         print_heading(get_string('no_classes_available', 'block_curr_admin'));
     }
 }
コード例 #4
0
ファイル: lib.php プロジェクト: remotelearner/elis.cm
/**
 * 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 curr_admin tree, or 0 if none
 * @param   int             $parent_curriculum_id  The last curriculum passed going down the curr_admin 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_curr_admin_load_menu_children_course($id, $parent_cluster_id, $parent_curriculum_id, $num_block_icons, $parent_path = '')
{
    global $CFG;
    // page dependencies
    require_once $CFG->dirroot . '/curriculum/cmclasspage.class.php';
    $result_items = array();
    /*****************************************
     * Course - Class Associations
     *****************************************/
    $class_css_class = block_curr_admin_get_item_css_class('class_instance');
    // permissions filter
    $class_contexts = cmclasspage::get_contexts('block/curr_admin:class:view');
    $listing = cmclass_get_listing('crsname', 'asc', 0, $num_block_icons, '', '', $id, false, $class_contexts, $parent_cluster_id);
    if (!empty($listing)) {
        foreach ($listing as $item) {
            $item->clsname = $item->idnumber;
            $params = array('id' => $item->id, 'action' => 'view');
            $result_items[] = block_curr_admin_get_menu_item('cmclass', $item, 'root', $class_css_class, $parent_cluster_id, $parent_curriculum_id, $params, false, $parent_path);
        }
    }
    //summary item
    $num_records = cmclass_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_curr_admin_get_menu_summary_item('cmclass', $class_css_class, $num_records - $num_block_icons, $params, '', $parent_path);
    }
    return $result_items;
}
コード例 #5
0
 /**
  * Specifies available report filters
  * (empty by default but can be implemented by child class)
  *
  * @param   boolean  $init_data  If true, signal the report to load the
  *                               actual content of the filter objects
  *
  * @return  array                The list of available filters
  */
 function get_filters($init_data = true)
 {
     global $CFG;
     $filter_array = array();
     // Fetch array of allowed classes
     $classes_array = array();
     $contexts = get_contexts_by_capability_for_user('class', $this->access_capability, $this->userid);
     $cmclasses = cmclass_get_listing('crsname', 'ASC', 0, 0, '', '', 0, false, $contexts);
     foreach ($cmclasses as $cmclass) {
         $classes_array[$cmclass->id] = $cmclass->crsname . ' - ' . $cmclass->idnumber;
     }
     $filter_array[] = new generalized_filter_entry('classid', 'cls', 'id', get_string('filter_course_class', $this->lang_file), false, 'courseclassselect', array('default' => NULL, 'isrequired' => true, 'report_path' => $CFG->wwwroot . '/blocks/php_report/instances/class_roster/', 'help' => array('class_roster_courseclass_help', get_string('filter_course_class', $this->lang_file), 'block_php_report')));
     return $filter_array;
 }
コード例 #6
0
 function action_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' => get_string('class_course', 'block_curr_admin'), 'idnumber' => get_string('class_idnumber', 'block_curr_admin'), 'moodlecourse' => get_string('class_moodle_course', 'block_curr_admin'), 'startdate' => get_string('class_startdate', 'block_curr_admin'), 'enddate' => get_string('class_enddate', 'block_curr_admin'), 'starttime' => get_string('class_starttime', 'block_curr_admin'), 'endtime' => get_string('class_endtime', 'block_curr_admin'), 'maxstudents' => get_string('class_maxstudents', 'block_curr_admin'), 'envname' => get_string('environment', 'block_curr_admin'));
     $items = cmclass_get_listing($sort, $dir, $page * $perpage, $perpage, $namesearch, $alpha, $id, false, cmclasspage::get_contexts('block/curr_admin:class:view'), $parent_clusterid);
     $numitems = cmclass_count_records($namesearch, $alpha, $id, false, cmclasspage::get_contexts('block/curr_admin:class:view'), $parent_clusterid);
     cmclasspage::get_contexts('block/curr_admin:class:edit');
     cmclasspage::get_contexts('block/curr_admin:class:delete');
     if (!empty($id)) {
         $coursepage = new coursepage(array('id' => $id));
         $coursepage->print_tabs('cmclasspage', array('id' => $id));
     }
     $this->print_list_view($items, $numitems, $columns, $filter = null, $alphaflag = true, $searchflag = true);
 }