<?php $form = new Odf\Form('food/new'); $form->validate(); if ($errors = $form->getErrors()) { return $Javascript->setErrors($errors)->output(); } $table = new \Tables\Foods(); $data = $form->getInput(); $data['user_id'] = getUser()->id; $id = $table->create($data); $Validator->useSession()->setSuccessMessage(__('Food saved.')); $Crumbs->removeLastCrumb(); // Replace last crumb by page we'll redirect to. $Ase->happen('update_cache', ['food']); $Javascript->setRedirect('food/edit?id=' . $id)->output();
<?php $form = new Odf\Form('settings/settings'); $form->validate(); if ($errors = $form->getErrors()) { return $Javascript->setErrors($errors)->output(); } $form_input = $form->getInput(); // Check if passwords match. if ($form_input['password'] !== $form_input['repeat_password']) { return $Javascript->setError(__('Passwords do not match.'), 'password'); } unset($form_input['repeat_password']); // We don't want to pass the "repeat_password" field to the db. // Email not already in use? $users_table = new Tables\Users(); $email_in_use = !!$users_table->by('email', $form_input['email'])->where('id != ' . getUser()->id)->getFirst(); if ($email_in_use) { return $Javascript->setError(__('Email address already in use.'))->output(); } // Update password if new password is given. if (!empty($form_input['password'])) { $salt_1 = $Login->generateSalt(); $salt_2 = $Login->generateSalt(); $password = $Login->hash($form_input['password'], $salt_1, $salt_2); $form_input['salt_1'] = $salt_1; $form_input['salt_2'] = $salt_2; $form_input['password'] = $password; } else { unset($form_input['password']); }
<?php $form = new Odf\Form('food/edit'); $form->validate(); if ($errors = $form->getErrors()) { return $Javascript->setErrors($errors)->output(); } $food_id = (int) $_POST['id']; $table = new \Tables\Foods(); // May the current user edit this food? $food = $table->get($food_id); if (!$food || $food->user_id != getUser()->id) { return $Javascript->setError(__('You are not authorized to edit this food.'))->output(); } $table->update($form->getInput(), $food_id); $Ase->happen('update_cache', ['food']); $Javascript->setSuccessMessage(__('Food saved.'))->output();