/** * create the step and the question. * * @param Step[] $steps * @param Exercise $exercise * @param string $exoPath */ private function createQuestion(array $steps, Exercise $exercise, $exoPath) { foreach ($steps as $step) { $this->qtiRepository->razValues(); $newStep = $this->createStep($step, $exercise); $questions = opendir($exoPath . '/' . $step['order']); $questionFiles = []; while (($question = readdir($questions)) !== false) { if ($question !== '.' && $question !== '..') { $questionFiles[] = $exoPath . '/' . $step['order'] . '/' . $question; } } sort($questionFiles); foreach ($questionFiles as $question) { $this->qtiRepository->createDirQTI(); $files = opendir($question); while (($file = readdir($files)) !== false) { if ($file !== '.' && $file !== '..') { copy($question . '/' . $file, $this->qtiRepository->getUserDir() . 'ws/' . $file); } } $this->qtiRepository->scanFilesToImport($newStep); } $this->qtiRepository->assocExerciseQuestion(true); } }
/** * create the directory questions to export an exercise and export the qti files. * * @param \UJM\ExoBundle\Entity\Question[] $questions * @param int $numStep */ public function createQuestionsDirectory(array $questions, $numStep) { $fs = new Filesystem(); $fs->mkdir($this->qtiRepository->getUserDir() . 'questions'); $i = 'a'; $fs->mkdir($this->qtiRepository->getUserDir() . 'questions/' . $numStep); foreach ($questions as $question) { $this->qtiRepository->export($question); $fs->mkdir($this->qtiRepository->getUserDir() . 'questions/' . $numStep . '/' . $numStep . '_question_' . $i); $iterator = new \DirectoryIterator($this->qtiRepository->getUserDir()); foreach ($iterator as $element) { if (!$element->isDot() && $element->isFile()) { rename($this->qtiRepository->getUserDir() . $element->getFilename(), $this->qtiRepository->getUserDir() . 'questions/' . $numStep . '/' . $numStep . '_question_' . $i . '/' . $element->getFilename()); } } $i .= 'a'; } }