/** * @see VirtualFolderInterface::delete() * @return bool */ public final function delete() { global $transaction; if ($this->virtual_folder_id and $this->virtual_folder) { $transaction_id = $transaction->begin(); if ($this->unset_children() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } $virtual_folder_delete_event = new VirtualFolderDeleteEvent($this->virtual_folder_id); $event_handler = new EventHandler($virtual_folder_delete_event); if ($event_handler->get_success() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } if (parent::delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } if ($this->virtual_folder->delete() == true) { if ($transaction_id != null) { $transaction->commit($transaction_id); } return true; } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { return false; } }
/** * @return bool * @throws ParameterDeleteVersionValueFailedException * @throws ParameterDeleteVersionFailedException * @throws ParameterDeleteFailedException * @throws ParameterDeleteIDMissingException */ protected function delete() { global $transaction; if ($this->parameter_id and $this->parameter) { $transaction_id = $transaction->begin(); try { $parameter_version_array = ParameterVersion_Access::list_entries_by_parameter_id($this->parameter_id); if (is_array($parameter_version_array) and count($parameter_version_array) >= 1) { foreach ($parameter_version_array as $key => $value) { if (ParameterFieldValue_Access::delete_by_parameter_version_id($value) == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } throw new ParameterDeleteVersionValueFailedException(); } $parameter_version = new ParameterVersion_Access($value); if ($parameter_version->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } throw new ParameterDeleteVersionFailedException(); } } } if ($this->parameter->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } throw new ParameterDeleteFailedException(); } parent::delete(); } catch (BaseException $e) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } throw $e; } if ($transaction_id != null) { $transaction->commit($transaction_id); } return true; } else { throw new ParameterDeleteIDMissingException(); } }
/** * @see FolderInterface::delete() * @param bool $recursive * @param bool $content * @return bool */ public function delete($recursive, $content) { global $transaction; if ($this->folder_id and $this->folder) { $transaction_id = $transaction->begin(); $subfolder_array = $this->get_subfolder_array(); if (is_array($subfolder_array) and $recursive == false or $content == false and $recursive == true) { return false; } else { if ($recursive == true and $content == true) { if (is_array($subfolder_array)) { foreach ($subfolder_array as $key => $value) { $folder = Folder::get_instance($value); if ($folder->delete(true, true) == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } else { if ($transaction_id != null) { // Avoids Ghost-Folders $transaction->commit($transaction_id); $transaction_id = $transaction->begin(); } } } } } // Folder-Content $data_entity_array = $this->get_children("without_linked"); if (is_array($data_entity_array) and count($data_entity_array) >= 1) { foreach ($data_entity_array as $key => $value) { // Files if (($file_id = File::get_file_id_by_data_entity_id($value)) != null) { $file = File::get_instance($file_id); $file_delete = $file->delete(); if ($file_delete == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } else { if ($transaction_id != null) { // Avoids Ghost-Files $transaction->commit($transaction_id); $transaction_id = $transaction->begin(); } } } // Values if (($value_id = Value::get_value_id_by_data_entity_id($value)) != null) { $value_obj = Value::get_instance($value_id); if ($value_obj->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } // Virtual Folders if (($virtual_folder_id = VirtualFolder::get_virtual_folder_id_by_data_entity_id($value)) != null) { $virtual_folder = new VirtualFolder($virtual_folder_id); if ($virtual_folder->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } } } // Linked Folder-Content (e.g. from sub-items) $data_entity_array = $this->get_children("linked_only"); if (is_array($data_entity_array) and count($data_entity_array) >= 1) { foreach ($data_entity_array as $key => $value) { if ($this->unset_child($value) == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } } $path = constant("BASE_DIR") . "/" . $this->folder->get_path(); if (file_exists($path)) { $garbage_file_array = scandir($path); if (is_array($garbage_file_array) and count($garbage_file_array) >= 3) { foreach ($garbage_file_array as $key => $value) { if ($key != 0 and $key != 1) { unlink($path . "/" . $value); } } } } $linked_virtual_folder_array = $this->get_parent_virtual_folders(); if (is_array($linked_virtual_folder_array) and count($linked_virtual_folder_array)) { foreach ($linked_virtual_folder_array as $key => $value) { if ($this->unset_child_of($value) == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } } if (parent::delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } $folder_delete_event = new FolderDeleteEvent($folder_id); $event_handler = new EventHandler($folder_delete_event); if ($event_handler->get_success() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } if (file_exists($path)) { if (rmdir($path)) { if ($this->folder->delete() == true) { if ($transaction_id != null) { $transaction->commit($transaction_id); } return true; } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { if ($this->folder->delete() == true) { if ($transaction_id != null) { $transaction->commit($transaction_id); } return true; } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } } } else { return false; } }
/** * @see ValueInterface::delete() * @return bool */ public function delete() { global $transaction; if ($this->value_id != null and $this->value and $this->value_version) { $transaction_id = $transaction->begin(); $value_version_array = ValueVersion_Access::list_entries_by_toid($this->value_id); unset($this->value_version); if (is_array($value_version_array) and count($value_version_array) >= 1) { foreach ($value_version_array as $key => $fe_value) { $value_version = new ValueVersion_Access($fe_value); if ($value_version->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } if ($this->value->delete() == true) { if (parent::delete() == true) { if ($transaction_id != null) { $transaction->commit($transaction_id); } return true; } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { return false; } }
/** * @see FileInterface::delete() * @return bool */ public function delete() { global $transaction; if ($this->file_id != null and $this->file and $this->file_version) { $transaction_id = $transaction->begin(); $folder_id = $this->get_parent_folder_id(); $folder = Folder::get_instance($folder_id); $file_delete_event = new FileDeleteEvent($this->file_id, $folder_id, 0); $event_handler = new EventHandler($file_delete_event); if ($event_handler->get_success() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } $file_version_array = FileVersion_Access::list_entries_by_toid($this->file_id); if (is_array($file_version_array) and count($file_version_array) >= 1) { $file_size = 0; $file_path_array = array(); $temp_file_id = $this->file_id; foreach ($file_version_array as $key => $value) { $file_version_access = new FileVersion_Access($value); $file_size = $file_size + $file_version_access->get_size(); $extension_array = explode(".", $file_version_access->get_name()); $extension_array_length = substr_count($file_version_access->get_name(), "."); if ($extension_array_length == 0) { $extension = ""; } else { $extension = "." . $extension_array[$extension_array_length]; } $path = constant("BASE_DIR") . "/" . $folder->get_path() . "/" . $this->data_entity_id . "-" . $file_version_access->get_internal_revision() . "" . $extension . ""; if ($file_version_access->delete()) { array_push($file_path_array, $path); } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } $folder->decrease_filesize($this->get_owner_id(), $file_size); $file_delete = $this->file->delete(); if ($file_delete == true) { // Data Entity Delete if (parent::delete() == true) { if (is_array($file_path_array) and count($file_path_array) >= 1) { foreach ($file_path_array as $key => $value) { if (is_file($value)) { if (is_writable($value)) { $delete_success = unlink($value); if ($delete_success == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } $this->file->__consturct($temp_file_id); $this->file->set_flag(-1); // Corrupt return false; } } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } $this->file->__consturct($temp_file_id); $this->file->set_flag(-1); // Corrupt return false; } } } } if ($transaction_id != null) { $transaction->commit($transaction_id); } return true; } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } } else { return false; } }