Пример #1
0
 /**
  * Outputs the content of the widget
  *
  * @param array $args
  * @param array $instance
  */
 public function widget($args, $instance)
 {
     // outputs the content of the widget
     //Get args and output the title
     wp_register_style('moocview-widget-css', plugins_url('css/moocview-widget.css', __FILE__));
     wp_enqueue_style('moocview-widget-css');
     extract($args);
     echo $before_widget;
     $title = apply_filters('widget_title', $instance['title']);
     if ($title) {
         echo $before_title . $title . $after_title;
     }
     if ($instance['contenttype'] == '0') {
         $catlist = get_moodle_categories($this->moodle_ws_url, $this->moodle_site_token);
         foreach ($catlist as $category) {
             $langCourses = $category->coursecount == 1 ? __('course', 'moodle-courses-view') : __('courses', 'moodle-courses-view');
             echo "<div class='category'><a href='{$this->moodle_site}{$this->moocview_category_view_path}?{$this->moocview_category_id_par}={$category->id}'>{$category->name}</a> <br/>({$category->coursecount} {$langCourses})</div>";
         }
     } elseif ($instance['contenttype'] == '2') {
         $catcourses = get_moodle_categories_and_courses($this->moodle_ws_url, $this->moodle_site_token);
         foreach ($catcourses['courses'] as $cc) {
             $category = $cc['category'];
             echo "<div class='catcourses'>";
             $langCourses = $category->coursecount == 1 ? __('course', 'moodle-courses-view') : __('courses', 'moodle-courses-view');
             echo "<div class='cattitle'><a href='{$this->moodle_site}{$this->moocview_category_view_path}?{$this->moocview_category_id_par}={$category->id}'>{$category->name}</a> <br/>({$category->coursecount} {$langCourses})</div>";
             if ($category->coursecount > 0) {
                 echo "<ul class='courselist'>";
             }
             $i = 0;
             foreach ($cc['courses'] as $c) {
                 $i++;
                 if ($i <= $instance['maxcatcourses'] || $instance['maxcatcourses'] + 1 == $category->coursecount) {
                     echo "<li><a href='{$this->moodle_site}{$this->moocview_course_view_path}?{$this->moocview_course_id_par}={$c->id}'>{$c->fullname}</li>";
                 } else {
                     echo "<li class='morelink'><a href='{$instance['morelinkurl']}?{$instance['categoryparam']}={$category->id}'>" . __('More ...', 'moodle-courses-view') . "</li>";
                     break;
                 }
             }
             if ($category->coursecount > 0) {
                 echo "</ul>";
             }
             echo "</div>";
         }
     } else {
         $courses = get_moodle_courses($this->moodle_ws_url, $this->moodle_site_token);
         $i = 0;
         echo "<div class='catcourses'>";
         echo "<ul class='maincourselist'>";
         foreach ($courses as $c) {
             $i++;
             if ($i <= $instance['maxcatcourses']) {
                 echo "<li><a href='{$this->moodle_site}{$this->moocview_course_view_path}?{$this->moocview_course_id_par}={$c->id}'>{$c->fullname}</a></li>";
             } else {
                 echo "<li class='morelink'><a href='{$instance['morelinkurl']}'>" . __('More ...', 'moodle-courses-view') . "</li>";
                 break;
             }
         }
         echo "</ul></div>";
     }
 }
