Functions.php 3.92 KiB
<?php
function recipeContains($recipe, $ingredient)
{
foreach($recipe['index'] as $ing) if($ing === $ingredient) return true;
return false;
}
function getRecipesForJS($wanted_ingredients, $unwanted_ingredients, $max_unsatisfied, $allow_missing, $allow_unwanted)
{
$res = "";
$validRecipes = getRecipes($wanted_ingredients, $unwanted_ingredients, $max_unsatisfied, $allow_missing, $allow_unwanted);
foreach($validRecipes as $recipe)
{
$res .= $recipe['id'] . ':' . $recipe['score'] . '|';
}
return $res;
}
function getRecipes($wanted_ingredients, $unwanted_ingredients, $max_unsatisfied, $allow_missing, $allow_unwanted)
{
include "Donnees.inc.php";
$Recipes = array();
for($i = 0; $i < count($Recettes); $i++)
{
$recipe = $Recettes[$i];
$score = 0;
$valid = true;
foreach($wanted_ingredients as $w_ing)
{
if(!recipeContains($recipe, $w_ing))
{
if(!$allow_missing)
{
$valid = false;
break;
}
$score++;
}
}
if($valid)
{
foreach($unwanted_ingredients as $uw_ing)
{
if(recipeContains($recipe, $uw_ing))
{
if(!$allow_unwanted)
{
$valid = false;
break;
}
$score++;
}
}
if($valid)
{
if($score <= $max_unsatisfied)
{
//$Recipes .= $i . ':' . $score . '|';
$Recipes[] = array(
'id'=> $i,
'score'=> $score
);
}
}
}
}
return $Recipes;
}
function getIngredients($parent_category)
{
include "Donnees.inc.php";
$res = 'f';
if(isset($Hierarchie[$parent_category]))
{
$ingredients = $Hierarchie[$parent_category]['sous-categorie'];
foreach($ingredients as $i)
{
$res .= $i . '|';
}
}
return $res;
}
function getRecipeImage($name)
{
$formatted_name = explode(' ', $name);
$formatted_name = implode('_', $formatted_name) . '.jpg';
return $formatted_name;
}
function getSubIngredients($cat)
{
include "Donnees.inc.php";
$sub_list = array();
if(!isset($Hierarchie[$cat]['sous-categorie'])) $sub_list[] = $cat;
else foreach($Hierarchie[$cat]['sous-categorie'] as $ing)
{
foreach(getSubIngredients($ing) as $sub)
{
if(!in_array($sub, $sub_list)) $sub_list[] = $sub;
}
}
return $sub_list;
}
function getAllIngredients()
{
return getSubIngredients('Aliment');
}
// Renvoie un tableau de sous-categories de l'aliment en cours, null si l'aliment n'en a pas
function get_sous_categories($aliment) {
include "Donnees.inc.php";
$res = null;
if(isset($Hierarchie[$aliment]['sous-categorie'])) {
$res = $Hierarchie[$aliment]['sous-categorie'];
}
return $res;
}
// Renvoie un tableau de super-categories de l'aliment en cours, null si l'aliment n'en a pas
function get_super_categories($aliment) {
include "Donnees.inc.php";
$res = null;
if(isset($Hierarchie[$aliment]['super-categorie'])) {
$res = $Hierarchie[$aliment]['super-categorie'];
}
return $res;
}
// Renvoie un tableau de tous les aliments feuille de la catégorie en paramètre
function get_all_aliments($categorie) {
include "Donnees.inc.php";
$res = [];
if(isset($Hierarchie[$categorie]['sous-categorie'])) {
$sous_cat = $Hierarchie[$categorie]['sous-categorie'];
foreach($sous_cat as $sc) {
$res = array_merge($res, get_all_aliments($sc));
}
} else {
$res[] = $categorie;
}
return $res;
}
?>