Beispiel #1
0
 /**
  * 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);
     }
 }
Beispiel #2
0
 /**
  * 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';
     }
 }