public function url_for_parent_directory($entry, $parent_id = null) { if (is_array($entry)) { $entry = reset($entry); } if (!is_object($entry)) { $entry = new DirectoryEntry($entry); } $parent_id = $parent_id ?: FileHelper::getParentId($entry->id) ?: $this->context_id; $parent_page = $this->getPageForIndex($entry->indexInparent()); return $this->url_for('document/files/index/' . $parent_id . '/' . $parent_page); }
/** * Deletes a file. * * @param String $id Directory entry id of the file to delete */ public function delete_action($id) { if (!$this->full_access) { throw new AccessDeniedException(); } $entry = DirectoryEntry::find($id); $parent_id = FileHelper::getParentId($id) ?: $this->context_id; $entry->checkAccess(); if (!Request::isPost()) { $question = createQuestion2(_('Soll die Datei wirklich gelöscht werden?'), array(), array(), $this->url_for('document/files/delete/' . $id)); $this->flash['question'] = $question; } elseif (Request::isPost() && Request::submitted('yes')) { File::get($entry->directory->id)->unlink($entry->name); PageLayout::postMessage(MessageBox::success(_('Die Datei wurde gelöscht.'))); } $this->redirect('document/files/index/' . $parent_id); }
/** * Deletes a folder. * * @param String $folder_id Directory entry id of the folder */ public function delete_action($folder_id) { if (!$this->full_access) { throw new AccessDeniedException(); } FileHelper::checkAccess($folder_id); $parent_id = FileHelper::getParentId($folder_id) ?: $this->context_id; if (!Request::isPost()) { $message = $folder_id === 'all' ? _('Soll der gesamte Dateibereich inklusive aller Order und Dateien wirklich gelöscht werden?') : _('Soll der Ordner inklusive aller darin enthaltenen Dateien wirklich gelöscht werden?'); $question = createQuestion2($message, array(), array(), $this->url_for('document/folder/delete/' . $folder_id)); $this->flash['question'] = $question; } elseif (Request::isPost() && Request::submitted('yes')) { if ($folder_id === 'all') { $entry = RootDirectory::find($this->context_id); foreach ($entry->listFiles() as $file) { $entry->unlink($file->name); } PageLayout::postMessage(MessageBox::success(_('Der Dateibereich wurde geleert.'))); } else { $entry = DirectoryEntry::find($folder_id); $entry->directory->unlink($entry->name); PageLayout::postMessage(MessageBox::success(_('Der Ordner wurde gelöscht.'))); } } $this->redirect('document/files/index/' . $parent_id); }