/** * Called when viewing course page. Shows extra details after the link if * enabled. * * @param cm_info $cm Course module information */ function resource_cm_info_view(cm_info $cm) { global $CFG; require_once($CFG->dirroot . '/mod/resource/locallib.php'); $resource = (object)array('displayoptions' => $cm->customdata); $details = resource_get_optional_details($resource, $cm); if ($details) { $cm->set_after_link(' ' . html_writer::tag('span', $details, array('class' => 'resourcelinkdetails'))); } }
/** * Print resource introduction. * @param object $resource * @param object $cm * @param object $course * @param bool $ignoresettings print even if not specified in modedit * @return void */ function resource_print_intro($resource, $cm, $course, $ignoresettings = false) { global $OUTPUT; $options = empty($resource->displayoptions) ? array() : unserialize($resource->displayoptions); $extraintro = resource_get_optional_details($resource, $cm); if ($extraintro) { // Put a paragaph tag around the details $extraintro = html_writer::tag('p', $extraintro, array('class' => 'resourcedetails')); } if ($ignoresettings || !empty($options['printintro']) || $extraintro) { $gotintro = trim(strip_tags($resource->intro)); if ($gotintro || $extraintro) { echo $OUTPUT->box_start('mod_introbox', 'resourceintro'); if ($gotintro) { echo format_module_intro('resource', $resource, $cm->id); } echo $extraintro; echo $OUTPUT->box_end(); } } }
/** * Given a course_module object, this function returns any * "extra" information that may be needed when printing * this activity in a course listing. * * See {@link get_array_of_activities()} in course/lib.php * * @param cm_info $coursemodule * @return cached_cm_info info */ function resource_get_coursemodule_info($coursemodule) { global $CFG, $DB; require_once("$CFG->libdir/filelib.php"); require_once("$CFG->dirroot/mod/resource/locallib.php"); require_once($CFG->libdir.'/completionlib.php'); $context = context_module::instance($coursemodule->id); if (!$resource = $DB->get_record('resource', array('id'=>$coursemodule->instance), 'id, name, display, displayoptions, tobemigrated, revision, intro, introformat')) { return NULL; } $info = new cached_cm_info(); $info->name = $resource->name; if ($coursemodule->showdescription) { // Convert intro to html. Do not filter cached version, filters run at display time. $info->content = format_module_intro('resource', $resource, $coursemodule->id, false); } if ($resource->tobemigrated) { $info->icon ='i/cross_red_big'; return $info; } $fs = get_file_storage(); $files = $fs->get_area_files($context->id, 'mod_resource', 'content', 0, 'sortorder DESC, id ASC', false); // TODO: this is not very efficient!! if (count($files) >= 1) { $mainfile = reset($files); $info->icon = file_file_icon($mainfile, 24); $resource->mainfile = $mainfile->get_filename(); } $display = resource_get_final_display_type($resource); if ($display == RESOURCELIB_DISPLAY_POPUP) { $fullurl = "$CFG->wwwroot/mod/resource/view.php?id=$coursemodule->id&redirect=1"; $options = empty($resource->displayoptions) ? array() : unserialize($resource->displayoptions); $width = empty($options['popupwidth']) ? 620 : $options['popupwidth']; $height = empty($options['popupheight']) ? 450 : $options['popupheight']; $wh = "width=$width,height=$height,toolbar=no,location=no,menubar=no,copyhistory=no,status=no,directories=no,scrollbars=yes,resizable=yes"; $info->onclick = "window.open('$fullurl', '', '$wh'); return false;"; } else if ($display == RESOURCELIB_DISPLAY_NEW) { $fullurl = "$CFG->wwwroot/mod/resource/view.php?id=$coursemodule->id&redirect=1"; $info->onclick = "window.open('$fullurl'); return false;"; } // If any optional extra details are turned on, store in custom data $info->customdata = resource_get_optional_details($resource, $coursemodule); return $info; }