Exemplo n.º 1
0
 /**
  * Get a context instance as an object, from a given context id.
  *
  * @static
  * @param int $id context id
  * @param int $strictness IGNORE_MISSING means compatible mode, false returned if record not found, debug message if more found;
  *                        MUST_EXIST means throw exception if no record found
  * @return context|bool the context object or false if not found
  */
 public static function instance_by_id($id, $strictness = MUST_EXIST)
 {
     global $DB;
     if (get_called_class() !== 'context' and get_called_class() !== 'context_helper') {
         // some devs might confuse context->id and instanceid, better prevent these mistakes completely
         throw new coding_exception('use only context::instance_by_id() for real context levels use ::instance() methods');
     }
     if ($id == SYSCONTEXTID) {
         return context_system::instance(0, $strictness);
     }
     if (is_array($id) or is_object($id) or empty($id)) {
         throw new coding_exception('Invalid context id specified context::instance_by_id()');
     }
     if ($context = context::cache_get_by_id($id)) {
         return $context;
     }
     if ($record = $DB->get_record('context', array('id' => $id), '*', $strictness)) {
         return context::create_instance_from_record($record);
     }
     return false;
 }