public static function instance($dataformid) { if (!($instance = \mod_dataform_instance_store::instance($dataformid, 'notification_manager'))) { $instance = new mod_dataform_notification_manager($dataformid); \mod_dataform_instance_store::register($dataformid, 'notification_manager', $instance); } return $instance; }
/** * Returns and caches (for the current script) if not already, an entries manager for the specified Dataform. * * @param int Dataform id * @return mod_dataform_entry_manager */ public static function instance($dataformid, $viewid) { global $DB; if (!$dataformid) { if (!$viewid or !($dataformid = $DB->get_field('dataform_views', 'dataid', array('id' => $viewid)))) { throw new moodle_exception('invaliddataform', 'dataform', null, null, "Dataform id: {$dataformid}"); } } if (!($instance = \mod_dataform_instance_store::instance($dataformid, "entry_manager-{$viewid}"))) { $instance = new mod_dataform_entry_manager($dataformid, $viewid); \mod_dataform_instance_store::register($dataformid, "entry_manager-{$viewid}", $instance); } return $instance; }
/** * Deletes all this instance's structure and user data and resets its settings to defaults. * * @return bool Always true */ protected function reset() { // Must have manage templates capability. require_capability('mod/dataform:managetemplates', $this->context); // Reset settings. $this->reset_settings(); // Delete all component items. mod_dataform_field_manager::instance($this->id)->delete_fields(); mod_dataform_view_manager::instance($this->id)->delete_views(); mod_dataform_filter_manager::instance($this->id)->delete_filters(); mod_dataform_filter_manager::instance($this->id)->delete_advanced_filters(); mod_dataform_access_manager::instance($this->id)->delete_rules(); mod_dataform_notification_manager::instance($this->id)->delete_rules(); // Reset user data. $this->reset_user_data(); // Delete remaining files (e.g. css, js). $fs = get_file_storage(); $fs->delete_area_files($this->context->id, 'mod_dataform'); // Clean up gradebook. mod_dataform_grade_manager::instance($this->id)->delete_grade_items(); // Refresh events. dataform_refresh_events($this->course->id); // Delete context content. $this->context->delete_content(); // Update instance store. if (\mod_dataform_instance_store::instance($this->id, 'dataform')) { \mod_dataform_instance_store::register($this->id, 'dataform', $this); } return true; }