function paw_users_frontend($path) { global $pawUsers, $pawUsers_FrontendObserver; $pawUsers->load(); if (!defined("CMS_BACKEND") && $pawUsers_FrontendObserver === false) { // ACCOUNT FORMS if (isset($_POST["account"]) && isset($_POST["account"]["pawusers"]) && $_POST["account"]["pawusers"] == "account-observer") { $post = $_POST["account"]; if (isset($post["action"])) { $login = new LoginController(false); if ($login->_action($post["action"], $post) == true) { $action = $post["action"]; // SET SUCCESS MSG $success = $action; if ($action === "register") { $success .= "-" . $pawUsers->config["account_activation"]; } if (isset($login->success_text[$success])) { Flash::set("success", $login->success_text[$success]); } else { Flash::set("success", __("The Action was performed successfully.")); } // REDIRECT if (!isset($post["redirect"])) { $redirects = pawu_get_conf("redirect_pages"); $post["redirect"] = $redirects[$action]; } redirect($post["redirect"] . "?success=" . $success); die; } else { // SET ERROR $errors = array_merge($login->errors, $pawUsers->errors); Flash::set("error", $errors); } } } // PROFILE FORMS if (isset($_POST["user"]) && isset($_POST["user"]["pawusers"]) && $_POST["user"]["pawusers"] == "profile-observer") { $post = $_POST["user"]; if (isset($post["type"]) && isset($post["action"]) && $post["action"] == "edit") { if (($user = $pawUsers->getCurrentUser()) !== false) { if (isset($post["id"]) && (int) $post["id"] === (int) $user->id) { switch ($post["type"]) { case "general": // CHANGE GENERAL DATA $update = array("name" => isset($post["name"]) ? $post["name"] : $user->name, "language" => isset($post["language"]) ? $post["language"] : $user->language); $check = $pawUsers->updateUser($user->id, $update); $errors = $pawUsers->errors; $success = __("Your Profile has been successfully updated."); break; case "security": // CHANGE eMAIL if (isset($post["email"]) && $post["email"] !== $user->email) { $update = array("email" => $post["email"], "password" => isset($post["password"]) ? $post["password"] : false); $check = $pawUsers->updateUser($user->id, $update); $errors = $pawUsers->errors; $success = __("Your eMail address has been successfully updated."); } // CHANGE PASSWORD if (!isset($check) || $check === true) { if (isset($post["new-password"]) && !empty($post["new-password"])) { $update = array("new-password" => is_array($post["new-password"]) ? $post["new-password"] : false, "password" => isset($post["password"]) ? $post["password"] : false); $check = $pawUsers->updateUser($user->id, $update); $errors = $pawUsers->errors; $success = __("Your Password has been successfully updated."); } } break; case "meta": // UPDATE USER META STUFF if (isset($post["meta"])) { foreach ($post["meta"] as $key => $value) { if ($pawUsers->fields->getField($key) !== false) { $check = $pawUsers->fields->updateMeta($user->id, $key, $value, "unique"); $success = __("Your Profile has been successfully updated."); } } } break; default: $check = false; break; } // REDIRECT if (empty($errors) && $check === true) { if (!isset($post["redirect"])) { $redirects = pawu_get_conf("redirect_pages"); $post["redirect"] = $redirects[$action]; } Flash::set("success", $success); redirect($post["redirect"] . "&success=true"); die; } $errors = !empty($errors) ? $errors : array(__("An unknown error is occurred!")); Flash::set("error", $errors); } } } } $pawUsers_FrontendObserver = true; } return $path; }