Skip to content

Commit

Permalink
Fixed issue #16758: PHP7.1 + debug set : PHP Warning A non-numeric va…
Browse files Browse the repository at this point in the history
…lue encountered

Dev: ctype_digit check
  • Loading branch information
Shnoulle committed Oct 20, 2020
1 parent 982e542 commit b849e03
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 23 deletions.
Expand Up @@ -76,9 +76,14 @@ public function __construct($aFieldArray, $bRenderDirect = false) {
// If there arent we can leave out the right td column
$this->rightExists = ($iCount > 0);

$this->answerwidth = $this->setDefaultIfEmpty($this->getQuestionAttribute('answer_width'), 33);
$this->defaultWidth = ($this->answerwidth===33);

if (ctype_digit(trim($this->getQuestionAttribute('answer_width')))) {
$this->answerwidth = trim($this->getQuestionAttribute('answer_width'));
$this->defaultWidth = false;
} else {
$this->answerwidth = 33;
$this->defaultWidth = true;
}

$this->columnswidth = 100 - $this->answerwidth;

if($this->rightExists) {
Expand Down
Expand Up @@ -46,11 +46,12 @@ public function __construct($aFieldArray, $bRenderDirect = false)
$this->doDualScaleFunction = "doDualScaleRadio";
}

$this->answerwidth = $this->setDefaultIfEmpty($this->getQuestionAttribute('answer_width'), null);
$this->defaultWidth = false;
if ($this->answerwidth == null) {
if (ctype_digit(trim($this->getQuestionAttribute('answer_width')))) {
$this->answerwidth = trim($this->getQuestionAttribute('answer_width'));
$this->defaultWidth = false;
} else {
$this->answerwidth = 33;
$this->defaultWidth = true;
$this->defaultWidth = false;
}
}

Expand Down
47 changes: 31 additions & 16 deletions application/helpers/qanda_helper.php
Expand Up @@ -3144,8 +3144,8 @@ function do_array_10point($ia)
$checkconditionFunction = "checkconditions";

$aQuestionAttributes = QuestionAttribute::model()->getQuestionAttributes($ia[0]);
if (trim($aQuestionAttributes['answer_width']) != '') {
$answerwidth = $aQuestionAttributes['answer_width'];
if (ctype_digit(trim($aQuestionAttributes['answer_width']))) {
$answerwidth = trim($aQuestionAttributes['answer_width']);
} else {
$answerwidth = 33;
}
Expand Down Expand Up @@ -3281,7 +3281,11 @@ function do_array_yesnouncertain($ia)
$coreClass = "ls-answers subquestion-list questions-list radio-array";
$checkconditionFunction = "checkconditions";
$aQuestionAttributes = QuestionAttribute::model()->getQuestionAttributes($ia[0]);
$answerwidth = (trim($aQuestionAttributes['answer_width']) != '') ? $aQuestionAttributes['answer_width'] : 33;
if (ctype_digit(trim($aQuestionAttributes['answer_width']))) {
$answerwidth = trim($aQuestionAttributes['answer_width']);
} else {
$answerwidth = 33;
}
$cellwidth = 3; // number of columns

if (($ia[6] != 'Y' && $ia[6] != 'S') && SHOW_NO_ANSWER == 1) {
Expand Down Expand Up @@ -3378,7 +3382,11 @@ function do_array_increasesamedecrease($ia)
$coreClass = "ls-answers subquestion-list questions-list radio-array";
$checkconditionFunction = "checkconditions";
$aQuestionAttributes = QuestionAttribute::model()->getQuestionAttributes($ia[0]);
$answerwidth = (trim($aQuestionAttributes['answer_width']) != '') ? $aQuestionAttributes['answer_width'] : 33;
if (ctype_digit(trim($aQuestionAttributes['answer_width']))) {
$answerwidth = trim($aQuestionAttributes['answer_width']);
} else {
$answerwidth = 33;
}
$cellwidth = 3; // number of columns
$inputnames = [];

Expand Down Expand Up @@ -3463,7 +3471,9 @@ function do_array_increasesamedecrease($ia)
}

// ---------------------------------------------------------------
// TMSW TODO - Can remove DB query by passing in answer list from EM
/**
* @deprecated 4.0 Replaced by core\QuestionTypes\RenderArrayFlexibleRow
*/
function do_array($ia)
{
$sSurveyLanguage = $_SESSION['survey_'.Yii::app()->getConfig('surveyID')]['s_lang'];
Expand Down Expand Up @@ -3501,12 +3511,12 @@ function do_array($ia)

// No-dropdown layout
if ($useDropdownLayout === false && count($aAnswers) > 0) {
if (trim($aQuestionAttributes['answer_width']) != '') {
if (ctype_digit(trim($aQuestionAttributes['answer_width']))) {
$answerwidth = trim($aQuestionAttributes['answer_width']);
$defaultWidth = false;
} else {
$answerwidth = 33;
$defaultWidth = true;
$defaultWidth = false;
}
$columnswidth = 100 - $answerwidth;
$iCount = (int) Question::model()->with(array('questionl10ns'=>array('condition'=>"question like :separator")))->count('parent_qid=:parent_qid AND scale_id=0', array(':parent_qid'=>$ia[0], ":separator"=>'%|%'));
Expand Down Expand Up @@ -3680,12 +3690,12 @@ function do_array($ia)

// Dropdown layout
elseif ($useDropdownLayout === true && count($aAnswers) > 0) {
if (trim($aQuestionAttributes['answer_width']) != '') {
if (ctype_digit(trim($aQuestionAttributes['answer_width']))) {
$answerwidth = trim($aQuestionAttributes['answer_width']);
$defaultWidth = false;
} else {
$answerwidth = 33;
$defaultWidth = true;
$defaultWidth = false;
}
$columnswidth = 100 - $answerwidth;
$labels = [];
Expand Down Expand Up @@ -3925,7 +3935,7 @@ function do_array_texts($ia)
};
}

if (trim($aQuestionAttributes['answer_width']) != '') {
if (ctype_digit(trim($aQuestionAttributes['answer_width']))) {
$answerwidth = trim($aQuestionAttributes['answer_width']);
$defaultWidth = false;
} else {
Expand Down Expand Up @@ -4243,12 +4253,12 @@ function do_array_multiflexi($ia)
$kpclass = "";
}

if (trim($aQuestionAttributes['answer_width']) != '') {
$answerwidth = $aQuestionAttributes['answer_width'];
if (ctype_digit(trim($aQuestionAttributes['answer_width']))) {
$answerwidth = trim($aQuestionAttributes['answer_width']);
$defaultWidth = false;
} else {
$answerwidth = 33;
$defaultWidth = true;
$defaultWidth = false;
}

$columnswidth = 100 - ($answerwidth);
Expand Down Expand Up @@ -4535,10 +4545,12 @@ function do_arraycolumns($ia)
$aData['labelcode'] = $labelcode;

if ($anscount > 0) {
if (trim($aQuestionAttributes['answer_width_bycolumn']) != '') {
if (ctype_digit(trim($aQuestionAttributes['answer_width_bycolumn']))) {
$answerwidth = trim($aQuestionAttributes['answer_width_bycolumn']);
$defaultWidth = false;
} else {
$answerwidth = 33;
$defaultWidth = false;
}
$cellwidth = (100 - $answerwidth) / $anscount;

Expand Down Expand Up @@ -4631,6 +4643,9 @@ function do_arraycolumns($ia)
}

// ---------------------------------------------------------------
/**
* @deprecated 4.0 Replaced by core\QuestionTypes\ArrayMultiscale
*/
function do_array_dual($ia)
{
global $thissurvey;
Expand Down Expand Up @@ -4685,12 +4700,12 @@ function do_array_dual($ia)

$leftheader = (trim($aQuestionAttributes['dualscale_headerA'][$_SESSION['survey_'.Yii::app()->getConfig('surveyID')]['s_lang']]) != '') ? $aQuestionAttributes['dualscale_headerA'][$_SESSION['survey_'.Yii::app()->getConfig('surveyID')]['s_lang']] : '';
$rightheader = (trim($aQuestionAttributes['dualscale_headerB'][$_SESSION['survey_'.Yii::app()->getConfig('surveyID')]['s_lang']]) != '') ? $aQuestionAttributes['dualscale_headerB'][$_SESSION['survey_'.Yii::app()->getConfig('surveyID')]['s_lang']] : '';
if (trim($aQuestionAttributes['answer_width']) != '') {
if (ctype_digit(trim($aQuestionAttributes['answer_width']))) {
$answerwidth = trim($aQuestionAttributes['answer_width']);
$defaultWidth = false;
} else {
$answerwidth = 33;
$defaultWidth = true;
$defaultWidth = false;
}
// Find if we have rigth and center text
/* All of this part seem broken actually : we don't send it to view and don't explode it */
Expand Down

0 comments on commit b849e03

Please sign in to comment.