Exemplo n.º 1
0
 public static function get_my_galleries_by_contextid($contextid)
 {
     global $DB;
     $context = \context::instance_by_id($contextid);
     if (!($coursecontext = $context->get_course_context(false))) {
         return array();
     }
     $course = $DB->get_record('course', array('id' => $coursecontext->instanceid), '*', MUST_EXIST);
     $collections = get_all_instances_in_course('mediagallery', $course);
     $collids = array();
     $theboxenabled = false;
     foreach ($collections as $collection) {
         if (!$theboxenabled && $collection->mode == 'thebox') {
             continue;
         }
         $collids[] = $collection->id;
     }
     if (empty($collids)) {
         return array();
     }
     list($insql, $params) = $DB->get_in_or_equal($collids, SQL_PARAMS_NAMED);
     // If theBox is removed, or set to hidden, don't display theBox content.
     $select = '';
     $repos = \core\plugininfo\repository::get_enabled_plugins();
     if (!isset($repos['thebox']) || !$theboxenabled) {
         $select .= " AND g.mode != 'thebox'";
     }
     $sql = "SELECT g.*,\n                " . $DB->sql_concat('mg.name', "' > '", 'g.name') . " AS label\n                FROM {mediagallery_gallery} g\n                JOIN {mediagallery} mg on (mg.id = g.instanceid)\n                WHERE instanceid {$insql} {$select}";
     $list = array();
     foreach ($DB->get_records_sql($sql, $params) as $record) {
         $gallery = new gallery($record);
         if ($gallery->user_can_edit(null, true)) {
             $list[$gallery->id] = $record->label;
         }
     }
     return $list;
 }