Exemplo n.º 1
0
 /**
  * Create missing context instances at block context level
  * @static
  */
 protected static function create_level_instances()
 {
     global $DB;
     $sql = "SELECT " . CONTEXT_BLOCK . ", bi.id\n                  FROM {block_instances} bi\n                 WHERE NOT EXISTS (SELECT 'x'\n                                     FROM {context} cx\n                                    WHERE bi.id = cx.instanceid AND cx.contextlevel=" . CONTEXT_BLOCK . ")";
     $contextdata = $DB->get_recordset_sql($sql);
     foreach ($contextdata as $context) {
         context::insert_context_record(CONTEXT_BLOCK, $context->id, null);
     }
     $contextdata->close();
 }
Exemplo n.º 2
0
 /**
  * Returns block context instance.
  *
  * @static
  * @param int $instanceid
  * @param int $strictness
  * @return context_block context instance
  */
 public static function instance($instanceid, $strictness = MUST_EXIST)
 {
     global $DB;
     if ($context = context::cache_get(CONTEXT_BLOCK, $instanceid)) {
         return $context;
     }
     if (!($record = $DB->get_record('context', array('contextlevel' => CONTEXT_BLOCK, 'instanceid' => $instanceid)))) {
         if ($bi = $DB->get_record('block_instances', array('id' => $instanceid), 'id,parentcontextid', $strictness)) {
             $parentcontext = context::instance_by_id($bi->parentcontextid);
             $record = context::insert_context_record(CONTEXT_BLOCK, $bi->id, $parentcontext->path);
         }
     }
     if ($record) {
         $context = new context_block($record);
         context::cache_add($context);
         return $context;
     }
     return false;
 }
Exemplo n.º 3
0
    /**
     * Returns costcenter context instance.
     *
     * @static
     * @param int $instanceid
     * @param int $strictness
     * @return context_costcenter context instance
     */
    public static function instance($instanceid, $strictness = MUST_EXIST) {
        global $DB;

        if ($context = context::cache_get(CONTEXT_COSTCENTER, $instanceid)) {
            return $context;
        }

        if (!$record = $DB->get_record('context', array('contextlevel' => CONTEXT_COSTCENTER, 'instanceid' => $instanceid))) {
            if ($costcenter = $DB->get_record('local_costcenter', array('id' => $instanceid), 'id,parentid', $strictness)) {
                if ($costcenter->parentid) {
                    $parentcontext = context_costcenter::instance($costcenter->parentid);
                    $record = context::insert_context_record(CONTEXT_COSTCENTER, $costcenter->id, $parentcontext->path);
                } else {
                    $record = context::insert_context_record(CONTEXT_COSTCENTER, $costcenter->id, '/' . SYSCONTEXTID, 0);
                }
            }
        }

        if ($record) {
            $context = new context_costcenter($record);
            context::cache_add($context);
            return $context;
        }

        return false;
    }