Пример #1
0
 /**
  * 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;
 }
Пример #2
0
    $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 . '&amp;mark=read"><img src="' . $OUTPUT->pix_url('t/markasread') . '" alt="' . $strmarkallread . '" class="iconsmall" /></a></span>';
                        } else {
                            $unreadlink = '<span class="read">0</span>';
                        }
                    }