Convert c_quiz_rel_question.exercice_id to c_quiz_rel_question.quiz_id

#1428
pull/3768/head
Julio Montoya 5 years ago
parent ea99386542
commit 5deee67015
  1. 2
      public/main/exercise/TestCategory.php
  2. 28
      public/main/exercise/exercise.class.php
  3. 2
      public/main/exercise/exercise_show.php
  4. 26
      public/main/exercise/question.class.php
  5. 18
      public/main/exercise/question_pool.php
  6. 2
      public/main/inc/ajax/exercise.ajax.php
  7. 2
      public/main/inc/lib/exercise.lib.php
  8. 2
      public/main/inc/lib/tracking.lib.php
  9. 2
      public/main/lp/learnpath.class.php
  10. 31
      public/plugin/test2pdf/src/test2pdf.lib.php
  11. 25
      src/CoreBundle/Migrations/Schema/V200/Version20170904145500.php
  12. 10
      src/CourseBundle/Component/CourseCopy/CourseBuilder.php
  13. 12
      src/CourseBundle/Component/CourseCopy/CourseRecycler.php
  14. 2
      src/CourseBundle/Component/CourseCopy/CourseRestorer.php
  15. 9
      src/CourseBundle/Entity/CLp.php
  16. 10
      src/CourseBundle/Entity/CQuizQuestion.php
  17. 23
      src/CourseBundle/Entity/CQuizRelQuestion.php
  18. 16
      tests/scripts/delete_deleted_exercises_with_questions.php

@ -527,7 +527,7 @@ class TestCategory
INNER JOIN $tableQuestion q
ON (q.id = qrc.question_id AND q.c_id = eq.c_id)
WHERE
exercice_id = $exerciseId AND
quiz_id = $exerciseId AND
qrc.c_id = $courseId
$mandatoryCondition
";

