/** * Pre-uninstall hook. * This is intended for disabling of plugin, some DB table purging, etc. * Converts all linked files to standard files when repository is removed * and cleans up all records in the DB for that repository. */ public function uninstall_cleanup() { global $CFG; require_once $CFG->dirroot . '/repository/lib.php'; $repo = \repository::get_type_by_typename($this->name); if ($repo) { $repo->delete(true); } parent::uninstall_cleanup(); }
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; }