param('concept', $concept); $url->param('courseid', $courseid); $url->param('eid', $eid); $url->param('displayformat', $displayformat); $PAGE->set_url($url); if ($CFG->forcelogin) { require_login(); } if ($eid) { $entry = $DB->get_record('glossary_entries', array('id'=>$eid), '*', MUST_EXIST); $glossary = $DB->get_record('glossary', array('id'=>$entry->glossaryid), '*', MUST_EXIST); $cm = get_coursemodule_from_instance('glossary', $glossary->id, 0, false, MUST_EXIST); $course = $DB->get_record('course', array('id'=>$cm->course), '*', MUST_EXIST); require_course_login($course, true, $cm); $entry->glossaryname = $glossary->name; $entry->cmid = $cm->id; $entry->courseid = $cm->course; $entries = array($entry); } else if ($concept) { $course = $DB->get_record('course', array('id'=>$courseid), '*', MUST_EXIST); require_course_login($course); $entries = glossary_get_entries_search($concept, $courseid); } else { print_error('invalidelementid'); } $PAGE->set_pagelayout('incourse'); if ($entries) { foreach ($entries as $key => $entry) { // Need to get the course where the entry is, // in order to check for visibility/approve permissions there $entrycourse = $DB->get_record('course', array('id' => $entry->courseid), '*', MUST_EXIST); $modinfo = get_fast_modinfo($entrycourse); // make sure the entry is visible if (empty($modinfo->cms[$entry->cmid]->uservisible)) { unset($entries[$key]); continue; } // make sure the entry is approved (or approvable by current user) if (!$entry->approved and ($USER->id != $entry->userid)) { $context = context_module::instance($entry->cmid); if (!has_capability('mod/glossary:approve', $context)) { unset($entries[$key]); continue; } } $entries[$key]->footer = "
» wwwroot/mod/glossary/view.php?g=$entry->glossaryid\">".format_string($entry->glossaryname,true)."
"; $event = \mod_glossary\event\entry_viewed::create(array( 'objectid' => $entry->id, 'context' => $modinfo->cms[$entry->cmid]->context )); $event->add_record_snapshot('glossary_entries', $entry); $event->trigger(); } } if (!empty($courseid)) { $strglossaries = get_string('modulenameplural', 'glossary'); $strsearch = get_string('search'); $PAGE->navbar->add($strglossaries); $PAGE->navbar->add($strsearch); $PAGE->set_title(strip_tags("$course->shortname: $strglossaries $strsearch")); $PAGE->set_heading($course->fullname); echo $OUTPUT->header(); } else { echo $OUTPUT->header(); // Needs to be something here to allow linking back to the whole glossary } if ($entries) { glossary_print_dynaentry($courseid, $entries, $displayformat); } /// Show one reduced footer echo $OUTPUT->footer();