Initial commit
Création de tous les dossiers et fichiers avec mise à part des constantes
This commit is contained in:
commit
4c71fb59b4
42 changed files with 2544 additions and 0 deletions
70
inc/fonctions.php
Normal file
70
inc/fonctions.php
Normal file
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
function transformeCharsAutorises($entree){
|
||||
$transformations = [
|
||||
'#Œ#' => 'Oe',
|
||||
'#œ#' => 'oe',
|
||||
'#Æ#' => 'Ae',
|
||||
'#æ#' => 'ae',
|
||||
'#[^a-zàâäéèêëîïôöùûüÿçñA-ZÀÂÄÉÈÊËÎÏÔÖÙÛÜŸÇÑ ,\'-]#' => '',
|
||||
'#^[ ,-]+#' => '',
|
||||
'#[ ]+$#' => '',
|
||||
'#\'#' => '\\\''
|
||||
];
|
||||
foreach ($transformations as $reEtape => $remplacement){
|
||||
$entree = preg_replace($reEtape, $remplacement, $entree);
|
||||
}
|
||||
|
||||
$entree = mb_strtoupper(mb_substr($entree, 0, 1)) . mb_substr($entree, 1);
|
||||
return $entree;
|
||||
}
|
||||
|
||||
function calculeMinutesFromTexte($texteDuree){
|
||||
$texteDuree = preg_replace("/ /", "", $texteDuree);
|
||||
|
||||
preg_match("#(?:([0-9]*) ?j(?:our\(s\)|our|ours)?)? ?(?:([0-9]*) ?h(?:eure\(s\)|eure|eures)?)? ?(?:([0-9]*) ?min(?:ute\(s\)|ute|utes)?)?#", $texteDuree, $matches) ;
|
||||
|
||||
$dureeMinutes = 0;
|
||||
|
||||
foreach($matches as $clef => $duree){
|
||||
if ($clef == 1 and $duree != NULL){$dureeMinutes += 1440*$duree;}
|
||||
if ($clef == 2 and $duree != NULL){$dureeMinutes += 60*$duree;}
|
||||
if ($clef == 3){$dureeMinutes += intval($duree);}
|
||||
}
|
||||
|
||||
return $dureeMinutes;
|
||||
}
|
||||
|
||||
function calculeTexteFromMinutes($minute){
|
||||
|
||||
$restant = $minute;
|
||||
$texteMinutes = '';
|
||||
$tempsJours = intdiv($restant,1440);
|
||||
$texteMinutes .= ($tempsJours) != 0 ? $tempsJours . ' jour(s) ' : '';
|
||||
$restant = $restant % 1440;
|
||||
$tempsHeures = intdiv($restant,60);
|
||||
$texteMinutes .= ($tempsHeures) != 0 ? $tempsHeures . ' heure(s) ' : '';
|
||||
$restant = $restant % 60;
|
||||
$texteMinutes .= ($restant) != 0 ? $restant . ' minute(s)' : '';
|
||||
|
||||
|
||||
return $texteMinutes;
|
||||
}
|
||||
|
||||
function lectureVersEcriture($texte){
|
||||
$texte = preg_replace("#<br/>#","##",$texte);
|
||||
$texte = preg_replace("#</p><p>#","\n",$texte);
|
||||
$texte = preg_replace("#⌀#","#diam",$texte);
|
||||
return $texte;
|
||||
}
|
||||
function ecritureVersLecture($texte){
|
||||
$texte = preg_replace("/##/","<br/>",$texte);
|
||||
$texte = preg_replace("/\n/","</p><p>",$texte);
|
||||
$texte = preg_replace("/#diam/","⌀",$texte);
|
||||
return $texte;
|
||||
}
|
||||
|
||||
function echappementBDD($texte){ //echappe tous les caractères pour que la chaînes soit acceptable dasn une requete SQL
|
||||
$texte = preg_replace("/'/","\'",$texte);
|
||||
return $texte;
|
||||
}
|
||||
?>
|
240
inc/modele.php
Normal file
240
inc/modele.php
Normal file
|
@ -0,0 +1,240 @@
|
|||
<?php
|
||||
|
||||
function seConnecter() {
|
||||
if($_SESSION['auth']){
|
||||
$connexion = mysqli_connect(SERVEUR, SUPER_UTILISATRICE, SUPER_MOTDEPASSE, BDD);
|
||||
}
|
||||
else{
|
||||
$connexion = mysqli_connect(SERVEUR, UTILISATRICE_PAR_DEFAUT, MOTDEPASSE_PAR_DEFAUT, BDD);
|
||||
}
|
||||
if (mysqli_connect_errno()) {
|
||||
echo "<script>console.log('Echec de la connexion à la base');</script>";
|
||||
exit();
|
||||
}
|
||||
mysqli_set_charset($connexion,'utf8');
|
||||
return $connexion;
|
||||
}
|
||||
|
||||
// déconnexion de la BD
|
||||
function deconnectBD($connexion) {
|
||||
mysqli_close($connexion);
|
||||
}
|
||||
|
||||
function getAllIngredients(){
|
||||
$c = seConnecter();
|
||||
$requete = "
|
||||
SELECT *
|
||||
FROM Ingredient
|
||||
ORDER BY nom;
|
||||
";
|
||||
$resultatIngredients = mysqli_query($c, $requete);
|
||||
$listeIngredients = [];
|
||||
while($ingredient = mysqli_fetch_assoc($resultatIngredients)){
|
||||
$listeIngredients[$ingredient['id']] = $ingredient;
|
||||
}
|
||||
|
||||
deconnectBD($c);
|
||||
return $listeIngredients;
|
||||
}
|
||||
|
||||
function getAllUstensiles(){
|
||||
$c = seConnecter();
|
||||
$requete = "
|
||||
SELECT *
|
||||
FROM Ustensile
|
||||
ORDER BY nom;
|
||||
";
|
||||
$resultatUstensiles = mysqli_query($c, $requete);
|
||||
$listeUstensiles = [];
|
||||
while($ustensile = mysqli_fetch_assoc($resultatUstensiles)){
|
||||
$listeUstensiles[$ustensile['id']] = $ustensile;
|
||||
}
|
||||
|
||||
deconnectBD($c);
|
||||
return $listeUstensiles;
|
||||
}
|
||||
|
||||
function getAllPreparations(){
|
||||
$c = seConnecter();
|
||||
$requete = "
|
||||
SELECT *
|
||||
FROM Preparation
|
||||
ORDER BY nom;
|
||||
";
|
||||
$resultatPreparations = mysqli_query($c, $requete);
|
||||
$listePreparations = [];
|
||||
while($preparation = mysqli_fetch_assoc($resultatPreparations)){
|
||||
$listePreparations[$preparation['id']] = $preparation;
|
||||
}
|
||||
|
||||
deconnectBD($c);
|
||||
return $listePreparations;
|
||||
}
|
||||
|
||||
function getAllRecettes(){
|
||||
$c = seConnecter();
|
||||
$requete = "
|
||||
SELECT *
|
||||
FROM Recette
|
||||
ORDER BY nom;
|
||||
";
|
||||
$resultatRecettes = mysqli_query($c, $requete);
|
||||
$listeRecettes = [];
|
||||
while($recette = mysqli_fetch_assoc($resultatRecettes)){
|
||||
$listeRecettes[$recette['id']] = $recette;
|
||||
}
|
||||
|
||||
deconnectBD($c);
|
||||
return $listeRecettes;
|
||||
}
|
||||
|
||||
function recupereGenres($c){
|
||||
$requete = "
|
||||
SELECT *
|
||||
FROM Genre
|
||||
;";
|
||||
$resultatGenre = mysqli_query($c,$requete);
|
||||
$listeGenres = [];
|
||||
|
||||
while ($genre = mysqli_fetch_assoc($resultatGenre)){
|
||||
$listeGenres[$genre['id']] = $genre['nom'];
|
||||
}
|
||||
|
||||
return $listeGenres;
|
||||
}
|
||||
|
||||
function recupereUnites($c){
|
||||
$requete = "
|
||||
SELECT *
|
||||
FROM Unite
|
||||
;";
|
||||
$resultatUnite = mysqli_query($c,$requete);
|
||||
$listeUnites = [];
|
||||
|
||||
while ($unite = mysqli_fetch_assoc($resultatUnite)){
|
||||
$listeUnites[$unite['id']] = $unite['nom'];
|
||||
}
|
||||
return $listeUnites;
|
||||
}
|
||||
|
||||
// modification vaut false si on effectue une création de recette et l'id de la recette à modifier sinon
|
||||
// les listes d'ingrédients, de préparation et d'ustensile sont des tableaux de tableaux indexés sur les id des éléments utilisés.
|
||||
function insererRecette($infosRecette, $listeIngredients, $listeUstensile, $listePreparation, $listeReutilise, $modification){
|
||||
$c = seConnecter();
|
||||
try {
|
||||
mysqli_begin_transaction($c);
|
||||
|
||||
$nom = echappementBDD($infosRecette['nom']);
|
||||
$tempsTotal = calculeMinutesFromTexte($infosRecette['tempsTotal']);
|
||||
$genre = $infosRecette['genre'];
|
||||
$unitePortion = $infosRecette['unitePortion'];
|
||||
$nbPortion = $infosRecette['nbPortion'];
|
||||
$realisation = echappementBDD(ecritureVersLecture($infosRecette['realisation']));
|
||||
|
||||
if($modification){
|
||||
$idRecette = $modification;
|
||||
$requetePrincipale = "
|
||||
UPDATE Recette
|
||||
SET
|
||||
nom = '$nom',
|
||||
tempsTotal = $tempsTotal,
|
||||
genre = $genre,
|
||||
unitePortion = $unitePortion,
|
||||
nbPortion = $nbPortion,
|
||||
realisation = '$realisation'
|
||||
WHERE id = $idRecette;
|
||||
";
|
||||
mysqli_query($c, $requetePrincipale);
|
||||
|
||||
$requeteSupprIngredients = "DELETE FROM RecetteIngredient WHERE recette = $idRecette;";
|
||||
mysqli_query($c, $requeteSupprIngredients);
|
||||
|
||||
$requeteSupprUstensiles = "DELETE FROM RecetteUstensile WHERE recette = $idRecette;";
|
||||
mysqli_query($c, $requeteSupprUstensiles);
|
||||
|
||||
$requeteSupprPreparations = "DELETE FROM RecettePreparation WHERE recette = $idRecette;";
|
||||
mysqli_query($c, $requeteSupprPreparations);
|
||||
|
||||
$requeteSupprReutilises = "DELETE FROM Reutilise WHERE utilisant = $idRecette;";
|
||||
mysqli_query($c, $requeteSupprReutilises);
|
||||
|
||||
}else{
|
||||
$requetePrincipale = "
|
||||
INSERT INTO Recette (nom, tempsTotal, genre, unitePortion, nbPortion, realisation)
|
||||
VALUES (
|
||||
'$nom',
|
||||
$tempsTotal,
|
||||
$genre,
|
||||
$unitePortion,
|
||||
$nbPortion,
|
||||
'$realisation'
|
||||
);";
|
||||
mysqli_query($c, $requetePrincipale);
|
||||
$idRecette = mysqli_insert_id($c);
|
||||
}
|
||||
|
||||
foreach($listeIngredients as $id => $ingredient){
|
||||
$quantite = $ingredient['quantite'];
|
||||
$unite = $ingredient['unite'];
|
||||
$requete = "
|
||||
INSERT INTO RecetteIngredient (ingredient, recette, quantite, unite)
|
||||
VALUES (
|
||||
$id,
|
||||
$idRecette,
|
||||
$quantite,
|
||||
$unite
|
||||
)
|
||||
;";
|
||||
mysqli_query($c, $requete);
|
||||
}
|
||||
|
||||
foreach($listeUstensile as $id => $ustensile){
|
||||
$commentaire = mysqli_real_escape_string($c, $ustensile['commentaire']);
|
||||
$requete = "
|
||||
INSERT INTO RecetteUstensile (ustensile, recette, commentaire)
|
||||
VALUES (
|
||||
$id,
|
||||
$idRecette,
|
||||
'$commentaire'
|
||||
)
|
||||
;";
|
||||
mysqli_query($c, $requete);
|
||||
}
|
||||
|
||||
foreach($listePreparation as $id => $preparation){
|
||||
$duree = $preparation['duree'];
|
||||
$temperature = $preparation['temp'];
|
||||
$requete = "
|
||||
INSERT INTO RecettePreparation (preparation, recette, duree, temperature)
|
||||
VALUES (
|
||||
$id,
|
||||
$idRecette,
|
||||
'$duree',
|
||||
'$temperature'
|
||||
)
|
||||
;";
|
||||
mysqli_query($c, $requete);
|
||||
}
|
||||
|
||||
foreach($listeReutilise as $id => $utilisee){
|
||||
$requete = "
|
||||
INSERT INTO Reutilise (utilisee, utilisant)
|
||||
VALUES (
|
||||
$id,
|
||||
$idRecette
|
||||
)
|
||||
;";
|
||||
mysqli_query($c, $requete);
|
||||
}
|
||||
mysqli_commit($c);
|
||||
}
|
||||
catch (Exception $e){
|
||||
mysqli_query('ROLLBACK');
|
||||
$echec = true;
|
||||
}
|
||||
|
||||
return $idRecette;
|
||||
}
|
||||
|
||||
|
||||
?>
|
83
inc/routes.php
Normal file
83
inc/routes.php
Normal file
|
@ -0,0 +1,83 @@
|
|||
<?php
|
||||
$routes = array(
|
||||
'accueil' => array(
|
||||
'controleur' => 'cAccueil',
|
||||
'vue' => 'vAccueil',
|
||||
'nom' => 'Accueil',
|
||||
'aside' => 'aAccueil',
|
||||
'script' => 'sAccueil'
|
||||
),
|
||||
|
||||
'ajouterRecette' => array(
|
||||
'controleur' => 'cAjouterRecette',
|
||||
'vue' => 'vAjouterRecette',
|
||||
'nom' => 'Ajouter une recette',
|
||||
'aside' => 'aAjouterRecette',
|
||||
'script' => 'void'
|
||||
),
|
||||
|
||||
'ajouterElement' => array(
|
||||
'controleur' => 'cAjouterElement',
|
||||
'vue' => 'vAjouterElement',
|
||||
'nom' => 'Ajouter des éléments',
|
||||
'aside' => 'void',
|
||||
'script' => 'void'
|
||||
),
|
||||
|
||||
'statistiques' => array(
|
||||
'controleur' => 'cStatistiques',
|
||||
'vue' => 'vStatistiques',
|
||||
'nom' => 'Statistiques',
|
||||
'aside' => 'void',
|
||||
'script' => 'void'
|
||||
),
|
||||
|
||||
'recette' => array(
|
||||
'controleur' => 'cRecette',
|
||||
'vue' => 'vRecette',
|
||||
'nom' => 'Recette',
|
||||
'aside' => 'aRecette',
|
||||
'script' => 'sRecette'
|
||||
),
|
||||
|
||||
'supprimerRecette' => array(
|
||||
'controleur' => 'cSupprimerRecette',
|
||||
'vue' => 'vSupprimerRecette',
|
||||
'nom' => 'Suppresion d\'une recette',
|
||||
'aside' => 'void',
|
||||
'script' => 'void'
|
||||
),
|
||||
|
||||
'supprimerElement' => array(
|
||||
'controleur' => 'cSupprimerElement',
|
||||
'vue' => 'vSupprimerElement',
|
||||
'nom' => 'Suppresion d\'un élément',
|
||||
'aside' => 'void',
|
||||
'script' => 'void'
|
||||
),
|
||||
|
||||
'element' => array(
|
||||
'controleur' => 'cElement',
|
||||
'vue' => 'vElement',
|
||||
'nom' => '',
|
||||
'aside' => 'void',
|
||||
'script' => 'void'
|
||||
),
|
||||
|
||||
'connexion' => array(
|
||||
'controleur' => 'cConnexion',
|
||||
'vue' => 'vConnexion',
|
||||
'nom' => 'Connexion',
|
||||
'aside' => 'void',
|
||||
'script' => 'void'
|
||||
),
|
||||
|
||||
'test' => array(
|
||||
'controleur' => 'cTests',
|
||||
'vue' => 'vTests',
|
||||
'nom' => 'Tests',
|
||||
'aside' => 'void',
|
||||
'script' => 'void'
|
||||
)
|
||||
);
|
||||
?>
|
Loading…
Add table
Add a link
Reference in a new issue