Skip to content

Commit

Permalink
Dev: QuestionType modelation has begun
Browse files Browse the repository at this point in the history
  • Loading branch information
lacrioque committed Jan 21, 2019
1 parent f241b68 commit b3c4dad
Show file tree
Hide file tree
Showing 80 changed files with 1,587 additions and 318 deletions.
7 changes: 3 additions & 4 deletions application/config/internal.php
Expand Up @@ -15,7 +15,6 @@
}

if (!date_default_timezone_set(@date_default_timezone_get())) {

date_default_timezone_set('Europe/London');
}

Expand All @@ -26,7 +25,6 @@
if (ini_get('mbstring.internal_encoding')) {
ini_set('mbstring.internal_encoding', 'UTF-8');
}

} else {
// Do nothing, will be checked in installation
}
Expand All @@ -46,12 +44,13 @@

// yiistrap configuration
'bootstrap' => realpath(__DIR__.'/../extensions/bootstrap'),
'questiontypes' => realpath(__DIR__.'/../extensions/questionTypes'),
'vendor.twbs.bootstrap.dist' => realpath(__DIR__.'/../extensions/bootstrap'),
// yiiwheels configuration
'yiiwheels' => realpath(__DIR__.'/../extensions/yiiwheels'),
'vendor.twbs.bootstrap.dist',

