-<?php // $Id$
+<?php
+ // $Id$
///////////////////////////////////////////////////////////////////////////
// //
global $DB;
//delete all instances of this type
- $instances = repository_get_instances(null,null,false,$this->_typename);
+ $instances = repository_get_instances(array(),null,false,$this->_typename);
foreach($instances as $instance){
$instance->delete();
}
* @global object $DB
* @global object $CFG
* @global object $USER
- * @param object $context
+ * @param object $contexts contexts for which the instances are set
* @param integer $userid
* @param boolean $onlyvisible if visible == true, return visible instances only,
* otherwise, return all instances
* @param string $type a type name to retrieve
* @return array repository instances
*/
-function repository_get_instances($context=null, $userid = null, $onlyvisible = true, $type=null, $nositeinstances=false){
+function repository_get_instances($contexts=array(), $userid = null, $onlyvisible = true, $type=null){
global $DB, $CFG, $USER;
$params = array();
$sql = 'SELECT i.*, r.type AS repositorytype, r.sortorder, r.visible FROM {repository} r, {repository_instances} i WHERE ';
$sql .= ' AND (i.userid = 0 or i.userid = ?)';
$params[] = $userid;
}
- if (!empty($context)){
- if($context->id == SYSCONTEXTID) {
- $sql .= ' AND (i.contextid = ?)';
- $params[] = SYSCONTEXTID;
+ foreach ($contexts as $context) {
+ if (empty($firstcontext)){
+ $firstcontext = true;
+ $sql .= ' AND ((i.contextid = ?)';
} else {
- if ($nositeinstances) {
- $sql .= ' AND i.contextid = ?';
- } else {
- $sql .= ' AND (i.contextid = ? or i.contextid = ?)';
- $params[] = SYSCONTEXTID;
- }
- $params[] = $context->id;
+ $sql .= ' OR (i.contextid = ?)';
}
+ $params[] = $context->id;
}
+ if ($firstcontext) {
+ $sql .=')';
+ }
+
if($onlyvisible == true) {
$sql .= ' AND (r.visible = 1)';
}
})();
EOD;
- $repos = repository_get_instances($context);
+ $repos = repository_get_instances(array($context,get_system_context()));
foreach($repos as $repo) {
$js .= "\r\n";
$js .= 'repository_client_'.$suffix.'.repos.push('.json_encode($repo->ajax_info()).');'."\n";
$baseurl = $CFG->wwwroot . '/repository/manage_instances.php?contextid=' . $context->id . '&sesskey=' . sesskey();
}
-
+
$namestr = get_string('name');
$pluginstr = get_string('plugin', 'repository');
$settingsstr = get_string('settings');
//want to display only visible instances, but for every type types. The repository_get_instances()
//third parameter displays only visible type. The fifth parameter is a trick that return
//instances of the $context + systemcontext.
- $instances = repository_get_instances($context,null,!$admin,$typename, !$admin);
+ $instances = repository_get_instances(array($context),null,!$admin,$typename);
$instancesnumber = count($instances);
$alreadyplugins = array();
$table = new StdClass;
$delete = optional_param('delete', 0, PARAM_INT);
$sure = optional_param('sure', '', PARAM_ALPHA);
$contextid = optional_param('contextid', 0, PARAM_INT);
-
+//$userid = optional_param('userid', 0, PARAM_INT);
$display = true; // fall through to normal display
if ($edit){
print_error('invalidcourseid');
}
}
+else {
+ $pagename = get_string("personalrepositories",'repository');
+ //is the user looking at its own repository instances
+ if ($USER->id != $context->instanceid){
+ print_error('notyourinstances', 'repository');
+ }
+ $user = $USER;
+}
$baseurl = $CFG->wwwroot . '/repository/manage_instances.php?contextid=' . $contextid . '&sesskey='. sesskey();
'type' => 'misc');
$navlinks[] = array('name' => $pagename,
'link' => null,
- 'type' => 'misc');
- $title = $pagename;
+ 'type' => 'misc');
$fullname = $course->fullname;
}
+else {
+ $fullname = fullname($user);
+ $strrepos = get_string('repositories', 'repository');
+ $navlinks[] = array('name' => $fullname, 'link' => $CFG->wwwroot . '/user/view.php?id=' . $user->id, 'type' => 'misc');
+ $navlinks[] = array('name' => $strrepos, 'link' => null, 'type' => 'misc');
+}
+
+$title = $pagename;
$navigation = build_navigation($navlinks);
//display page header
// Repository Tab
if (!empty($user) and $user->id == $USER->id) {
require_once($CFG->dirroot . '/repository/lib.php');
- $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id);
- if (repository_get_instances($coursecontext, $USER->id)) {
- $toprow[] = new tabobject('repositories', $CFG->wwwroot .'/user/repository.php', get_string('repositories', 'repository'));
+ //$coursecontext = get_context_instance(CONTEXT_COURSE, $course->id);
+ $usercontext = get_context_instance(CONTEXT_USER,$user->id);
+ if (repository_get_instances($usercontext, $USER->id)) {
+ $toprow[] = new tabobject('repositories', $CFG->wwwroot .'/repository/manage_instances.php?contextid='.$usercontext->id, get_string('repositories', 'repository'));
}
}