}
// We're going to preload the context for the subcategory as we know that we
// need it later on for formatting.
-list($ctxselect, $ctxjoin) = context_instance_preload_sql('cc.id', CONTEXT_COURSECAT, 'ctx');
-$sql = "SELECT cc.* $ctxselect
+
+$ctxselect = context_helper::get_preload_record_columns_sql('ctx');
+$sql = "SELECT cc.*, $ctxselect
FROM {course_categories} cc
- $ctxjoin
- WHERE cc.parent = :parentid
+ JOIN {context} ctx ON cc.id = ctx.instanceid
+ WHERE cc.parent = :parentid AND
+ ctx.contextlevel = :contextlevel
$categorywhere
ORDER BY cc.sortorder ASC";
-$subcategories = $DB->get_recordset_sql($sql, array('parentid' => $category->id));
+$subcategories = $DB->get_recordset_sql($sql, array('parentid' => $category->id, 'contextlevel' => CONTEXT_COURSECAT));
// Prepare a table to display the sub categories.
$table = new html_table;
$table->attributes = array('border' => '0', 'cellspacing' => '2', 'cellpadding' => '4', 'class' => 'generalbox boxaligncenter category_subcategories');
$table->data = array();
foreach ($subcategories as $subcategory) {
// Preload the context we will need it to format the category name shortly.
- context_instance_preload($subcategory);
+ context_helper::preload_from_record($subcategory);
$context = get_context_instance(CONTEXT_COURSECAT, $subcategory->id);
// Prepare the things we need to create a link to the subcategory
$attributes = $subcategory->visible ? array() : array('class' => 'dimmed');
$categoryselect = '';
}
- list($ccselect, $ccjoin) = context_instance_preload_sql('c.id', CONTEXT_COURSE, 'ctx');
+ $ccselect = context_helper::get_preload_record_columns_sql('ctx');
+ $params['contextlevel'] = CONTEXT_COURSE;
list($courseids, $courseparams) = $DB->get_in_or_equal(array_keys($this->addedcourses) + array(SITEID), SQL_PARAMS_NAMED, 'lcourse', false);
- $sql = "SELECT c.id, c.sortorder, c.visible, c.fullname, c.shortname, c.category, cat.path AS categorypath $ccselect
+ $sql = "SELECT c.id, c.sortorder, c.visible, c.fullname, c.shortname, c.category, cat.path AS categorypath, $ccselect
FROM {course} c
- $ccjoin
+ JOIN {context} ctx ON c.id = ctx.instanceid
LEFT JOIN {course_categories} cat ON cat.id=c.category
- WHERE c.id {$courseids} {$categoryselect}
+ WHERE c.id {$courseids} AND
+ ctx.contextlevel = :contextlevel
+ {$categoryselect}
ORDER BY c.sortorder ASC";
$limit = 20;
if (!empty($CFG->navcourselimit)) {
$coursenodes = array();
foreach ($courses as $course) {
- context_instance_preload($course);
+ context_helper::preload_from_record($course);
$coursenodes[$course->id] = $this->add_course($course);
}
return $coursenodes;
$user = $USER;
} else if (!is_object($user)) {
// If the user is not an object then get them from the database
- list($select, $join) = context_instance_preload_sql('u.id', CONTEXT_USER, 'ctx');
- $sql = "SELECT u.* $select FROM {user} u $join WHERE u.id = :userid";
- $user = $DB->get_record_sql($sql, array('userid' => (int)$user), MUST_EXIST);
- context_instance_preload($user);
+ $select = context_helper::get_preload_record_columns_sql('ctx');
+ $sql = "SELECT u.*, $select
+ FROM {user} u
+ JOIN {context} ctx ON u.id = ctx.instanceid
+ WHERE u.id = :userid AND
+ ctx.contextlevel = :contextlevel";
+ $user = $DB->get_record_sql($sql, array('userid' => (int)$user, 'contextlevel' => CONTEXT_USER), MUST_EXIST);
+ context_helper::preload_from_record($user);
}
$iscurrentuser = ($user->id == $USER->id);
if (!empty($this->page->course->id) && $this->page->course->id == $courseid) {
$course = $this->page->course;
} else {
- list($select, $join) = context_instance_preload_sql('c.id', CONTEXT_COURSE, 'ctx');
- $sql = "SELECT c.* $select FROM {course} c $join WHERE c.id = :courseid";
- $course = $DB->get_record_sql($sql, array('courseid' => $courseid), MUST_EXIST);
- context_instance_preload($course);
+ $select = context_helper::get_preload_record_columns_sql('ctx');
+ $sql = "SELECT c.*, $select
+ FROM {course} c
+ JOIN {context} ctx ON c.id = ctx.instanceid
+ WHERE c.id = :courseid AND ctx.contextlevel = :contextlevel";
+ $params = array('courseid' => $courseid, 'contextlevel' => CONTEXT_COURSE);
+ $course = $DB->get_record_sql($sql, $params, MUST_EXIST);
+ context_helper::preload_from_record($course);
}
} else {
$course = $SITE;
$user = $USER;
$usercontext = get_context_instance(CONTEXT_USER, $user->id); // User context
} else {
-
- list($select, $join) = context_instance_preload_sql('u.id', CONTEXT_USER, 'ctx');
- $sql = "SELECT u.* $select FROM {user} u $join WHERE u.id = :userid";
- $user = $DB->get_record_sql($sql, array('userid' => $userid), IGNORE_MISSING);
+ $select = context_helper::get_preload_record_columns_sql('ctx');
+ $sql = "SELECT u.*, $select
+ FROM {user} u
+ JOIN {context} ctx ON u.id = ctx.instanceid
+ WHERE u.id = :userid AND ctx.contextlevel = :contextlevel";
+ $params = array('userid' => $userid, 'contextlevel' => CONTEXT_USER);
+ $user = $DB->get_record_sql($sql, $params, IGNORE_MISSING);
if (!$user) {
return false;
}
- context_instance_preload($user);
+ context_helper::preload_from_record($user);
// Check that the user can view the profile
$usercontext = get_context_instance(CONTEXT_USER, $user->id); // User context