//Basic questiontype objects
'questiontypes' => realpath(__DIR__.'/../core/QuestionTypes'),
// Twig aliases. We don't want to change the file ETwigViewRenderer, so we can update it without difficulties
// However, LimeSurvey directory tree is not a standard Yii Application tree.
// we use 'third_party' instead of 'vendor'
Expand Down Expand Up @@ -105,7 +104,7 @@
'application.helpers.*',
'application.controllers.*',
'application.modules.*',
'application.views.QuestionTypeRenderer.*',
'application.core.questiontypes.*',
'bootstrap.helpers.*',
'bootstrap.widgets.*',
'bootstrap.behaviors.*',
Expand Down
5 changes: 5 additions & 0 deletions application/controllers/admin/questionedit.php
Expand Up @@ -111,6 +111,11 @@ public function getQuestionAttributeData($iQuestionId){
public function getQuestionTypeList() {
$this->renderJSON(QuestionType::modelsAttributes());
}

public function getGeneralOptions($iQuestionId, $sQuestionType=null){
$oQuestion = Question::model()->findByPk($iQuestionId);
$this->renderJSON($oQuestion->getDataSetObject()->getGeneralSettingsArray(null, $sQuestionType));
}

/**
* Live preview rendering
Expand Down
2 changes: 1 addition & 1 deletion application/core/LSETwigViewRenderer.php
Expand Up @@ -97,7 +97,7 @@ public function renderTemplateForQuestionEditPreview($sLayout, $aDatas, $root =
$line .= '</div>';
//if($root === true) {
$line = '<html lang="{{ aSurveyInfo.languagecode }}" dir="{{ aSurveyInfo.dir }}" class="{{ aSurveyInfo.languagecode }} dir-{{ aSurveyInfo.dir }} {{ aSurveyInfo.class.html }}" {{ aSurveyInfo.attr.html }}>'
. '<body style="padding-top: 90px;" class=" {{ aSurveyInfo.class.body }} font-{{ aSurveyInfo.options.font }} lang-{{aSurveyInfo.languagecode}} {{aSurveyInfo.surveyformat}} {% if( aSurveyInfo.options.brandlogo == "on") %}brand-logo{%endif%}" {{ aSurveyInfo.attr.body }} >'
. '<body style="padding-top: 0px !important;" class=" {{ aSurveyInfo.class.body }} font-{{ aSurveyInfo.options.font }} lang-{{aSurveyInfo.languagecode}} {{aSurveyInfo.surveyformat}} {% if( aSurveyInfo.options.brandlogo == "on") %}brand-logo{%endif%}" {{ aSurveyInfo.attr.body }} >'
. file_get_contents($oLayoutTemplate->viewPath.'/subviews/header/head.twig')
. $line;
$line .= '</body>';
Expand Down
@@ -0,0 +1,5 @@
<?php



class DataSetFivePointChoice extends QuestionBaseDataSet {}
@@ -1,5 +1,7 @@
<?php



/**
* RenderClass for Boilerplate Question
* * The ia Array contains the following
Expand Down
@@ -0,0 +1,5 @@
<?php



class DataSetArray5ChoiceQuestion extends QuestionBaseDataSet {}
@@ -0,0 +1,53 @@
<?php



/**
* RenderClass for Boilerplate Question
* * The ia Array contains the following
* 0 => string qid
* 1 => string sgqa
* 2 => string questioncode
* 3 => string question
* 4 => string type
* 5 => string gid
* 6 => string mandatory,
* 7 => string conditionsexist,
* 8 => string usedinconditions
* 0 => string used in group.php for question count
* 10 => string new group id for question in randomization group (GroupbyGroup Mode)
*
*/
class RenderArray10ChoiceQuestion extends QuestionBaseRenderer
{
public function getMainView()
{
return '/survey/questions/answer/dummy/answer';
}

public function getRows()
{
return;
}

public function render($sCoreClasses = '')
{
$answer = '';
$inputnames = [];

if (!empty($this->getQuestionAttribute('time_limit', 'value'))) {
$answer .= $this->getTimeSettingRender();
}

$answer .= Yii::app()->twigRenderer->renderQuestion($this->getMainView(), array(
'ia'=>$this->aFieldArray,
'name'=>$this->sSGQA,
'basename'=>$this->sSGQA,
'content' => $this->oQuestion,
'coreClass'=> 'ls-answers '.$sCoreClasses,
), true);

$inputnames[] = [];
return array($answer, $inputnames);
}
}
@@ -0,0 +1,5 @@
<?php



class DataSetArray5ChoiceQuestion extends QuestionBaseDataSet {}
@@ -0,0 +1,53 @@
<?php



/**
* RenderClass for Boilerplate Question
* * The ia Array contains the following
* 0 => string qid
* 1 => string sgqa
* 2 => string questioncode
* 3 => string question
* 4 => string type
* 5 => string gid
* 6 => string mandatory,
* 7 => string conditionsexist,
* 8 => string usedinconditions
* 0 => string used in group.php for question count
* 10 => string new group id for question in randomization group (GroupbyGroup Mode)
*
*/
class RenderArray5ChoiceQuestion extends QuestionBaseRenderer
{
public function getMainView()
{
return '/survey/questions/answer/dummy/answer';
}

public function getRows()
{
return;
}

public function render($sCoreClasses = '')
{
$answer = '';
$inputnames = [];

if (!empty($this->getQuestionAttribute('time_limit', 'value'))) {
$answer .= $this->getTimeSettingRender();
}

$answer .= Yii::app()->twigRenderer->renderQuestion($this->getMainView(), array(
'ia'=>$this->aFieldArray,
'name'=>$this->sSGQA,
'basename'=>$this->sSGQA,
'content' => $this->oQuestion,
'coreClass'=> 'ls-answers '.$sCoreClasses,
), true);

$inputnames[] = [];
return array($answer, $inputnames);
}
}
@@ -0,0 +1,5 @@
<?php



class DataSetArrayFlexibleColumn extends QuestionBaseDataSet {}
@@ -0,0 +1,53 @@
<?php



/**
* RenderClass for Boilerplate Question
* * The ia Array contains the following
* 0 => string qid
* 1 => string sgqa
* 2 => string questioncode
* 3 => string question
* 4 => string type
* 5 => string gid
* 6 => string mandatory,
* 7 => string conditionsexist,
* 8 => string usedinconditions
* 0 => string used in group.php for question count
* 10 => string new group id for question in randomization group (GroupbyGroup Mode)
*
*/
class RenderArrayFlexibleColumn extends QuestionBaseRenderer
{
public function getMainView()
{
return '/survey/questions/answer/dummy/answer';
}

public function getRows()
{
return;
}

public function render($sCoreClasses = '')
{
$answer = '';
$inputnames = [];

if (!empty($this->getQuestionAttribute('time_limit', 'value'))) {
$answer .= $this->getTimeSettingRender();
}

$answer .= Yii::app()->twigRenderer->renderQuestion($this->getMainView(), array(
'ia'=>$this->aFieldArray,
'name'=>$this->sSGQA,
'basename'=>$this->sSGQA,
'content' => $this->oQuestion,
'coreClass'=> 'ls-answers '.$sCoreClasses,
), true);

$inputnames[] = [];
return array($answer, $inputnames);
}
}
@@ -0,0 +1,5 @@
<?php



class DataSetArrayFlexibleRow extends QuestionBaseDataSet {}
@@ -0,0 +1,53 @@
<?php



/**
* RenderClass for Boilerplate Question
* * The ia Array contains the following
* 0 => string qid
* 1 => string sgqa
* 2 => string questioncode
* 3 => string question
* 4 => string type
* 5 => string gid
* 6 => string mandatory,
* 7 => string conditionsexist,
* 8 => string usedinconditions
* 0 => string used in group.php for question count
* 10 => string new group id for question in randomization group (GroupbyGroup Mode)
*
*/
class RenderArrayFlexibleRow extends QuestionBaseRenderer
{
public function getMainView()
{
return '/survey/questions/answer/dummy/answer';
}

public function getRows()
{
return;
}

public function render($sCoreClasses = '')
{
$answer = '';
$inputnames = [];

if (!empty($this->getQuestionAttribute('time_limit', 'value'))) {
$answer .= $this->getTimeSettingRender();
}

$answer .= Yii::app()->twigRenderer->renderQuestion($this->getMainView(), array(
'ia'=>$this->aFieldArray,
'name'=>$this->sSGQA,
'basename'=>$this->sSGQA,
'content' => $this->oQuestion,
'coreClass'=> 'ls-answers '.$sCoreClasses,
), true);

$inputnames[] = [];
return array($answer, $inputnames);
}
}
@@ -0,0 +1,5 @@
<?php



class DataSetArrayMultiFlexNumbers extends QuestionBaseDataSet {}
@@ -0,0 +1,53 @@
<?php



/**
* RenderClass for Boilerplate Question
* * The ia Array contains the following
* 0 => string qid
* 1 => string sgqa
* 2 => string questioncode
* 3 => string question
* 4 => string type
* 5 => string gid
* 6 => string mandatory,
* 7 => string conditionsexist,
* 8 => string usedinconditions
* 0 => string used in group.php for question count
* 10 => string new group id for question in randomization group (GroupbyGroup Mode)
*
*/
class RenderArrayMultiFlexNumbers extends QuestionBaseRenderer
{
public function getMainView()
{
return '/survey/questions/answer/dummy/answer';
}

public function getRows()
{
return;
}

public function render($sCoreClasses = '')
{
$answer = '';
$inputnames = [];

if (!empty($this->getQuestionAttribute('time_limit', 'value'))) {
$answer .= $this->getTimeSettingRender();
}

$answer .= Yii::app()->twigRenderer->renderQuestion($this->getMainView(), array(
'ia'=>$this->aFieldArray,
'name'=>$this->sSGQA,
'basename'=>$this->sSGQA,
'content' => $this->oQuestion,
'coreClass'=> 'ls-answers '.$sCoreClasses,
), true);

$inputnames[] = [];
return array($answer, $inputnames);
}
}
@@ -0,0 +1,5 @@
<?php



class DataSetArrayMultiFlexText extends QuestionBaseDataSet {}

0 comments on commit b3c4dad

Please sign in to comment.