From 7cc4a786321dfe9f3923de9400a2546b4b992f97 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 3 Jul 2015 14:05:33 +0200 Subject: [PATCH] Dev Fixed issue with importing subquestion translations. --- application/controllers/QuestionsController.php | 6 +++++- application/helpers/import/BaseElementXmlImport.php | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/application/controllers/QuestionsController.php b/application/controllers/QuestionsController.php index e4ab58fd631..90168581e45 100644 --- a/application/controllers/QuestionsController.php +++ b/application/controllers/QuestionsController.php @@ -174,9 +174,13 @@ public function actionDelete($id) * @return \Question */ protected function loadModel($id) { - return \Question::model()->findByAttributes([ + $result = \Question::model()->findByAttributes([ 'qid' => $id ]); + if (!isset($result)) { + throw new \CHttpException(404, gT("Question not found.")); + } + return $result; } } diff --git a/application/helpers/import/BaseElementXmlImport.php b/application/helpers/import/BaseElementXmlImport.php index 3da2d8d633b..0694ea40992 100644 --- a/application/helpers/import/BaseElementXmlImport.php +++ b/application/helpers/import/BaseElementXmlImport.php @@ -75,7 +75,8 @@ protected function constructQuestion($question, $language, $data) { // Add translations. - foreach ($data['questions']['rows'] as $translatedQuestion) { + $questions = isset($data['subquestions']) ? array_merge($data['subquestions']['rows'], $data['questions']['rows']) : $data['questions']['rows']; + foreach ($questions as $translatedQuestion) { if ($translatedQuestion['qid'] == $question['qid'] && $translatedQuestion['language'] != $language ) { @@ -85,7 +86,7 @@ protected function constructQuestion($question, $language, $data) // Add subquestions foreach (isset($data['subquestions']) ? $data['subquestions']['rows'] : [] as $subQuestion) { - if ($subQuestion['parent_qid'] == $question['qid']) { + if ($subQuestion['parent_qid'] == $question['qid'] && $subQuestion['language'] == $language) { $question['subquestions'][] = $this->constructQuestion($subQuestion, $language, $data); } }