Пример #1
0
    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;
            }
            $ingredient->ItemCount = fractionToDecimal($itemCounts[$key]);
            $ingredient->ItemSize = $itemSizes[$key];
            $ingredient->RecipeIngredientName = $ingredientNames[$key];
            $ingredient->RecipeIngredientNote = $ingredientNotes[$key];
            // save the Tag on the Post
            $recipe->ingredients()->save($ingredient);
            $currentIngredientIds[] = $ingredient->RecipeIngredientId;
        }
    }
    //$recipe->save();
    return Redirect::to('recipe');
});
Route::post('recipe/delete/{id}', function ($id) {
    $recipe = Recipe::find($id);
    $recipe->delete();
    return Redirect::to('recipe');
Пример #2
0
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;
}