/** * Get an entry. * * @param int $id The entry ID. * @return array Containing entry and warnings. * @since Moodle 3.1 * @throws moodle_exception * @throws invalid_parameter_exception */ public static function get_entry_by_id($id) { global $DB, $USER; $params = self::validate_parameters(self::get_entry_by_id_parameters(), array('id' => $id)); $id = $params['id']; $warnings = array(); // Get and validate the glossary. $entry = $DB->get_record('glossary_entries', array('id' => $id), '*', MUST_EXIST); list($glossary, $context) = self::validate_glossary($entry->glossaryid); if (empty($entry->approved) && $entry->userid != $USER->id && !has_capability('mod/glossary:approve', $context)) { throw new invalid_parameter_exception('invalidentry'); } $entry = glossary_get_entry_by_id($id); self::fill_entry_details($entry, $context); return array('entry' => $entry, 'warnings' => $warnings); }
list($allentries, $count) = glossary_get_entries_to_approve($glossary, $context, $hook, $sortkey, $sortorder, $offset, $pagelimit); break; case GLOSSARY_STANDARD_VIEW: default: $fullpivot = false; switch ($mode) { case 'search': list($allentries, $count) = glossary_get_entries_by_search($glossary, $context, $hook, $fullsearch, $sortkey, $sortorder, $offset, $pagelimit); break; case 'term': $printpivot = false; list($allentries, $count) = glossary_get_entries_by_term($glossary, $context, $hook, $offset, $pagelimit); break; case 'entry': $printpivot = false; $entry = glossary_get_entry_by_id($hook); $canapprove = has_capability('mod/glossary:approve', $context); if ($entry && ($entry->glossaryid == $glossary->id || $entry->sourceglossaryid != $glossary->id) && (!empty($entry->approved) || $entry->userid == $USER->id || $canapprove)) { $count = 1; $allentries = array($entry); } else { $count = 0; $allentries = array(); } unset($entry, $canapprove); break; case 'letter': default: list($allentries, $count) = glossary_get_entries_by_letter($glossary, $context, $hook, $offset, $pagelimit); break; }