Пример #2
0
function print_course_mapping_options($course_mapping, $config, $err)
{
    if (isset($err['course_mapping_db'])) {
        foreach ($err['course_maping_db'] as $value) {
            echo '<tr><td colspan="4" style="color: red;text-align:center">';
            echo $value;
            echo '</td></tr>';
        }
    }
    if (array_key_exists('course_mapping', $err)) {
        echo '<tr><td colspan="4" style="color: red;text-align:center">';
        if (!empty($err['course_mapping']['saml'])) {
            echo "<p>" . get_string("auth_saml_duplicated_saml_data", "auth_saml") . implode(', ', $err['course_mapping']['saml']) . "</p>";
        }
        if (!empty($err['course_mapping']['lms'])) {
            echo get_string("auth_saml_duplicated_lms_data", "auth_saml") . implode(', ', $err['course_mapping']['lms']);
        }
        echo '</td></tr>';
    }
    if (array_key_exists('missed_course_mapping', $err)) {
        echo '<tr><td colspan="4" style="color: red;text-align:center">';
        echo get_string("auth_saml_missed_data", "auth_saml") . implode(', ', array_unique($err['missed_course_mapping']));
        echo '</td></tr>';
    }
    echo '<tr><td colspan="2" style="padding-left: 44px;">Moodle Course Id</td><td>SAML Course Id</td><td>SAML Course Period</td></tr>';
    //if this is a GET (no errors) read the values from the database
    $new_courses_total = optional_param('new_courses_total', FALSE, PARAM_INT);
    $read_from_db_only = $new_courses_total === FALSE;
    $moodle_courses = get_moodle_courses();
    foreach ($moodle_courses as $mcourse) {
        if (array_key_exists($mcourse, $course_mapping)) {
            $course_mapping_id = $course_mapping[$mcourse]['course_mapping_id'];
            $saml_course_id = $course_mapping[$mcourse]['saml_course_id'];
            $saml_course_period = $course_mapping[$mcourse]['saml_course_period'];
            $course_param = optional_param_array('course_' . $course_mapping_id, array(), PARAM_ALPHANUMEXT);
            echo '<tr ' . (isset($err['course_mapping']['lms']) && in_array($course_param[0], $err['course_mapping']['lms']) || isset($err['course_mapping']['saml']) && in_array($course_param[1] . '_' . $course_param[2], $err['course_mapping']['saml']) || isset($err['missed_course_mapping']) && array_key_exists($course_mapping_id, $err['missed_course_mapping']) ? 'style="background:red;"' : '') . '>';
            echo '<td colspan="2"><input style="margin-right: 20px;" type="checkbox"';
            echo 'name="course_mapping_id[]" value="' . $course_mapping_id . '">';
            echo '<input type="hidden" name="update_courses_id[]" value="' . $course_mapping_id . '">';
            echo '<select name="course_' . $course_mapping_id . '[]" >';
            foreach ($moodle_courses as $mcourse2) {
                echo '<option value="' . $mcourse2 . '" ' . (!$read_from_db_only && $course_param[0] == $mcourse2 || $read_from_db_only && $mcourse2 == $mcourse ? 'selected="selected"' : '') . ' >' . $mcourse2 . '</option>';
            }
            echo '</select></td>';
            $course_name = $read_from_db_only ? $saml_course_id : $course_param[1];
            $course_period = $read_from_db_only ? $saml_course_period : $course_param[2];
            echo '<td><input type="text" name="course_' . $course_mapping_id . '[]" value="' . $course_name . '" /></td>';
            echo '<td><input type="text" name="course_' . $course_mapping_id . '[]" value="' . $course_period . '" /></td>';
            echo '</tr>';
        }
    }
    //New mappings
    echo '<tr><td colspan="4"><hr /></td></tr>';
    $i = 0;
    if ($read_from_db_only) {
        while ($i <= $new_courses_total) {
            $new_course_param = optional_param_array('new_course_' . $i, array(), PARAM_ALPHANUMEXT);
            echo '<tr ' . (empty($new_course_param[1]) && empty($new_course_param[2]) ? 'style="display:none;"' : (isset($err['course_mapping']['lms']) && in_array($new_course_param[0], $err['course_mapping']['lms']) || isset($err['course_mapping']['saml']) && in_array($new_course_param[1] . '_' . $new_course_param[2], $err['course_mapping']['saml']) ? 'style="background:red;"' : '')) . ' >';
            echo '<td colspan="2" style="padding-left: 38px;"><select id="newcourse_select" name="new_course' . $i . '[]">';
            foreach ($moodle_courses as $mcourse) {
                $is_selected = $new_course_param[0] === $mcourse;
                echo '<option value="' . $mcourse . '" ' . ($is_selected ? 'selected="selected"' : '') . ' >' . $mcourse . '</option>';
            }
            echo '</select>';
            echo '<input id="new_courses_total" type="hidden" name="new_courses_total" value="' . $i . '" /></td>';
            echo '<td><input id="newcourse_saml_id" type="text" name="new_course' . $i . '[]" value="' . $new_course_param[1] . '" /></td>';
            echo '<td><input id="newcourse_saml_period" type="text" name="new_course' . $i . '[]" value="' . $new_course_param[2] . '" /></td>';
            echo '</tr>';
            $i++;
        }
    }
    echo '<tr><td colspan="2" style="padding-left: 38px;"><select id="newcourse_select" name="new_course' . $i . '[]">';
    foreach ($moodle_courses as $mcourse) {
        echo '<option value="' . $mcourse . '"  >' . $mcourse . '</option>';
    }
    echo '</select>';
    echo '<input id="new_courses_total" type="hidden" name="new_courses_total" value="' . $i . '" /></td>';
    echo '<td><input id="newcourse_saml_id" type="text" name="new_course' . $i . '[]" value="" /></td>';
    echo '<td><input id="newcourse_saml_period" type="text" name="new_course' . $i . '[]" value="" />';
    echo '<input type="button" name="new" value="+" onclick="addNewField(\'newcourses\',\'new_course\',\'course\')" /></td></tr>';
}
Пример #3
0
/**
 * Get categories with their courses from moodle site. 
 * @param string $moodle_site the moodle site from where to get course categories
 * @param string $moodle_token the token of the moodle web service user 
 * @param integer $catid the moodle category id 
 * @return array an array ('courses', 'cids') containing in 'courses' for each category the corresponding courses and in 'cids' the list af all courses ids 
*/
function get_moodle_categories_and_courses($moodle_site, $moodle_token, $catid = null)
{
    $cats = get_moodle_categories($moodle_site, $moodle_token);
    $courses = get_moodle_courses($moodle_site, $moodle_token);
    $courseids = array();
    foreach ($cats as $ca) {
        if (is_null($catid) || $ca->id == $catid) {
            $catsarr[$ca->id]['category'] = $ca;
            $catsarr[$ca->id]['courses'] = array();
        }
    }
    foreach ($courses as $co) {
        if (key_exists('category', $catsarr[$co->categoryid])) {
            $catsarr[$co->categoryid]['courses'][] = $co;
            $courseids[] = $co->id;
        }
    }
    return array('courses' => $catsarr, 'cids' => $courseids);
}