/** * 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>"; } }
/** * 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 . ': '; $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; } }