You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sae_2a_anglais/Project/php/controller/TeacherController.php

91 lines
3.1 KiB

<?php
namespace controller;
use config\Validation;
use model\MdlTeacher;
use gateway\VocabularyListGateway;
use Exception;
use model\MdlUser;
class TeacherController extends UserController
{
public function affAllVocab(): void
{
global $twig;
global $user;
$mdl = new MdlTeacher();
$vocabularies = $mdl->findByUser($user->getId());
$groups = $mdl->getAllGroups();
echo $twig->render('manageVocabListView.html', ['vocabularies' => $vocabularies, 'groups' => $groups, 'userID' => $user->getId(), 'userRole' => $user->getRoles()]);
}
public function DelById():void{
global $user;
$mdl = new MdlTeacher();
$id = Validation::filter_int($_GET['vocabID'] ?? null);
$mdl->removeVocById($id);
$this->affAllVocab();
}
public function getContent(){
global $twig;
global $user;
$mdl = new MdlTeacher();
$vocabularies = $mdl->findByUser($user->getId());
$name = Validation::filter_int($_GET['vocabID'] ?? null);
$groupsVocab = $mdl->findGroupVocab($name);
$groupsNoVocab = $mdl->findGroupNoVocab($name);
$content= $mdl->findByIdVoc($name);
echo $twig->render('manageVocabListView.html', ['vocabularies' => $vocabularies, 'groupsVocab' => $groupsVocab, 'groupsNoVocab' => $groupsNoVocab, 'userID' => $user->getId(), 'userRole' => $user->getRoles(), 'content' => $content, 'vocabID' => $name]);
}
public function addVocabToGroup():void {
global $twig;
global $user;
$vocabID = Validation::filter_int($_GET['vocabID'] ?? null);
$groupID = Validation::filter_int($_GET['selectedGroup'] ?? null);
$mdl = new MdlTeacher();
$mdl->addVocabToGroup($vocabID, $groupID);
$this->getContent();
}
public function removeVocabFromGroup():void {
global $twig;
global $user;
$vocabID = Validation::filter_int($_GET['vocabID'] ?? null);
$groupID = Validation::filter_int($_GET['selectedGroup'] ?? null);
$mdl = new MdlTeacher();
$mdl->removeVocabFromGroup($vocabID, $groupID);
$this->getContent();
}
public function showVocabListForm(): void {
global $twig;
global $user;
echo $twig->render('addVocabList.html', ['userID' => $user->getId(), 'userRole' => $user->getRoles() ]);
}
public function addVocabList():void {
global $user;
$mdl = new MdlTeacher();
$name = Validation::filter_str_simple($_POST['listName'] ?? null);
$words = array();
for ($i = 0; $i <= 20; $i++) {
if (empty($_POST['frenchWord' . $i]) || empty($_POST['englishWord' . $i])) break;
$frenchWord = Validation::filter_str_simple($_POST['frenchWord' . $i] ?? null);
$englishWord = Validation::filter_str_simple($_POST['englishWord' . $i] ?? null);
$words[] = array($frenchWord, $englishWord);
}
if (count($words) % 2 == 1) throw new Exception("il manque un mot");
else {
$mdl->addVocabList($user->getId(), $name, "", $words);
$this->affAllVocab();
}
}
}