public function deleteAction() { //array containing id and type of media to delete. $mediaItems = $this->_getParam('media', null); $user = Application_Model_User::getCurrentUser(); //$isAdminOrPM = $user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER)); $files = array(); $playlists = array(); $blocks = array(); $streams = array(); $message = null; foreach ($mediaItems as $media) { if ($media["type"] === "audioclip") { $files[] = intval($media["id"]); } elseif ($media["type"] === "playlist") { $playlists[] = intval($media["id"]); } elseif ($media["type"] === "block") { $blocks[] = intval($media["id"]); } elseif ($media["type"] === "stream") { $streams[] = intval($media["id"]); } } try { Application_Model_Playlist::deletePlaylists($playlists, $user->getId()); } catch (PlaylistNoPermissionException $e) { $this->view->message = "You don't have permission to delete selected items."; return; } try { Application_Model_Block::deleteBlocks($blocks, $user->getId()); } catch (Exception $e) { //TODO: warn user that not all blocks could be deleted. } try { Application_Model_Webstream::deleteStreams($streams, $user->getId()); } catch (Exception $e) { //TODO: warn user that not all streams could be deleted. Logging::info($e); } foreach ($files as $id) { $file = Application_Model_StoredFile::Recall($id); if (isset($file)) { try { $res = $file->delete(true); } catch (Exception $e) { //could throw a scheduled in future exception. $message = "Could not delete some scheduled files."; Logging::debug($e->getMessage()); } } } if (isset($message)) { $this->view->message = $message; } }