Ejemplo n.º 1
0
 public static function getMemberCodesSqlFilter()
 {
     if (empty(self::$memberAnswersCodesSqlFilters)) {
         $groupedCodesArray = self::getGroupedCodes();
         /**
          * Get all answers excluding group codes
          */
         $memberAnswers = MembersQuestionsAnswers::find()->innerJoinWith('questionOption');
         if (!empty($groupedCodesArray)) {
             $memberAnswers->where(['not in', 'code_id', $groupedCodesArray['codes']]);
         }
         $memberAnswers->all();
         /**
          * Run throw answers to build where arrays
          */
         foreach ($memberAnswers as $answer) {
             if (!empty($answer->questionOption->code_id)) {
                 foreach ($answer->questionOption->code_id as $code_id) {
                     //build include codes ids array
                     self::$memberAnswersCodesSqlFilters['include'][] = ['like', 'code_id', "[{$code_id}]"];
                     //build exclude codes ids array
                     self::$memberAnswersCodesSqlFilters['exclude'][] = ['not like', 'no_code_id', "[{$code_id}]"];
                 }
             }
         }
     }
     return self::$memberAnswersCodesSqlFilters;
 }
Ejemplo n.º 2
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getMembersQuestionsAnswers()
 {
     return $this->hasMany(MembersQuestionsAnswers::className(), ['member_id' => 'id']);
 }
Ejemplo n.º 3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getQuestionsAnswers()
 {
     return $this->hasOne(MembersQuestionsAnswers::className(), ['question_id' => 'id']);
 }
Ejemplo n.º 4
0
?>

<?php 
//= $form->errorSummary($questionsAnswers);
?>

<?php 
/* output all attributes related tot the mapping category */
$member_id = Yii::$app->getUser()->id;
?>

<?php 
/* output all questions related tot the mapping category */
foreach ($questionsModel as $model) {
    $value = $option_id = '';
    if ($answersModel = MembersQuestionsAnswers::findOne(['question_id' => $model->id, 'member_id' => $member_id])) {
        $value = $answersModel->value;
        $option_id = $answersModel->option_id;
    }
    if ($model->fieldsTypes[0]->has_options) {
        //if question has options display a dropdown
        echo $form->field($questionsAnswers, "value_{$model->id}")->dropDownList(ArrayHelper::map(MappingQuestionsToOptions::findAll(['question_id' => $model->id]), 'id', 'title'), ['prompt' => Yii::t('frontend', '-- Select --'), 'options' => [$option_id => ['Selected' => 'selected']]])->label($model->title);
        //$this->registerJs("$('form').yiiActiveForm('updateMessages', {
        //'MembersQuestionsAnswers[32][value]': ['I don\'t like it!']
        //}, true);");
    } else {
        // else if question does not have options display a text field
        echo $form->field($questionsAnswers, "value_{$model->id}")->textInput(['value' => $value]);
    }
}
?>