From c8678edac5288edd48bd73da8e2b31c5f182297b Mon Sep 17 00:00:00 2001 From: Dominik Vitt Date: Wed, 23 May 2018 17:42:46 +0200 Subject: [PATCH] Dev: Question theme preview created on edit question page --- application/models/QuestionTemplate.php | 53 +++++++++++++++++-- .../survey/Question/editQuestion_view.php | 15 ++++-- assets/scripts/admin/questions.js | 27 ++++++++-- 3 files changed, 82 insertions(+), 13 deletions(-) diff --git a/application/models/QuestionTemplate.php b/application/models/QuestionTemplate.php index 1d830198189..ab3940157e0 100644 --- a/application/models/QuestionTemplate.php +++ b/application/models/QuestionTemplate.php @@ -393,7 +393,18 @@ static public function getQuestionTemplateUserList($type) $sUserQTemplateRootDir = Yii::app()->getConfig("userquestionthemerootdir"); $aQuestionTemplates = array(); - $aQuestionTemplates['core'] = gT('Default'); + if ($type == '*'){ + $preview_filename = 'EQUATION.png'; + } elseif ($type == ':'){ + $preview_filename = 'COLON.png'; + } elseif ($type == '|'){ + $preview_filename = 'PIPE.png'; + } else { + $preview_filename = $type.'.png'; + } + + $aQuestionTemplates['core']['title'] = gT('Default'); + $aQuestionTemplates['core']['preview'] = Yii::app()->getConfig("imageurl").'/screenshots/'.$preview_filename; $sFolderName = self::getFolderName($type); @@ -411,8 +422,18 @@ static public function getQuestionTemplateUserList($type) $oConfig = self::getTemplateConfig($sFullPathToQuestionTemplate); if (is_object($oConfig) && isset($oConfig->engine->show_as_template) && $oConfig->engine->show_as_template) { - $templateName = $file; - $aQuestionTemplates[$file] = $templateName; + if (!empty($oConfig->metadata->title)){ + $aQuestionTemplates[$file]['title'] = json_decode(json_encode($oConfig->metadata->title), TRUE)[0]; + } else { + $templateName = $file; + $aQuestionTemplates[$file]['title'] = $templateName; + } + + if (!empty($oConfig->files->preview->filename)){ + $aQuestionTemplates[$file]['preview'] = json_decode(json_encode($oConfig->files->preview->filename), TRUE)[0]; + } else { + $aQuestionTemplates[$file]['preview'] = Yii::app()->getConfig("imageurl").'/screenshots/'.$preview_filename; + } } } } @@ -429,8 +450,19 @@ static public function getQuestionTemplateUserList($type) static public function getQuestionTemplateCoreList($type) { $sCoreQTemplateRootDir = Yii::app()->getConfig("corequestionthemerootdir"); + $sCoreQTemplateRootUrl = Yii::app()->getConfig("publicurl").'themes/question'; $aQuestionTemplates = array(); + if ($type == '*'){ + $preview_filename = 'EQUATION.png'; + } elseif ($type == ':'){ + $preview_filename = 'COLON.png'; + } elseif ($type == '|'){ + $preview_filename = 'PIPE.png'; + } else { + $preview_filename = $type.'.png'; + } + $sFolderName = self::getFolderName($type); if ($sCoreQTemplateRootDir && is_dir($sCoreQTemplateRootDir)) { @@ -442,13 +474,24 @@ static public function getQuestionTemplateCoreList($type) $sFullPathToQuestionTemplate = "$sCoreQTemplateRootDir/$file/survey/questions/answer/$sFolderName"; + if (is_dir($sFullPathToQuestionTemplate)) { // Get the config file and check if template is available $oConfig = self::getTemplateConfig($sFullPathToQuestionTemplate); if (is_object($oConfig) && isset($oConfig->engine->show_as_template) && $oConfig->engine->show_as_template) { - $templateName = $file; - $aQuestionTemplates[$file] = $templateName; + if (!empty($oConfig->metadata->title)){ + $aQuestionTemplates[$file]['title'] = json_decode(json_encode($oConfig->metadata->title), TRUE)[0]; + } else { + $templateName = $file; + $aQuestionTemplates[$file]['title'] = $templateName; + } + + if (!empty($oConfig->files->preview->filename)){ + $aQuestionTemplates[$file]['preview'] = "$sCoreQTemplateRootUrl/$file/survey/questions/answer/$sFolderName/assets/".json_decode(json_encode($oConfig->files->preview->filename), TRUE)[0]; + } else { + $aQuestionTemplates[$file]['preview'] = Yii::app()->getConfig("imageurl").'/screenshots/'.$preview_filename; + } } } } diff --git a/application/views/admin/survey/Question/editQuestion_view.php b/application/views/admin/survey/Question/editQuestion_view.php index 3ce1c9e9d70..153bf6a2def 100644 --- a/application/views/admin/survey/Question/editQuestion_view.php +++ b/application/views/admin/survey/Question/editQuestion_view.php @@ -11,6 +11,7 @@ $questionType) { @@ -237,12 +238,13 @@