private static function doUserAction($request) { //echo "<p>" . serialize($request) . "</p>"; //DEBUG $user = null; $loadDependencies = self::$requestedAction == "Follow" || self::$requestedAction == "Feedback" || self::$requestedAction == "AddContact" || self::$requestedAction == "StopFollow" || self::$requestedAction == "Read"; if ($loadDependencies && self::$requestedAction != "Read") { self::$user->loadFollows(); } if (is_numeric(self::$currentID)) { $user = UserManager::loadUser(self::$currentID, $loadDependencies); } else { if (isset(self::$currentID)) { $user = UserManager::loadUserByNickname(self::$currentID, $loadDependencies); } } switch (self::$requestedAction) { case "Edit": if (is_null($user) || $user === false) { header("location: " . FileManager::appendToRootPath("error.php?e=Oops la pagina non è stata trovata.")); } require_once 'user/UserPage.php'; UserPage::showEditProfileForm($user); break; case "Follow": if (is_null($user) || $user === false) { header("location: " . FileManager::appendToRootPath("error.php?e=Oops la pagina non è stata trovata.")); } UserManager::followUser(self::$user, $user); header("location:" . FileManager::appendToRootPath("User/" . $user->getID())); break; case "Feedback": if (is_null($user) || $user === false) { header("location: " . FileManager::appendToRootPath("error.php?e=Oops la pagina non è stata trovata.")); } require_once 'user/UserPage.php'; UserPage::showFeedbackForm($user); break; case "AddContact": if (is_null($user) || $user === false) { header("location: " . FileManager::appendToRootPath("error.php?e=Oops la pagina non è stata trovata.")); } require_once 'user/UserPage.php'; UserPage::showNewContactForm($user); break; case "StopFollow": if (is_null($user) || $user === false) { header("location: " . FileManager::appendToRootPath("error.php?e=Oops la pagina non è stata trovata.")); } UserManager::stopFollowingUser(self::$user, $user); header("location:" . FileManager::appendToRootPath("User/" . $user->getID())); break; case "Verify": if (is_null($user) || $user === false) { header("location: " . FileManager::appendToRootPath("error.php?e=Oops la pagina non è stata trovata.")); } UserManager::verifyUser($user, $_GET["code"]); header("location:" . FileManager::appendToRootPath("User/" . $user->getID())); break; case "Posts": if (is_null($user) || $user === false) { header("location: " . FileManager::appendToRootPath("error?e=Oops la pagina non è stata trovata.")); } require_once 'search/SearchManager.php'; $posts = SearchManager::searchBy("Post", array("ps_author" => $user->getID()), array("order" => -1, "by" => "ps_creationDate")); require_once 'post/PostPage.php'; foreach ($posts as $p) { PostPage::showPost($p, self::$post_options); } break; case "Mails": require_once 'mail/MailManager.php'; $mails = MailManager::loadDirectoryFromName(MAILBOX, self::$user); require_once 'mail/MailPage.php'; foreach ($mails as $mail) { MailPage::showShortMail($mail); } break; case "Delete": if (is_null($user) || $user === false) { header("location: " . FileManager::appendToRootPath("error.php?e=Oops la pagina non è stata trovata.")); } UserManager::deleteUser($user); header("location: " . FileManager::appendToRootPath("")); break; case "New": require_once 'user/UserPage.php'; UserPage::showSignInForm(); break; case "Read": if (is_null($user) || $user === false) { header("location: " . FileManager::appendToRootPath("error.php?e=Oops la pagina non è stata trovata.")); } require_once 'user/UserPage.php'; UserPage::showProfile($user); break; case "Search": default: require_once "search/SearchPage.php"; SearchPage::showUserSearchForm($p); break; } }