Example #1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     ini_set('max_execution_time', 0);
     $data = DB::select('select * from question');
     $insert = [];
     foreach ($data as $d) {
         $insert[] = ['id' => $d->id, 'name' => $d->question, 'id_question_type' => $d->answer_type_id];
     }
     Question::insert($insert);
 }
 /**
  * Load edit/new question screen depending on $action.
  *
  * @access public
  * @param string $sa subaction
  * @param int $surveyid
  * @param int $gid
  * @param int $qid
  * @return void
  */
 public function index($sa, $surveyid, $gid, $qid = null)
 {
     App()->getClientScript()->registerPackage('qTip2');
     $action = $sa;
     $surveyid = $iSurveyID = sanitize_int($surveyid);
     $gid = sanitize_int($gid);
     if (isset($qid)) {
         $qid = sanitize_int($qid);
     }
     $aViewUrls = array();
     $aData['surveyid'] = $surveyid;
     $aData['gid'] = $gid;
     $aData['qid'] = $qid;
     $aData['display']['menu_bars']['surveysummary'] = 'viewgroup';
     $aData['display']['menu_bars']['gid_action'] = 'addquestion';
     $surveyinfo = Survey::model()->findByPk($iSurveyID)->surveyinfo;
     $aData['title_bar']['title'] = $surveyinfo['surveyls_title'] . "(" . gT("ID") . ":" . $iSurveyID . ")";
     $aData['questiongroupbar']['savebutton']['form'] = 'frmeditgroup';
     $aData['questiongroupbar']['saveandclosebutton']['form'] = 'frmeditgroup';
     $aData['questiongroupbar']['closebutton']['url'] = 'admin/questions/sa/view/surveyid/' . $surveyid . '/gid/' . $gid . '/qid/' . $qid;
     Yii::app()->session['FileManagerContext'] = "create:question:{$surveyid}";
     if (Permission::model()->hasSurveyPermission($surveyid, 'surveycontent', 'read')) {
         $surveyinfo = getSurveyInfo($surveyid);
         Yii::app()->loadHelper('admin/htmleditor');
         Yii::app()->loadHelper('surveytranslator');
         if (isset($_POST['sortorder'])) {
             $postsortorder = sanitize_int($_POST['sortorder']);
         }
         $aData['adding'] = $adding = $action == 'addquestion';
         $aData['copying'] = $copying = $action == 'copyquestion';
         $questlangs = Survey::model()->findByPk($surveyid)->additionalLanguages;
         $baselang = Survey::model()->findByPk($surveyid)->language;
         $questlangs[] = $baselang;
         $questlangs = array_flip($questlangs);
         // Prepare selector Mode TODO: with and without image
         if (!$adding) {
             Yii::app()->session['FileManagerContext'] = "edit:question:{$surveyid}";
             $aData['display']['menu_bars']['qid_action'] = 'editquestion';
             $egresult = Question::model()->findAllByAttributes(array('sid' => $surveyid, 'gid' => $gid, 'qid' => $qid));
             foreach ($egresult as $esrow) {
                 if (!array_key_exists($esrow->language, $questlangs)) {
                     // Language Exists, BUT ITS NOT ON THE SURVEY ANYMORE.
                     $esrow->delete();
                 } else {
                     $questlangs[$esrow->language] = 99;
                 }
                 if ($esrow->language == $baselang) {
                     $esrow = $esrow->attributes;
                     $basesettings = array('question_order' => $esrow['question_order'], 'other' => $esrow['other'], 'mandatory' => $esrow['mandatory'], 'type' => $esrow['type'], 'title' => $esrow['title'], 'preg' => $esrow['preg'], 'question' => $esrow['question'], 'help' => $esrow['help']);
                 }
             }
             if (!$egresult) {
                 $this->getController()->error('Invalid question id');
             }
             while (list($key, $value) = each($questlangs)) {
                 if ($value != 99) {
                     $arQuestion = new Question();
                     $arQuestion->qid = $qid;
                     $arQuestion->sid = $surveyid;
                     $arQuestion->gid = $gid;
                     $arQuestion->type = $basesettings['type'];
                     $arQuestion->title = $basesettings['title'];
                     $arQuestion->question = $basesettings['question'];
                     $arQuestion->preg = $basesettings['preg'];
                     $arQuestion->help = $basesettings['help'];
                     $arQuestion->other = $basesettings['other'];
                     $arQuestion->mandatory = $basesettings['mandatory'];
                     $arQuestion->question_order = $basesettings['question_order'];
                     $arQuestion->language = $key;
                     $arQuestion->insert();
                 }
             }
             $eqresult = Question::model()->with('groups')->together()->findByAttributes(array('sid' => $surveyid, 'gid' => $gid, 'qid' => $qid, 'language' => $baselang));
         } else {
             // This is needed to properly color-code content if it contains replacements
             LimeExpressionManager::StartProcessingPage(false, Yii::app()->baseUrl, true);
             // so can click on syntax highlighting to edit questions
         }
         $qtypelist = getQuestionTypeList('', 'array');
         $qDescToCode = 'qDescToCode = {';
         $qCodeToInfo = 'qCodeToInfo = {';
         foreach ($qtypelist as $qtype => $qdesc) {
             $qDescToCode .= " '{$qdesc['description']}' : '{$qtype}', \n";
             $qCodeToInfo .= " '{$qtype}' : '" . ls_json_encode($qdesc) . "', \n";
         }
         $aData['qTypeOutput'] = "{$qDescToCode} 'null':'null' }; \n {$qCodeToInfo} 'null':'null' };";
         if (!$adding) {
             if (is_object($eqresult->groups)) {
                 $eqrow = array_merge($eqresult->attributes, $eqresult->groups->attributes);
             } else {
                 $eqrow = $eqresult->attributes;
             }
             // Todo: handler in case that record is not found
             if ($copying) {
                 $eqrow['title'] = '';
             }
         } else {
             $eqrow['language'] = $baselang;
             $eqrow['title'] = '';
             $eqrow['question'] = '';
             $eqrow['help'] = '';
             $eqrow['type'] = 'T';
             $eqrow['lid'] = 0;
             $eqrow['lid1'] = 0;
             $eqrow['gid'] = $gid;
             $eqrow['other'] = 'N';
             $eqrow['mandatory'] = 'N';
             $eqrow['preg'] = '';
             $eqrow['relevance'] = 1;
             $eqrow['group_name'] = '';
         }
         $eqrow['conditions_number'] = Condition::Model()->count("qid=:qid", array('qid' => $qid));
         if ($eqrow['modulename'] != null) {
             $oQuestionModule = Question::getQuestionModule($esrow['modulename']);
             $questionTitle = (array) $oQuestionModule->title;
             $questionModuleName = (array) $oQuestionModule->modulename;
             $eqrow['modulename'] = $questionModuleName[0];
             $eqrow['moduletitle'] = $questionTitle[0];
         }
         $aData['eqrow'] = $eqrow;
         $aData['surveyid'] = $surveyid;
         $aData['gid'] = $gid;
         if (!$adding) {
             $criteria = new CDbCriteria();
             $criteria->addColumnCondition(array('sid' => $surveyid, 'gid' => $gid, 'qid' => $qid));
             $criteria->params[':lang'] = $baselang;
             $criteria->addCondition('language != :lang');
             $aqresult = Question::model()->findAll($criteria);
             $aData['aqresult'] = $aqresult;
         }
         $aData['action'] = $action;
         $sumresult1 = Survey::model()->findByPk($surveyid);
         if (is_null($sumresult1)) {
             $this->getController()->error('Invalid Survey ID');
         }
         $surveyinfo = $sumresult1->attributes;
         $surveyinfo = array_map('flattenText', $surveyinfo);
         $aData['activated'] = $activated = $surveyinfo['active'];
         if ($activated != "Y") {
             // Prepare selector Class for javascript function
             if (Yii::app()->session['questionselectormode'] !== 'default') {
                 $selectormodeclass = Yii::app()->session['questionselectormode'];
             } else {
                 $selectormodeclass = getGlobalSetting('defaultquestionselectormode', 'default');
             }
             $aData['selectormodeclass'] = $selectormodeclass;
         }
         if (!$adding) {
             $qattributes = questionAttributes();
         } else {
             $qattributes = array();
         }
         if ($adding) {
             // Get the questions for this group
             $baselang = Survey::model()->findByPk($surveyid)->language;
             $oqresult = Question::model()->findAllByAttributes(array('sid' => $surveyid, 'gid' => $gid, 'language' => $baselang, 'parent_qid' => 0), array('order' => 'question_order'));
             $aData['oqresult'] = $oqresult;
         }
         App()->getClientScript()->registerScriptFile(App()->getAssetManager()->publish(ADMIN_SCRIPT_PATH . 'questions.js'));
         $aData['sValidateUrl'] = $adding || $copying ? $this->getController()->createUrl('admin/questions', array('sa' => 'ajaxValidate', 'surveyid' => $surveyid)) : $this->getController()->createUrl('admin/questions', array('sa' => 'ajaxValidate', 'surveyid' => $surveyid, 'qid' => $qid));
         $aData['addlanguages'] = Survey::model()->findByPk($surveyid)->additionalLanguages;
         $aViewUrls['editQuestion_view'][] = $aData;
         $aViewUrls['questionJavascript_view'][] = array('type' => $eqrow['type']);
     } else {
         include 'accessDenied.php';
     }
     $aData['ajaxDatas']['sValidateUrl'] = isset($aData['sValidateUrl']) ? $aData['sValidateUrl'] : $this->getController()->createUrl('admin/questions', array('sa' => 'ajaxValidate', 'surveyid' => $surveyid));
     $aData['ajaxDatas']['qTypeOutput'] = $aData['qTypeOutput'];
     ///////////
     // sidemenu
     $aData['sidemenu']['state'] = false;
     $aData['sidemenu']['explorer']['state'] = true;
     $aData['sidemenu']['explorer']['gid'] = isset($gid) ? $gid : false;
     $aData['sidemenu']['explorer']['qid'] = isset($qid) ? $qid : false;
     $this->_renderWrappedTemplate('survey/Question', $aViewUrls, $aData);
 }
Example #3
0
function addAnswer()
{
    $question = new Question($_POST);
    if ($question1 = Question::getAnswerByUserId($_SESSION['userId'], $question->question)) {
        $question->id = $question1->id;
        $question->update();
    } else {
        $question->insert();
    }
    header('main.php?action = login');
}
<?php

require_once "/etc/apache2/capstone-mysql/encrypted-config.php";
require_once "question.php";
$pdo = connectToEncryptedMySQL("/etc/apache2/data-design/jfindley2.ini");
$question = new Question(null, 1, 2, "Huh?", null);
$question->insert($pdo);
$question->setQuestionText("What?");
$question->update($pdo);
$question->delete($pdo);