function Create($email, $firstname, $lastname, $phone, $password, $repassword, $sendButton = null) { $repassword = $repassword == "null" ? null : $repassword; $agent = new Agent(); $agent->set($firstname, $lastname, $email, $phone, $password); $agentModel = new AgentModel($agent); $list = $agentModel->GetUsers(); $this->agentModelView->agent = $agent; $this->agentModelView->agentList = $list; if ($agent->validated()) { if ($password != $repassword) { Session::set("warning", " Password mis-matched, re-enter passwords again!"); return $this->View($this->agentModelView, "Agent", "Create"); } else { $this->agentModelView->agentDbModel = $agentModel; if ($agentModel->Exists()) { Session::set("warning", "The user with the given email address [{$email}] already exists!"); } else { try { //else create the user if ($agentModel->Create()) { $sessionID = Validator::UniqueKey(20); $agentModel->SaveVerificationCode($email, $sessionID); //create a barcode $param = new ArrayIterator(); $param->offsetSet("username", $agent->email); $param->offsetSet("verificationCode", $sessionID); $url = ContextManager::CreateURL("Agent", "Login", $param); $imgPath = ContextManager::CreateQRBarcode($url, $agent->agentId); if ($this->_sendVerificationEmail($agent, $sessionID, $imgPath)) { //navigate to comfirmation page return $this->View($agent, "Agent", "Confirmation"); } else { Session::set("warning", "could not send mail "); $agentModel->DeleteAgent($email); } } } catch (Exception $err) { Session::set("warning", $err->getMessage()); } } } // create a database record here } else { Session::set("warning", $agent->getError()); } return $this->View($this->agentModelView, "Agent", "Create"); }