Ejemplo n.º 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>";
     }
 }
Ejemplo n.º 2
0
/**
 * Shortcode function of MooCView plugin. Returns a list of categories, courses and their teachers and descriptions. 
 * Depending on the viewtype parameter of the shortcode, the data is returmed formatted as a list according to css/moocview-page.css 
 * or as a datatable capable of being searched and sorted.
 * @param array $atts the shortcode parameters
 * @return string the output of the shortcode
*/
function detailed_course_list($atts)
{
    global $moodle_ws_url, $moodle_site_token, $moodle_site, $moocview_category_view_path, $moocview_category_id_par, $moocview_course_view_path, $moocview_course_id_par, $moocview_user_view_path, $moocview_user_id_par;
    add_action('wp_enqueue_scripts', 'moocview_scripts');
    wp_register_style('moocview-page-css', plugins_url('css/moocview-page.css', __FILE__));
    wp_enqueue_style('moocview-page-css');
    $pars = shortcode_atts(array('viewtype' => 'list'), $atts);
    $viewtype = $pars['viewtype'];
    $catid = isset($_GET['categoryid']) ? intval($_GET['categoryid']) : null;
    $out = "";
    $out_table = "<table id='detailed_courselist'>";
    $out_table .= '<thead><th>' . __('Category', 'moodle-courses-view') . '</th><th>' . __('Course', 'moodle-courses-view') . '</th><th>' . __('Teacher(s)', 'moodle-courses-view') . '</th></thead><tbody>';
    $coursesinfo = get_moodle_categories_and_courses($moodle_ws_url, $moodle_site_token, $catid);
    $course_teachers = get_moodle_course_teachers($moodle_ws_url, $moodle_site_token, $coursesinfo['cids']);
    $courses = $coursesinfo['courses'];
    foreach ($courses as $catid => $catcourse) {
        $out .= '<div class="categorycourses">';
        $out .= '<div class="categorytitle">';
        $langCourses = $catcourse['category']->coursecount == 1 ? __('course', 'moodle-courses-view') : __('courses', 'moodle-courses-view');
        $out .= "<a style='font-weight:bold;' href='{$moodle_site}{$moocview_category_view_path}?{$moocview_category_id_par}={$catcourse['category']->id}'>{$catcourse['category']->name}</a> ({$catcourse['category']->coursecount} {$langCourses})";
        $out .= "</div>";
        foreach ($catcourse['courses'] as $c) {
            $out .= '<div class="course">';
            $out .= '<div class="coursetitle">';
            $out_table .= '<tr>';
            $out .= "<a href='{$moodle_site}{$moocview_course_view_path}?{$moocview_course_id_par}={$c->id}'>{$c->fullname}</a>";
            $out_table .= '<td>' . "<a style='font-weight:bold;' href='{$moodle_site}{$moocview_category_view_path}?{$moocview_category_id_par}={$catcourse['category']->id}'>{$catcourse['category']->name}</a>" . '</td>';
            $out_table .= '<td>' . "<a href='{$moodle_site}{$moocview_course_view_path}?{$moocview_course_id_par}={$c->id}'>{$c->fullname}</a>" . '</td>';
            $out .= '</div>';
            $out .= "<div class='summary'>";
            //Remove expensive moodle web service call, which is performed per course
            //$summary = empty($c->summary)? get_moodle_course_content($moodle_ws_url, $moodle_site_token, $c->id):parse_images($c->summary, 'course', $c->id);
            $summary = parse_images($c->summary, 'course', $c->id);
            $out .= empty($summary) ? '<span class="emptysummary">' . __('No summary added to this course.', 'moodle-courses-view') . '</span>' : "<p>{$summary}</p>";
            $out .= '</div><div style="clear:both;"></div>';
            $out_table .= '<td>';
            $teachers = $course_teachers[$c->id];
            if (count($teachers) > 0) {
                $lbl = count($teachers) == 1 ? __('Teacher', 'moodle-courses-view') : __('Teachers', 'moodle-courses-view');
                $out .= '<div class="teacherlist"> ' . $lbl . ':&nbsp;';
                $i = 0;
                foreach ($teachers as $t) {
                    if ($i > 0) {
                        $out_table .= '</br>';
                    }
                    $profileimgurl = "";
                    if (!empty($t['img'])) {
                        $profileimgurl = get_remote_image($t['img'], 'user', $t['id']);
                    }
                    $profile_img = empty($profileimgurl) ? "" : '<img src="' . $profileimgurl . '" title="' . __('profile image of', 'moodle-courses-view') . ' ' . $t['name'] . '"/>';
                    $out .= '<a href="' . $moocview_user_view_path . '?' . $moocview_user_id_par . '=' . $t['id'] . '"><span class="teacher">' . $profile_img . $t['name'] . '</span></a>';
                    $out_table .= '<a href="' . $moocview_user_view_path . '?' . $moocview_user_id_par . '=' . $t['id'] . '">' . $t['name'] . '</a>';
                }
                $out .= '</div>';
            }
            $out_table .= '</td>';
            $out .= '</div>';
        }
        $out .= "</div>";
        $out_table .= '</tr>';
    }
    $out_table .= '</tbody></table>';
    if ($viewtype == 'table') {
        return $out_table;
    } else {
        return $out;
    }
}