public function update() { $errorURL = isset($_REQUEST['return_url']) ? $_REQUEST['return_url'] : BASE_URL . '/people'; if (isset($_REQUEST['person_id']) && $_REQUEST['person_id']) { try { $person = new Person($_REQUEST['person_id']); } catch (\Exception $e) { $_SESSION['errorMessages'][] = $e; header("Location: {$errorURL}"); exit; } } else { $person = new Person(); } if (isset($_POST['firstname'])) { try { $newRecord = $person->getId() ? false : true; $person->handleUpdate($_POST); $person->save(); if ($newRecord) { if (!empty($_POST['email'])) { $email = new Email(); $email->setPerson($person); $email->setEmail($_POST['email']); $email->save(); } if (!empty($_POST['phone'])) { $phone = new Phone(); $phone->setPerson($person); $phone->setNumber($_POST['phone']); $phone->save(); } } if (isset($_REQUEST['return_url'])) { $return_url = new Url($_REQUEST['return_url']); $return_url->person_id = $person->getId(); } elseif (isset($_REQUEST['callback'])) { $return_url = new Url(BASE_URL . '/callback'); $return_url->callback = $_REQUEST['callback']; $return_url->data = "{$person->getId()}"; } else { $return_url = $person->getURL(); } header("Location: {$return_url}"); exit; } catch (\Exception $e) { $_SESSION['errorMessages'][] = $e; } } $this->template->title = 'Update a person'; $this->template->blocks[] = new Block('people/updatePersonForm.inc', array('person' => $person)); }