Beispiel #1
0
/**
 * Notify that a glossary entry was viewed.
 *
 * This will trigger relevant events.
 *
 * @param stdClass $entry    The entry object.
 * @param stdClass $context  The context object.
 * @since Moodle 3.1
 */
function glossary_entry_view($entry, $context)
{
    // Trigger the entry viewed event.
    $event = \mod_glossary\event\entry_viewed::create(array('objectid' => $entry->id, 'context' => $context));
    $event->add_record_snapshot('glossary_entries', $entry);
    $event->trigger();
}
Beispiel #2
0
 public function test_entry_viewed()
 {
     // There is no proper API to call to trigger this event, so what we are
     // doing here is simply making sure that the events returns the right information.
     $this->setAdminUser();
     $course = $this->getDataGenerator()->create_course();
     $glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course));
     $context = context_module::instance($glossary->cmid);
     $glossarygenerator = $this->getDataGenerator()->get_plugin_generator('mod_glossary');
     $entry = $glossarygenerator->create_content($glossary);
     $event = \mod_glossary\event\entry_viewed::create(array('objectid' => $entry->id, 'context' => $context));
     $sink = $this->redirectEvents();
     $event->trigger();
     $events = $sink->get_events();
     $this->assertCount(1, $events);
     $event = reset($events);
     // Checking that the event contains the expected values.
     $this->assertInstanceOf('\\mod_glossary\\event\\entry_viewed', $event);
     $this->assertEquals(CONTEXT_MODULE, $event->contextlevel);
     $this->assertEquals($glossary->cmid, $event->contextinstanceid);
     $expected = array($course->id, "glossary", "view entry", "showentry.php?eid={$entry->id}", $entry->id, $glossary->cmid);
     $this->assertEventLegacyLogData($expected, $event);
     $this->assertEventContextNotUsed($event);
 }
Beispiel #3
0
        $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 = "<p style=\"text-align:right\">&raquo;&nbsp;<a href=\"{$CFG->wwwroot}/mod/glossary/view.php?g={$entry->glossaryid}\">" . format_string($entry->glossaryname, true) . "</a></p>";
        $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