public function delete() { safe_require('artefact', 'comment'); db_begin(); ArtefactTypeComment::delete_view_comments($this->id); delete_records('view_access', 'view', $this->id); delete_records('view_autocreate_grouptype', 'view', $this->id); delete_records('view_tag', 'view', $this->id); delete_records('view_visit', 'view', $this->id); delete_records('collection_view', 'view', $this->id); delete_records('usr_watchlist_view', 'view', $this->id); if ($blockinstanceids = get_column('block_instance', 'id', 'view', $this->id)) { require_once get_config('docroot') . 'blocktype/lib.php'; foreach ($blockinstanceids as $id) { $bi = new BlockInstance($id); $bi->delete(); } } handle_event('deleteview', $this->id); delete_records('view_rows_columns', 'view', $this->id); delete_records('view', 'id', $this->id); if (!empty($this->owner) && $this->is_submitted()) { // There should be no way to delete a submitted view, // but unlock its artefacts just in case. ArtefactType::update_locked($this->owner); } require_once 'embeddedimage.php'; EmbeddedImage::delete_embedded_images('description', $this->id); $this->deleted = true; db_commit(); }