public function newPostView(WorkerModel $worker) { $result = $worker->validate(); $valid = $result === TRUE; if ($valid) { $pdo = db_connect(); if ($worker->id) { $q = $pdo->prepare(' UPDATE worker SET name = :name, password = :password WHERE id = :id '); $q_args = array( ':name' => $worker->name, ':password' => $worker->password, ':id' => $worker->id ); } else { $q = $pdo->prepare(' INSERT INTO worker (name, password) VALUES (:name, :password) '); $q_args = array( ':name' => $worker->name, ':password' => $worker->password ); } $result = $q->execute($q_args); if (!$result) { $_SESSION['tempdata']['errors'][] = sprintf('Unable to %s worker. A worker with the same name probably exists.', $worker->id ? 'modify' : 'create'); $valid = false; } } else { $_SESSION['tempdata']['errors'] = array_merge((array)$_SESSION['tempdata']['errors'], $result); } if (!$valid) { return new AdminWorkerNewEditView(array('worker' => $worker)); } $_SESSION['tempdata']['info'][] = $worker->id ? 'Changes saved.' : 'Worker created.'; return new RedirectView('/admin/workers.php'); }