Exemplo n.º 1
0
 public static function get_public_galleries_by_contextid($contextid, $prefix = true)
 {
     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();
     foreach ($collections as $collection) {
         $collids[] = $collection->id;
     }
     if (empty($collids)) {
         return array();
     }
     $concat = $prefix ? $DB->sql_concat('mg.name', "' > '", 'g.name') : 'g.name';
     list($insql, $params) = $DB->get_in_or_equal($collids, SQL_PARAMS_NAMED);
     $sql = "SELECT g.*,\n                {$concat} AS label\n                FROM {mediagallery_gallery} g\n                JOIN {mediagallery} mg on (mg.id = g.instanceid)\n                WHERE instanceid {$insql}";
     $list = array();
     foreach ($DB->get_records_sql($sql, $params) as $record) {
         $gallery = new gallery($record);
         if ($gallery->user_can_view()) {
             $list[$gallery->id] = $record->label;
         }
     }
     return $list;
 }