diff --git a/R3.01/tp/tp2/ex5/conjuguer.php b/R3.01/tp/tp2/ex5/conjuguer.php index 507d322..e51405d 100644 --- a/R3.01/tp/tp2/ex5/conjuguer.php +++ b/R3.01/tp/tp2/ex5/conjuguer.php @@ -1,23 +1,45 @@ - - - - - + + + + + + Exercice 5 + + +
+

Conjugaison

- - - -
+ +

+ +

+ Verbe : + +

-
- + +
+

+ +
+ + +

+ Retour au formulaire +

+
+ diff --git a/R3.01/tp/tp2/ex5/include/controller.php b/R3.01/tp/tp2/ex5/include/controller.php index f35c02d..f1f8309 100644 --- a/R3.01/tp/tp2/ex5/include/controller.php +++ b/R3.01/tp/tp2/ex5/include/controller.php @@ -1,12 +1,64 @@ array("e","es","e","ons","ez","ent"), - "futur"=>array("erai","eras","era","erons","erez","eront"), - "imparfait"=>array("ais","ais","ait","ions","iez","aient") + 'present' => array('e', 'es', 'e', 'ons', 'ez', 'ent'), + 'futur' => array('erai', 'eras', 'era', 'erons', 'erez', 'eront'), + 'imparfait' => array('ais', 'ais', 'ait', 'ions', 'iez', 'aient') ); -$pronoms=array("je","tu","il","nous","vous","ils"); +$libellesTemps = array( + 'present' => 'Present', + 'futur' => 'Futur', + 'imparfait' => 'Imparfait' +); -$verbe = filter_input(INPUT_POST,"verbe",FILTER_SANITIZE_STRING); -$radical = substr($verbe,0,strlen($verbe)-2); +$pronoms = array('je', 'tu', 'il', 'nous', 'vous', 'ils'); + +$verbeSaisi = filter_input(INPUT_POST, 'verbe', FILTER_UNSAFE_RAW); +$verbeSaisi = is_string($verbeSaisi) ? trim($verbeSaisi) : ''; +$verbe = strtolower($verbeSaisi); + +$tempsChoisis = filter_input(INPUT_POST, 'temps', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); +$tempsChoisis = is_array($tempsChoisis) ? $tempsChoisis : array(); + +$messageErreur = ''; +$conjugaisons = array(); + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + if ($verbe === '') { + $messageErreur = 'Veuillez saisir un verbe.'; + } elseif (strlen($verbe) < 3 || substr($verbe, -2) !== 'er') { + $messageErreur = 'Veuillez saisir un verbe du premier groupe.'; + } elseif ($tempsChoisis === array()) { + $messageErreur = 'Veuillez choisir au moins un temps.'; + } else { + $radical = substr($verbe, 0, strlen($verbe) - 2); + + foreach ($tempsChoisis as $temps) { + if (!isset($terminaisons[$temps], $libellesTemps[$temps])) { + continue; + } + + $formes = array(); + + foreach ($pronoms as $index => $pronom) { + $forme = $radical . $terminaisons[$temps][$index]; + + if ($pronom === 'je' && preg_match('/^[aeiouh]/', $forme) === 1) { + $formes[] = "j'" . $forme; + } else { + $formes[] = $pronom . ' ' . $forme; + } + } + + $conjugaisons[] = array( + 'temps' => $libellesTemps[$temps], + 'formes' => $formes + ); + } + + if ($conjugaisons === array()) { + $messageErreur = 'Aucun temps valide n a ete transmis.'; + } + } +}