/** * main action */ public function mainAction() { $recipe_id = $this->GET['id']; if (!is_numeric($recipe_id)) { return false; } $Ingredients = new ecommerce_recipe_ingredients(); $ingredients = $Ingredients->getIngredientsForRecipe($recipe_id); if (is_array($ingredients)) { $prevGroup = ''; foreach ($ingredients as $i => $ingredient) { $ingredient['index'] = $i; $this->tpl->assign("INGREDIENT", $ingredient); if ($ingredient['group_title'] != $prevGroup) { $this->tpl->parse("content.ingredient.group_title"); } if (strlen($ingredient['notes']) > 0) { $this->tpl->parse("content.ingredient.note"); } $this->tpl->parse("content.ingredient"); $prevGroup = $ingredient['group_title']; } } return true; }
/** * main action */ public function mainAction() { $Ingredients = new ecommerce_recipe_ingredients(); $Product = new ecommerce_product(); $recipe_id = $this->GET['recipe_id']; $ingredients = array(); $ingredients['recipe_id'] = $recipe_id; /** * saving */ if (is_array($_POST['ingredients'])) { $current = $Ingredients->listing("recipe_id = {$recipe_id}"); $keep = array_keys($_POST['ingredients']); foreach ($current as $c) { if (!in_array($c['id'], $keep)) { $Ingredients->delete($c['id']); } } foreach ($_POST['ingredients'] as $ingredient_id => $item) { if (is_numeric($ingredient_id)) { $ingredients['id'] = $ingredient_id; $ingredients['product_variety_id'] = $item['product_variety_id']; $ingredients['quantity'] = $item['quantity']; $ingredients['units'] = $item['units']; $ingredients['notes'] = $item['notes']; $ingredients['group_title'] = $item['group_title']; $Ingredients->update($ingredients); } else { unset($ingredients['id']); $ingredients['product_variety_id'] = $item['product_variety_id']; $ingredients['quantity'] = $item['quantity']; $ingredients['units'] = $item['units']; $ingredients['notes'] = $item['notes']; $ingredients['group_title'] = $item['group_title']; $Ingredients->insert($ingredients); } } } /** * get units */ $units = $Ingredients->getUnits(); $this->parseUnits($units, false, 'head.unit'); /** * get ingredient list (products) */ $products = $Product->getProductListForDropdown(); $this->parseIngredients($products); /** * listing */ $current = $Ingredients->listing("recipe_id = {$recipe_id}"); foreach ($current as $ingredient) { $this->tpl->assign("ITEM", $ingredient); $this->parseUnits($units, $ingredient['units']); $this->tpl->parse("content.item"); } return true; }
/** * getIngredients */ static function getIngredients($recipe_id) { if (!is_numeric($recipe_id)) { return false; } require_once 'models/ecommerce/ecommerce_recipe_ingredients.php'; $Ingredients = new ecommerce_recipe_ingredients(); return $Ingredients->getIngredientsForRecipeOptimised($recipe_id); }