request(); $session = $main->session(); $basket = $main->basket(); $messages = array(); if ($request->exists('do')) { $activity = $request->get('do'); $redirect = MediaListing_Main::issetelse($_POST['redirect'], 'basket'); switch ($activity) { case 'add-items': { try { $items = MediaListing_Main::issetelse($_POST['items'], 'Sihnon_Exception_InvalidParameters'); $basket->addItems($items); $messages[] = array( 'severity' => 'success', 'content' => 'The selected items were successfully added to the basket.', ); } catch (SihnonFramework_Exception_InvalidParameters $e) { $messages[] = array( 'severity' => 'error', 'content' => 'The selected items were not added to the basket due to invalid parameters being passed.', ); } } break; case 'edit': { try { $remove_items = MediaListing_Main::issetelse($_POST['remove-items'], false); $clear_basket = MediaListing_Main::issetelse($_POST['clear'], false); if ($remove_items) { $items = MediaListing_Main::issetelse($_POST['items'], 'Sihnon_Exception_InvalidParameters'); $basket->removeItems($items); $messages[] = array( 'severity' => 'success', 'content' => 'The selected items were successfully removed from the basket.', ); } else if ($clear_basket) { $basket->clear(); $messages[] = array( 'severity' => 'success', 'content' => 'The basket was successfully cleared.', ); } else { $messages[] = array( 'severity' => 'error', 'content' => 'The requested activity was not recognised.', ); } } catch (SihnonFramework_Exception_InvalidParameters $e) { $messages[] = array( 'severity' => 'error', 'content' => 'The selected items were not removed from the basket due to invalid parameters being passed.', ); } } break; default: { $messages[] = array( 'severity' => 'error', 'content' => 'The requested activity was not recognised.', ); } break; } $session->set('messages', $messages); MediaListing_Page::redirect($redirect); } $this->smarty->assign('basket', $basket); ?>