Пример #1
0
 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();
 }