@ -654,7 +654,7 @@ class Exercise
FROM $TBL_EXERCICE_QUESTION e
INNER JOIN $TBL_QUESTIONS q
ON (e.question_id = q.id AND e.c_id = ".$this->course_id." )
WHERE e.exercice_id = '".$this->id."' ";
WHERE e.quiz_id = '".$this->id."' ";
$orderCondition = ' ORDER BY question_order ';
@ -758,7 +758,7 @@ class Exercise
ON (e.question_id = q.iid AND e.c_id = q.c_id)
WHERE
e.c_id = {$this->course_id} AND
e.exercice_id = ".$this->getId();
e.quiz_id = ".$this->getId();
$result = Database::query($sql);
$count = 0;
@ -789,7 +789,7 @@ class Exercise
ON (e.question_id= q.iid AND e.c_id = q.c_id)
WHERE
e.c_id = {$this->course_id} AND
e.exercice_id = '".$this->getId()."'
e.quiz_id = '".$this->getId()."'
ORDER BY q.question";
$result = Database::query($sql);
$list = [];
@ -1165,7 +1165,7 @@ class Exercise
ON (e.question_id= q.iid AND e.c_id = q.c_id)
WHERE
e.c_id = {$this->course_id} AND
e.exercice_id = '".$this->getId()."'
e.quiz_id = '".$this->getId()."'
$randomLimit ";
$result = Database::query($sql);
$questionList = [];
@ -1215,7 +1215,7 @@ class Exercise
WHERE
q.iid = $questionId AND
e.c_id = {$this->course_id} AND
e.exercice_id = ".$this->getId();
e.quiz_id = ".$this->getId();
$result = Database::query($sql);
@ -1235,7 +1235,7 @@ class Exercise
WHERE
q.type = $type AND
e.c_id = {$this->course_id} AND
e.exercice_id = ".$this->id;
e.quiz_id = ".$this->id;
$result = Database::query($sql);
@ -1260,7 +1260,7 @@ class Exercise
WHERE
q.type NOT IN ('$questionTypeToString') AND
e.c_id = {$this->course_id} AND
e.exercice_id = ".$this->getId();
e.quiz_id = ".$this->getId();
$result = Database::query($sql);
@ -1732,7 +1732,7 @@ class Exercise
WHERE
c_id = ".$this->course_id.' AND
question_id = '.$questionId.' AND
exercice_id='.$this->getId();
quiz_id='.$this->getId();
Database::query($sql);
}
}
@ -3025,7 +3025,7 @@ class Exercise
if ($newQuestionId) {
$newQuestionObj = Question::read($newQuestionId, null, false);
if (isset($newQuestionObj) && $newQuestionObj) {
$sql = "INSERT INTO $exerciseRelQuestionTable (c_id, question_id, exercice_id, question_order)
$sql = "INSERT INTO $exerciseRelQuestionTable (c_id, question_id, quiz_id, question_order)
VALUES ($courseId, ".$newQuestionId.", ".$newId.", '$count')";
Database::query($sql);
$count++;
@ -7906,7 +7906,7 @@ class Exercise
INNER JOIN $categoryTable cat
ON (cat.iid = catRel.category_id)
WHERE
e.exercice_id = ".(int) ($this->getId());
e.quiz_id = ".(int) ($this->getId());
$result = Database::query($sql);
$categoriesInExercise = [];
@ -8584,7 +8584,7 @@ class Exercise
ON (e.question_id = q.iid AND e.c_id = q.c_id)
WHERE
e.c_id = {$this->course_id} AND
e.exercice_id = '".$this->getId()."'
e.quiz_id = '".$this->getId()."'
ORDER BY question_order
LIMIT $start, $length
";
@ -9026,7 +9026,7 @@ class Exercise
// Count number exercise - teacher
$sql = "SELECT count(*) count FROM $TBL_EXERCISE_QUESTION
WHERE c_id = $courseId AND exercice_id = $exerciseId";
WHERE c_id = $courseId AND quiz_id = $exerciseId";
$sqlresult = Database::query($sql);
$rowi = (int) Database::result($sqlresult, 0, 0);
@ -10426,7 +10426,7 @@ class Exercise
ON (e.question_id = q.iid AND e.c_id = q.c_id)
WHERE
e.c_id = {$this->course_id} AND
e.exercice_id = ".$this->getId();
e.quiz_id = ".$this->getId();
$result = Database::query($sql);
$row = Database::fetch_array($result);
@ -10439,7 +10439,7 @@ class Exercise
ON (e.question_id = q.iid AND e.c_id = q.c_id)
WHERE
e.c_id = {$this->course_id} AND
e.exercice_id = '".$this->getId()."'
e.quiz_id = '".$this->getId()."'
ORDER BY question_order";
$result = Database::query($sql);

@ -340,7 +340,7 @@ $sql = "SELECT attempts.question_id, answer
ON stats_exercises.exe_id = attempts.exe_id
INNER JOIN $TBL_EXERCISE_QUESTION AS quizz_rel_questions
ON
quizz_rel_questions.exercice_id=stats_exercises.exe_exo_id AND
quizz_rel_questions.quiz_id=stats_exercises.exe_exo_id AND
quizz_rel_questions.question_id = attempts.question_id AND
quizz_rel_questions.c_id=".api_get_course_int_id()."
INNER JOIN $TBL_QUESTIONS AS questions

@ -192,10 +192,10 @@ abstract class Question
if ($getExerciseList) {
$tblQuiz = Database::get_course_table(TABLE_QUIZ_TEST);
$sql = "SELECT DISTINCT q.exercice_id
$sql = "SELECT DISTINCT q.quiz_id
FROM $TBL_EXERCISE_QUESTION q
INNER JOIN $tblQuiz e
ON e.c_id = q.c_id AND e.iid = q.exercice_id
ON e.c_id = q.c_id AND e.iid = q.quiz_id
WHERE
q.c_id = $course_id AND
q.question_id = $id AND
@ -206,7 +206,7 @@ abstract class Question
// fills the array with the exercises which this question is in
if ($result) {
while ($obj = Database::fetch_object($result)) {
$objQuestion->exerciseList[] = $obj->exercice_id;
$objQuestion->exerciseList[] = $obj->quiz_id;
}
}
}
@ -585,7 +585,7 @@ abstract class Question
$TBL_EXERCISE_QUESTION as test_question
WHERE
question.iid = test_question.question_id AND
test_question.exercice_id = ".$exerciseId." AND
test_question.quiz_id = ".$exerciseId." AND
question.c_id = $c_id AND
test_question.c_id = $c_id ";
$result = Database::query($sql);
@ -848,7 +848,7 @@ abstract class Question
$newExercise->read($exerciseId, false);
$count = $newExercise->getQuestionCount();
$count++;
$sql = "INSERT INTO $exerciseRelQuestionTable (c_id, question_id, exercice_id, question_order)
$sql = "INSERT INTO $exerciseRelQuestionTable (c_id, question_id, quiz_id, question_order)
VALUES ({$this->course['real_id']}, ".$id.', '.$exerciseId.", '$count')";
Database::query($sql);
@ -891,7 +891,7 @@ abstract class Question
WHERE
c_id = $courseId AND
question_id = $id AND
exercice_id = $exerciseId";
quiz_id = $exerciseId";
$res = Database::query($sql);
if (Database::num_rows($res) > 0) {
$row = Database::fetch_array($res);
@ -900,7 +900,7 @@ abstract class Question
SET question_order = question_order-1
WHERE
c_id = $courseId AND
exercice_id = $exerciseId AND
quiz_id = $exerciseId AND
question_order > ".$row['question_order'];
Database::query($sql);
}
@ -910,7 +910,7 @@ abstract class Question
WHERE
c_id = $courseId AND
question_id = $id AND
exercice_id = $exerciseId";
quiz_id = $exerciseId";
Database::query($sql);
return true;
@ -950,7 +950,7 @@ abstract class Question
// if the question must be removed from all exercises
if (!$deleteFromEx) {
//update the question_order of each question to avoid inconsistencies
$sql = "SELECT exercice_id, question_order
$sql = "SELECT quiz_id, question_order
FROM $TBL_EXERCISE_QUESTION
WHERE c_id = $courseId AND question_id = ".$id;
@ -962,7 +962,7 @@ abstract class Question
SET question_order = question_order-1
WHERE
c_id = $courseId AND
exercice_id = ".(int) ($row['exercice_id']).' AND
quiz_id = ".(int) ($row['quiz_id']).' AND
question_order > '.$row['question_order'];
Database::query($sql);
}
@ -1855,7 +1855,7 @@ abstract class Question
INNER JOIN $tbl_quiz_rel_question r
ON
q.id = r.question_id AND
exercice_id = $quiz_id AND
quiz_id = $quiz_id AND
q.c_id = $course_id AND
r.c_id = $course_id";
$rs_max = Database::query($sql);
@ -1877,12 +1877,12 @@ abstract class Question
// Get the max question_order
$sql = "SELECT max(question_order) as max_order
FROM $tbl_quiz_rel_question
WHERE c_id = $course_id AND exercice_id = $quiz_id ";
WHERE c_id = $course_id AND quiz_id = $quiz_id ";
$rs_max_order = Database::query($sql);
$row_max_order = Database::fetch_object($rs_max_order);
$max_order = $row_max_order->max_order + 1;
// Attach questions to quiz
$sql = "INSERT INTO $tbl_quiz_rel_question (c_id, question_id, exercice_id, question_order)
$sql = "INSERT INTO $tbl_quiz_rel_question (c_id, question_id, quiz_id, question_order)
VALUES($course_id, $question_id, $quiz_id, $max_order)";
Database::query($sql);
}

@ -628,7 +628,7 @@ function getQuestions(
$currentExerciseCondition = "
AND qu.iid NOT IN (
SELECT question_id FROM $TBL_EXERCISE_QUESTION
WHERE exercice_id = $fromExercise AND c_id = $currentCourseId
WHERE quiz_id = $fromExercise AND c_id = $currentCourseId
)";
}
@ -665,7 +665,7 @@ function getQuestions(
question,
type,
level,
qt.exercice_id exerciseId';
qt.quiz_id exerciseId';
if ($getCount) {
$select = 'count(qu.iid) as count';
}
@ -677,7 +677,7 @@ function getQuestions(
$from
{$efConditions['from']}
WHERE
qt.exercice_id = $exerciseId AND
qt.quiz_id = $exerciseId AND
qt.c_id = $selected_course AND
qu.c_id = $selected_course
$where
@ -713,7 +713,7 @@ function getQuestions(
$answer_where .= " AND q.description LIKE '%$description%'";
}
$select = ' qu.*, r.exercice_id exerciseId ';
$select = ' qu.*, r.quiz_id exerciseId ';
if ($getCount) {
$select = 'count(qu.iid) as count';
}
@ -725,7 +725,7 @@ function getQuestions(
INNER JOIN $TBL_EXERCISE_QUESTION r
ON (qu.c_id = r.c_id AND qu.iid = r.question_id)
INNER JOIN $TBL_EXERCISES ex
ON (ex.id = r.exercice_id AND ex.c_id = r.c_id)
ON (ex.iid = r.quiz_id AND ex.c_id = r.c_id)
$from
{$efConditions['from']}
WHERE
@ -760,7 +760,7 @@ function getQuestions(
{$efConditions['from']}
WHERE
r.c_id = '$selected_course' AND
(r.exercice_id = '-1' OR r.exercice_id = '0')
(r.quiz_id = '-1' OR r.quiz_id = '0')
$level_where
$answer_where
{$efConditions['where']}
@ -802,7 +802,7 @@ function getQuestions(
}
$sessionCondition = api_get_session_condition($session_id, true, 'q.session_id');
$select = 'qu.iid, question, qu.type, level, q.session_id, qt.exercice_id exerciseId ';
$select = 'qu.iid, question, qu.type, level, q.session_id, qt.quiz_id exerciseId ';
if ($getCount) {
$select = 'count(qu.iid) as count';
}
@ -815,7 +815,7 @@ function getQuestions(
INNER JOIN $TBL_EXERCISE_QUESTION as qt
ON (qu.iid = qt.question_id AND qu.c_id = qt.c_id)
INNER JOIN $TBL_EXERCISES as q
ON (q.c_id = qu.c_id AND q.iid = qt.exercice_id)
ON (q.c_id = qu.c_id AND q.iid = qt.quiz_id)
{$efConditions['from']}
$from
WHERE
@ -1306,7 +1306,7 @@ function isQuestionInActiveQuiz($questionId)
"SELECT COUNT(qq.question_id) count
FROM $tblQuizRelQuestion qq
INNER JOIN $tblQuiz q
ON qq.exercice_id = q.iid
ON qq.quiz_id = q.iid
WHERE
q.active = 1 AND
qq.question_id = $questionId"

@ -349,7 +349,7 @@ switch ($action) {
$TBL_QUESTIONS,
['question_order' => $counter],
[
'question_id = ? AND c_id = ? AND exercice_id = ? ' => [
'question_id = ? AND c_id = ? AND quiz_id = ? ' => [
(int) $new_order_id,
$course_id,
$exercise_id,

@ -1662,7 +1662,7 @@ HOTSPOT;
session s
WHERE qz.c_id = c.id AND
(qz.session_id = s.id OR qz.session_id = 0) AND
qq.exercice_id = qz.iid AND ";
qq.quiz_id = qz.iid AND ";
if (!empty($excludeTestId)) {
$excludeTestId = (int) $excludeTestId;
$sql .= " qz.iid != $excludeTestId AND ";

@ -6525,7 +6525,7 @@ class Tracking
INNER JOIN $tquiz q
ON q.iid = te.exe_exo_id
INNER JOIN $tquiz_rel_question rq
ON rq.exercice_id = q.iid AND rq.c_id = q.c_id
ON rq.quiz_id = q.iid AND rq.c_id = q.c_id
INNER JOIN $tquiz_question qq
ON
qq.iid = rq.question_id AND

@ -507,7 +507,7 @@ class learnpath
q.iid = quiz_rel_question.question_id AND
q.c_id = quiz_rel_question.c_id
WHERE
quiz_rel_question.exercice_id = '.$id." AND
quiz_rel_question.quiz_id = '.$id." AND
q.c_id = $course_id AND
quiz_rel_question.c_id = $course_id ";
$rsQuiz = Database::query($sql);

@ -50,11 +50,11 @@ function showExerciseCourse($courseId, $sessionId = 0)
$courseId = (int) $courseId;
$sessionId = (int) $sessionId;
$conditionSession = api_get_session_condition($sessionId, true, true, 'a.session_id');
$sql = "SELECT a.*
FROM $tableQuiz a
LEFT JOIN $tableLpItem b ON a.iid = b.path AND a.c_id = b.c_id
$sql = "SELECT a.*
FROM $tableQuiz a
LEFT JOIN $tableLpItem b ON a.iid = b.path AND a.c_id = b.c_id
WHERE a.c_id = $courseId
AND (a.active = 1 OR (item_type = 'quiz' AND b.c_id = $courseId))
AND (a.active = 1 OR (item_type = 'quiz' AND b.c_id = $courseId))
$conditionSession
ORDER BY a.title ASC;";
$res = Database::query($sql);
@ -102,13 +102,18 @@ function getQuestionsFromCourse($courseId, $quizId, $sessionId = 0)
$tableQuiz = Database::get_course_table(TABLE_QUIZ_TEST);
$conditionSession = api_get_session_condition($sessionId, true, true, 'q.session_id');
$sql = "SELECT a.question_id AS question_id
FROM $tableQuizQuestion a
INNER JOIN $tableQuestion b ON a.question_id = b.iid
INNER JOIN $tableQuiz q ON q.iid = a.exercice_id
WHERE a.c_id = $courseId AND b.c_id = a.c_id AND a.exercice_id = $quizId
AND (b.type IN (1, 2, 9, 10, 11, 12, 14))
$conditionSession
$sql = "SELECT a.question_id AS question_id
FROM $tableQuizQuestion a
INNER JOIN $tableQuestion b
ON a.question_id = b.iid
INNER JOIN $tableQuiz q
ON q.iid = a.quiz_id
WHERE
a.c_id = $courseId AND
b.c_id = a.c_id AND
a.quiz_id = $quizId AND
(b.type IN (1, 2, 9, 10, 11, 12, 14))
$conditionSession
ORDER BY question_order ASC;";
$res = Database::query($sql);
$aux = [];
@ -131,8 +136,8 @@ function getInfoQuestion($courseId, $id)
$courseId = (int) $courseId;
$id = (int) $id;
$tableQuestion = Database::get_course_table(TABLE_QUIZ_QUESTION);
$sql = "SELECT * FROM $tableQuestion
WHERE c_id = $courseId
$sql = "SELECT * FROM $tableQuestion
WHERE c_id = $courseId
AND iid = $id
AND (type IN (1, 2, 9, 10, 11, 12, 14))";
$res = Database::query($sql);

@ -155,19 +155,32 @@ class Version20170904145500 extends AbstractMigrationChamilo
}
$table = $schema->getTable('c_quiz_rel_question');
$this->addSql(
'ALTER TABLE c_quiz_rel_question CHANGE question_id question_id INT DEFAULT NULL, CHANGE exercice_id exercice_id INT DEFAULT NULL'
);
if ($table->hasIndex('exercise')) {
$this->addSql('ALTER TABLE c_quiz_rel_question DROP KEY exercise');
}
$this->addSql('ALTER TABLE c_quiz_rel_question CHANGE question_id question_id INT DEFAULT NULL');
if ($table->hasColumn('question_id')) {
$this->addSql(' ALTER TABLE c_quiz_rel_question CHANGE exercice_id quiz_id INT DEFAULT NULL;');
$this->addSql(
'ALTER TABLE c_quiz_rel_question ADD CONSTRAINT FK_485736AC853CD175 FOREIGN KEY (quiz_id) REFERENCES c_quiz (iid);'
);
$this->addSql('CREATE INDEX exercise ON c_quiz_rel_question (quiz_id);');
}
if (false === $table->hasForeignKey('FK_485736AC1E27F6BF')) {
$this->addSql(
'ALTER TABLE c_quiz_rel_question ADD CONSTRAINT FK_485736AC1E27F6BF FOREIGN KEY (question_id) REFERENCES c_quiz_question (iid)'
);
}
if (false === $table->hasForeignKey('FK_485736AC89D40298')) {
/*if (false === $table->hasForeignKey('FK_485736AC89D40298')) {
$this->addSql(
'ALTER TABLE c_quiz_rel_question ADD CONSTRAINT FK_485736AC89D40298 FOREIGN KEY (exercice_id) REFERENCES c_quiz (iid)'
'ALTER TABLE c_quiz_rel_question ADD CONSTRAINT FK_485736AC89D40298 FOREIGN KEY (quiz_id) REFERENCES c_quiz (iid)'
);
}
}*/
$table = $schema->getTable('c_quiz_question_category');
if (false === $table->hasColumn('resource_node_id')) {

@ -799,7 +799,7 @@ class CourseBuilder
$quiz = new Quiz($obj);
$sql = 'SELECT * FROM '.$table_rel.'
WHERE c_id = '.$courseId.' AND exercice_id = '.$obj->id;
WHERE c_id = '.$courseId.' AND quiz_id = '.$obj->id;
$db_result2 = Database::query($sql);
while ($obj2 = Database::fetch_object($db_result2)) {
$quiz->add_question($obj2->question_id, $obj2->question_order);
@ -905,7 +905,7 @@ class CourseBuilder
INNER JOIN $table_rel r
ON (q.c_id = r.c_id AND q.id = r.question_id)
INNER JOIN $table_qui ex
ON (ex.id = r.exercice_id AND ex.c_id = r.c_id)
ON (ex.id = r.quiz_id AND ex.c_id = r.c_id)
WHERE ex.c_id = $courseId AND ex.active = '-1'
)
UNION
@ -920,7 +920,7 @@ class CourseBuilder
SELECT question_id, q.* FROM $table_que q
INNER JOIN $table_rel r
ON (q.c_id = r.c_id AND q.id = r.question_id)
WHERE r.c_id = $courseId AND (r.exercice_id = '-1' OR r.exercice_id = '0')
WHERE r.c_id = $courseId AND (r.quiz_id = '-1' OR r.quiz_id = '0')
)
";
@ -1008,12 +1008,12 @@ class CourseBuilder
LEFT JOIN '.$table_rel.' as quizz_questions
ON questions.id=quizz_questions.question_id
LEFT JOIN '.$table_qui.' as exercises
ON quizz_questions.exercice_id = exercises.id
ON quizz_questions.quiz_id = exercises.id
WHERE
questions.c_id = quizz_questions.c_id AND
questions.c_id = exercises.c_id AND
exercises.c_id = '.$courseId.' AND
(quizz_questions.exercice_id IS NULL OR
(quizz_questions.quiz_id IS NULL OR
exercises.active = -1)';
$db_result = Database::query($sql);

@ -323,7 +323,7 @@ class CourseRecycler
f.c_id = $courseId AND
i.c_id = f.c_id AND
i.tool = 'forum' AND
f.iid = i.ref AND
f.iid = i.ref AND
i.visibility = 1";
$sql = "DELETE FROM $forumCategoryTable
WHERE c_id = $courseId AND cat_id NOT IN ($subQuery)";
@ -350,7 +350,7 @@ class CourseRecycler
l.c_id = $courseId AND
i.c_id = l.c_id AND
i.tool = 'link' AND
l.iid = i.ref AND
l.iid = i.ref AND
i.visibility = 1";
$sql = "DELETE FROM $linkCategoryTable
WHERE c_id = $courseId AND id NOT IN ($subQuery)";
@ -430,7 +430,7 @@ class CourseRecycler
WHERE c_id = '.$this->course_id.' AND id IN('.$ids.')';
Database::query($sql);
$sql = 'DELETE FROM '.$table_rel.'
WHERE c_id = '.$this->course_id.' AND exercice_id IN('.$ids.')';
WHERE c_id = '.$this->course_id.' AND quiz_id IN('.$ids.')';
Database::query($sql);
}
@ -442,9 +442,9 @@ class CourseRecycler
SELECT q.id, ex.c_id FROM $table_qui_que q
INNER JOIN $table_rel r
ON (q.c_id = r.c_id AND q.id = r.question_id)
INNER JOIN $table_qui ex
ON (ex.id = r.exercice_id AND ex.c_id = r.c_id)
ON (ex.id = r.quiz_id AND ex.c_id = r.c_id)
WHERE ex.c_id = ".$this->course_id." AND (ex.active = '-1' OR ex.id = '-1')
)
UNION
@ -459,7 +459,7 @@ class CourseRecycler
SELECT q.id, r.c_id FROM $table_qui_que q
INNER JOIN $table_rel r
ON (q.c_id = r.c_id AND q.id = r.question_id)
WHERE r.c_id = ".$this->course_id." AND (r.exercice_id = '-1' OR r.exercice_id = '0')
WHERE r.c_id = ".$this->course_id." AND (r.quiz_id = '-1' OR r.quiz_id = '0')
)";
$db_result = Database::query($sql);
if (Database::num_rows($db_result) > 0) {

@ -1926,7 +1926,7 @@ class CourseRestorer
$sql = "INSERT IGNORE INTO $table_rel SET
c_id = ".$this->destination_course_id.",
question_id = $qid ,
exercice_id = $new_id ,
quiz_id = $new_id ,
question_order = ".$question_order;
Database::query($sql);
}

@ -50,11 +50,10 @@ class CLp extends AbstractResource implements ResourceInterface
protected $lpType;
/**
* @var string
* @Assert\NotBlank()
* @ORM\Column(name="name", type="string", length=255, nullable=false)
*/
protected $name;
protected string $name;
/**
* @var string
@ -368,12 +367,10 @@ class CLp extends AbstractResource implements ResourceInterface
/**
* Get name.
*
* @return string
*/
public function getName()
public function getName(): string
{
return (string) $this->name;
return $this->name;
}
/**

@ -42,13 +42,11 @@ class CQuizQuestion extends AbstractResource implements ResourceInterface
protected $cId;
/**
* @var string
*
* @Assert\NotBlank()
*
* @ORM\Column(name="question", type="text", nullable=false)
*/
protected $question;
protected string $question;
/**
* @var string
@ -206,12 +204,10 @@ class CQuizQuestion extends AbstractResource implements ResourceInterface
/**
* Get question.
*
* @return string
*/
public function getQuestion()
public function getQuestion(): string
{
return (string) $this->question;
return $this->question;
}
/**

@ -5,6 +5,7 @@
namespace Chamilo\CourseBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* CQuizRelQuestion.
@ -14,7 +15,7 @@ use Doctrine\ORM\Mapping as ORM;
* indexes={
* @ORM\Index(name="course", columns={"c_id"}),
* @ORM\Index(name="question", columns={"question_id"}),
* @ORM\Index(name="exercise", columns={"exercice_id"})
* @ORM\Index(name="exercise", columns={"quiz_id"})
* }
* )
* @ORM\Entity
@ -22,13 +23,11 @@ use Doctrine\ORM\Mapping as ORM;
class CQuizRelQuestion
{
/**
* @var int
*
* @ORM\Column(name="iid", type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/
protected $iid;
protected int $iid;
/**
* @var int
@ -45,20 +44,18 @@ class CQuizRelQuestion
protected $questionOrder;
/**
* @var CQuizQuestion
*
* @Assert\NotBlank()
* @ORM\ManyToOne(targetEntity="CQuizQuestion", inversedBy="relQuizzes", cascade={"persist"})
* @ORM\JoinColumn(name="question_id", referencedColumnName="iid")
*/
protected $question;
protected CQuizQuestion $question;
/**
* @var CQuiz
*
* @Assert\NotBlank()
* @ORM\ManyToOne(targetEntity="CQuiz", inversedBy="questions", cascade={"persist"})
* @ORM\JoinColumn(name="exercice_id", referencedColumnName="iid")
* @ORM\JoinColumn(name="quiz_id", referencedColumnName="iid")
*/
protected $quiz;
protected CQuiz $quiz;
/**
* Set questionOrder.
@ -108,12 +105,12 @@ class CQuizRelQuestion
return $this->cId;
}
public function getQuiz()
public function getQuiz(): CQuiz
{
return $this->quiz;
}
public function getQuestion()
public function getQuestion(): CQuizQuestion
{
return $this->question;
}

@ -5,9 +5,9 @@ exit;
require_once __DIR__ . '/../../main/inc/global.inc.php';
$sql = 'SELECT iid, c_id, title
FROM c_quiz
WHERE active = -1
$sql = 'SELECT iid, c_id, title
FROM c_quiz
WHERE active = -1
ORDER BY iid';
$result = Database::query($sql);
@ -24,9 +24,9 @@ foreach ($data as $row) {
$courseInfo = api_get_course_info_by_id($row['c_id']);
$sql = "SELECT question_id, c_id
$sql = "SELECT question_id, c_id
FROM c_quiz_rel_question
WHERE exercice_id = $id
WHERE quiz_id = $id
ORDER BY iid";
$result = Database::query($sql);
$questions = Database::store_result($result);
@ -41,9 +41,9 @@ foreach ($data as $row) {
foreach ($questions as $questionData) {
$questionId = $questionData['question_id'];
// Check if question is used in another exercise:
$sql = "SELECT count(iid)
$sql = "SELECT count(iid)
FROM c_quiz_rel_question
WHERE exercice_id != $id AND question_id = $questionId";
WHERE quiz_id != $id AND question_id = $questionId";
$result = Database::query($sql);
$dataQuestion = Database::fetch_array($result);
@ -64,4 +64,4 @@ foreach ($data as $row) {
$sql = "DELETE FROM c_item_property WHERE ref = $id AND c_id = $courseId and tool = 'quiz' ";
$result = Database::query($sql);
}
}

Loading…
Cancel
Save