/** * Store a newly created resource in storage. * * @return Response */ public function store() { // $recipe = new Recipe(); $recipe->title = Input::get('title'); $recipe->save(); return Response::json(array('success' => true)); }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Recipe(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Recipe'])) { $model->attributes = $_POST['Recipe']; $model->UserID = $_POST['Recipe']['UserID']; if ($model->save()) { $this->redirect(array('update', 'id' => $model->ID)); } } $this->render('create', array('model' => $model)); }
<?php require_once "models/db.php"; require_once "models/Recipe.php"; $recipe = new Recipe(); if ($_POST) { $recipe->copyFromRow($_POST); if ($recipe->validate()) { $recipe->save($dbh); echo "save successfully"; die; } } // default route, show page for adding require_once "views/view_recipe.php";
$oEditForm->checkFilled("authorNotes"); $oEditForm->checkFilled("ingredients"); $oEditForm->checkFilled("directions"); // $oEditForm -> checkFileUpload("imageUpload"); // $oEditForm -> moveFile("imageUpload",$sImageName); if ($oEditForm->valid == true) { //updating details: $oRecipe->title = $_POST["recipeTitle"]; $oRecipe->authorNotes = $_POST["authorNotes"]; $oRecipe->ingredients = $_POST["ingredients"]; $oRecipe->directions = $_POST["directions"]; // $sImageName = "recipeImage".$oRecipe -> title.".jpg"; // $oRecipe -> imagePath = $sImageName; // $oRecipe -> userID = $oCustomer -> userID; // $oRecipe -> recipeTypeID = $_POST["recipeCategory"]; $oRecipe->save(); header("Location: editRecipe.php?message=updated&RecipeID=" . $oRecipe->recipeID); exit; } } //html markup: $oEditForm->makeInput("recipeTitle", "Recipe Title *", "eight columns editRecipe floatLeft marginBottom10"); $oEditForm->makeSelect("recipeCategory", "Recipe Category *", RecipeTypeManager::listAllTypes(), "eight columns floatLeft editRecipe marginBottom10"); $oEditForm->makeImageUpload("imageUpload", "Image Upload *"); $oEditForm->makeTextArea("authorNotes", "Author Notes *", "eight columns editRecipe floatLeft marginBottom10"); $oEditForm->makeTextArea("ingredients", "Ingredients *", "eight columns editRecipe floatLeft marginBottom10"); $oEditForm->makeTextArea("directions", "Directions *", "clearBoth editRecipe marginRight10 marginBottom30 marginLeft10"); $oEditForm->makeSubmit("update", "update", "blueButton2 bgBlue marginBottom10"); ?> <h1 class="textAlignCenter marginBottom30">Edit Recipe</h1> <span class="displayBlock positionRelative recipeCaption captionLine textAlignCenter marginBottom10">* Required Fields </span>
return Redirect::to('recipe/show/' . $recipe->RecipeId); }); Route::get('recipe/create', array('as' => 'recipe.create', function () { return View::make('recipe.edit'); })); Route::post('recipe/create', function () { $recipe = new Recipe(); $recipe->RecipeName = Input::get('RecipeName'); $recipe->ServingCount = Input::get('ServingCount'); $recipe->PrepTimeMinute = Input::get('PrepTimeMinute'); $recipe->CookTimeMinute = Input::get('CookTimeMinute'); $recipe->price = str_replace('$ ', '', Input::get('price')); $recipe->Directions = Input::get('Directions'); $recipe->RecipeNote = Input::get('RecipeNote'); $recipe->tags = Input::get('tags'); $recipe->save(); $currentIngredientIds = array(); if (Input::has('RecipeIngredientId')) { $ingredientIds = Input::get('RecipeIngredientId'); $itemCounts = Input::get('ItemCount'); $itemSizes = Input::get('ItemSize'); $ingredientNames = Input::get('RecipeIngredientName'); $ingredientNotes = Input::get('RecipeIngredientNote'); // loop through tag ids submitted from create post form foreach ($ingredientIds as $key => $n) { // look up the existing Tag by ID $ingredient = RecipeIngredient::find($ingredientIds[$key]); // Create ingredient if it doesn't exist if (!$ingredient) { $ingredient = new RecipeIngredient(); $ingredient->RecipeId = $recipe->RecipeId;
function parseRecipe($html, $url) { $parsedRecipe = RecipeParser::parse($html, $url); $recipe = new Recipe(); $recipe->RecipeName = $parsedRecipe->title; $recipe->ServingCount = getNumberFromString($parsedRecipe->yield); $recipe->PrepTimeMinute = $parsedRecipe->time['prep']; $recipe->CookTimeMinute = $parsedRecipe->time['cook']; $recipe->RecipeNote = $parsedRecipe->url; $directions = ''; foreach ($parsedRecipe->instructions[0]['list'] as $key => $n) { if ($directions != '') { $directions .= "\n\n"; } $directions .= $parsedRecipe->instructions[0]['list'][$key]; } $recipe->Directions = $directions; $recipe->save(); foreach ($parsedRecipe->ingredients[0]['list'] as $key => $n) { $ingredient = new RecipeIngredient(); $ingredient->RecipeId = $recipe->RecipeId; $origText = $parsedRecipe->ingredients[0]['list'][$key]; try { $text = trim($origText); preg_match('~[a-z]~i', $text, $match, PREG_OFFSET_CAPTURE); $count = substr($text, 0, $match[0][1]); $countEncode = urlencode($count); $countEncode = str_replace("%C2%BC", " 1/4", $countEncode); $countEncode = str_replace("%C2%BD", " 1/2", $countEncode); $countEncode = str_replace("%C2%BE", " 3/4", $countEncode); $count = urldecode($countEncode); $count = str_replace("-", " ", $count); $count = fractionToDecimal($count); $text = trim(substr($text, $match[0][1])); $size = getItemSize(substr($text, 0, strpos($text, " "))); if (!isNullOrEmptyString($size)) { $text = trim(substr($text, strpos($text, " "))); } $ingredient->ItemCount = $count; $ingredient->ItemSize = $size; $ingredient->RecipeIngredientName = $text; //$ingredient->RecipeIngredientNote = $origText; } catch (Exception $e) { $ingredient->RecipeIngredientName = $origText; $ingredient->RecipeIngredientNote = $e->getMessage(); } // save the Tag on the Post $recipe->ingredients()->save($ingredient); } if (!isNullOrEmptyString($parsedRecipe->photo_url)) { saveImage($recipe, $parsedRecipe->photo_url); } return $recipe; }
// Route 1: user comes here to add a new recipe, show them a blank form $add = true; // Route 2: user comes here to edit a specific recipe // (you'll need to grab that id from the query string) if (isset($_GET['id'])) { $add = false; $recipes->find($_GET['id'], $dbh); } // Route 3a: user entered a new recipe details and is trying to save it // create an object, set values, validate and save, just like in the lab // if all is well, send to ShowRecipe to see the added recipe // otherwise, back to the edit view with errors! if ($_POST && !$_GET) { $recipes->copyFromRow($_POST); if ($recipes->validate()) { $recipes->save($dbh); header('Location: RecipeList.php?id=' . $recipes->id); } } // Route 3b: user updated an existing recipe details and is trying to save it // create an object, inflate to the proper id, update values, validate and save // if all is well, send to ShowRecipe to see the added recipe // otherwise, back to the edit view with errors! if ($_POST && $_GET) { $recipes->copyFromRow($_POST); if ($recipes->validate()) { $recipes->save($dbh); header('Location: RecipeList.php?id=' . $recipes->id); } } require_once "views/edit_recipe.php";