/** * Returns a list of quoras in a provided list of courses, * if no list is provided all quoras that the user can view * will be returned. * * @param array $courseids the course ids * @return array the quora details * @since Moodle 2.5 */ public static function get_quoras_by_courses($courseids = array()) { global $CFG; require_once $CFG->dirroot . "/mod/quora/lib.php"; $params = self::validate_parameters(self::get_quoras_by_courses_parameters(), array('courseids' => $courseids)); if (empty($params['courseids'])) { // Get all the courses the user can view. $courseids = array_keys(enrol_get_my_courses()); } else { $courseids = $params['courseids']; } // Array to store the quoras to return. $arrquoras = array(); // Ensure there are courseids to loop through. if (!empty($courseids)) { // Array of the courses we are going to retrieve the quoras from. $dbcourses = array(); // Mod info for courses. $modinfocourses = array(); // Go through the courseids and return the quoras. foreach ($courseids as $courseid) { // Check the user can function in this context. try { $context = context_course::instance($courseid); self::validate_context($context); // Get the modinfo for the course. $modinfocourses[$courseid] = get_fast_modinfo($courseid); $dbcourses[$courseid] = $modinfocourses[$courseid]->get_course(); } catch (Exception $e) { continue; } } // Get the quoras in this course. This function checks users visibility permissions. if ($quoras = get_all_instances_in_courses("quora", $dbcourses)) { foreach ($quoras as $quora) { $course = $dbcourses[$quora->course]; $cm = $modinfocourses[$course->id]->get_cm($quora->coursemodule); $context = context_module::instance($cm->id); // Skip quoras we are not allowed to see discussions. if (!has_capability('mod/quora:viewdiscussion', $context)) { continue; } // Format the intro before being returning using the format setting. list($quora->intro, $quora->introformat) = external_format_text($quora->intro, $quora->introformat, $context->id, 'mod_quora', 'intro', 0); // Discussions count. This function does static request cache. $quora->numdiscussions = quora_count_discussions($quora, $cm, $course); $quora->cmid = $quora->coursemodule; // Add the quora to the array to return. $arrquoras[$quora->id] = $quora; } } } return $arrquoras; }
$learningtable->align[] = 'center'; } /// Now let's process the learning quoras if ($course->id != SITEID) { // Only real courses have learning quoras // 'format_.'$course->format only applicable when not SITEID (format_site is not a format) $strsectionname = get_string('sectionname', 'format_' . $course->format); // Add extra field for section number, at the front array_unshift($learningtable->head, $strsectionname); array_unshift($learningtable->align, 'center'); if ($learningquoras) { $currentsection = ''; foreach ($learningquoras as $quora) { $cm = $modinfo->instances['quora'][$quora->id]; $context = context_module::instance($cm->id); $count = quora_count_discussions($quora, $cm, $course); if ($usetracking) { if ($quora->trackingtype == FORUM_TRACKING_OFF) { $unreadlink = '-'; $trackedlink = '-'; } else { if (isset($untracked[$quora->id])) { $unreadlink = '-'; } else { if ($unread = quora_tp_count_quora_unread_posts($cm, $course)) { $unreadlink = '<span class="unread"><a href="view.php?f=' . $quora->id . '">' . $unread . '</a>'; $unreadlink .= '<a title="' . $strmarkallread . '" href="markposts.php?f=' . $quora->id . '&mark=read"><img src="' . $OUTPUT->pix_url('t/markasread') . '" alt="' . $strmarkallread . '" class="iconsmall" /></a></span>'; } else { $unreadlink = '<span class="read">0</span>'; } }