public function newQuestion() { // POST İLE GÖNDERİLEN DEĞERLERİ ALALIM. $postData = Input::all(); // FORM KONTROLLERİNİ BELİRLEYELİM $rules = array('title' => 'required|between:3,256', 'content' => 'required'); // HATA MESAJLARINI OLUŞTURALIM $messages = array('title.required' => 'Lütfen sorunuzun başlığını yazın', 'title.between' => 'Soru başlığı minumum 3 maksimum 256 karakterden oluşabilir', 'content.required' => 'Lütfen sorunuza ait detayları yazın'); // KONTROL (VALIDATION) İŞLEMİNİ GERÇEKLEŞTİRELİM $validator = Validator::make($postData, $rules, $messages); // EĞER VALİDASYON BAŞARISIZ OLURSA HATALARI GÖSTERELİM if ($validator->fails()) { // HATA MESAJLARI VE INPUT DEĞERLERİYLE FORMA YÖNLENDİRELİM return Redirect::route('newQuestionForm')->withInput()->withErrors($validator->messages()); } else { // SORUYU VERİTABANINA EKLEYELİM $question = new Questions(); $question->user_id = Auth::user()->id; $question->title = e(trim($postData['title'])); $question->content = e(trim($postData['content'])); $question->created_at = date('Y-m-d H:i:s'); $question->created_ip = Request::getClientIp(); $question->save(); // KULLANICIYI SORULARIN LİSTELENDİĞİ SAYFAYA YÖNLENDİRELİM return Redirect::route('allQuestions'); } }
public function createAction() { if ($this->request->isPost()) { $question = new Questions(); $question->question = $this->request->getPost('question'); $question->save(); $this->response->redirect('poll/index'); } }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Questions(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Questions'])) { $model->attributes = $_POST['Questions']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->id)); } } $this->render('create', array('model' => $model)); }
public function actionAskQuestion() { $model = new Questions(); if (isset($_POST['title'])) { $model->title = $_REQUEST['title']; $model->question = $_REQUEST['question']; $model->user_id = Yii::app()->session['userId']; if ($model->save(false)) { $id = Yii::app()->db->getLastInsertID(); $this->redirect(array('front/questionDetail/' . $id . '')); } } $this->render('askQuestion'); }
public function newAction() { $response = new ApiResponse(); if ($this->request->isPost()) { $question = new Questions(); $question->id = uniqid(); $question->tags = $this->request->getPost('tags'); $question->title = $this->request->getPost('title'); $question->content = $this->request->getPost('content'); $question->users_id = $this->request->getPost('users_id'); if ($this->request->hasFiles() == true) { $baseLocation = 'files/'; foreach ($this->request->getUploadedFiles() as $file) { $photos = new Photos(); $unique_filename = $question->id; $photos->size = $file->getSize(); $photos->original_name = $file->getName(); $photos->file_name = $unique_filename; $photos->extension = $file->getExtension(); $location = $baseLocation . $unique_filename . "." . $file->getExtension(); $photos->public_link = $location; try { if (!$photos->save()) { $response->setResponseError($photos->getMessages()); } else { //Move the file into the application $file->moveTo($location); $question->photo = $photos->public_link; } } catch (PDOException $e) { $response->setResponseError($e->getMessage()); } } } try { if ($question->save() == false) { $response->setResponseError($question->getMessages()); } else { $response->setResponseMessage($question->id); } } catch (PDOException $e) { $response->setResponseError($e->getMessage()); } } else { $response->setResponseError('Wrong HTTP Method'); } return $response; }
public function store() { // Validate // read more on validation at http://laravel.com/docs/validation $rules = array('que_name' => 'required'); $validator = Validator::make(Input::all(), $rules); // process the login if ($validator->fails()) { return Redirect::to('questions/create')->withErrors($validator); } else { // store $questions = new Questions(); $questions->que_name = Input::get('que_name'); $questions->save(); // Redirect Session::flash('message', 'Successfully created Questions!'); return Redirect::to('questions'); } }
public function store() { $validator = Validator::make(Input::all(), Questions::$rules); if ($validator->passes()) { $question = new Questions(); $question->order = Input::get('order'); $question->doctor_type = Input::get('doctor_type'); $question->title = substr(strip_tags(Input::get('title')), 0, 100); $question->question = Input::get('question'); $question->answer = Input::get('answer'); $question->is_branding = Input::get('is_branding'); $question->is_true = Input::get('is_true'); $question->save(); $json_request['responseText'] = "Вопрос добавлен"; $json_request['redirect'] = URL::route('questions.index'); $json_request['status'] = TRUE; } else { $json_request['responseText'] = 'Неверно заполнены поля'; $json_request['responseErrorText'] = implode($validator->messages()->all(), '<br />'); } return Response::json($json_request, 200); }
/** * This function imports a LimeSurvey .lsq question XML file * * @param mixed $sFullFilepath The full filepath of the uploaded file * @param mixed $iNewSID The new survey id * @param mixed $newgid The new question group id -the question will always be added after the last question in the group */ function XMLImportQuestion($sFullFilepath, $iNewSID, $newgid) { $clang = Yii::app()->lang; $aLanguagesSupported = array(); // this array will keep all the languages supported for the survey $sBaseLanguage = Survey::model()->findByPk($iNewSID)->language; $aLanguagesSupported[] = $sBaseLanguage; // adds the base language to the list of supported languages $aLanguagesSupported = array_merge($aLanguagesSupported, Survey::model()->findByPk($iNewSID)->additionalLanguages); $xml = simplexml_load_file($sFullFilepath); if ($xml->LimeSurveyDocType != 'Question') { safeDie('This is not a valid LimeSurvey question structure XML file.'); } $iDBVersion = (int) $xml->DBVersion; $aQIDReplacements = array(); $aSQIDReplacements = array(0 => 0); $results['defaultvalues'] = 0; $results['answers'] = 0; $results['question_attributes'] = 0; $results['subquestions'] = 0; $importlanguages = array(); foreach ($xml->languages->language as $language) { $importlanguages[] = (string) $language; } if (!in_array($sBaseLanguage, $importlanguages)) { $results['fatalerror'] = $clang->gT("The languages of the imported question file must at least include the base language of this survey."); return $results; } // First get an overview of fieldnames - it's not useful for the moment but might be with newer versions /* $fieldnames=array(); foreach ($xml->questions->fields->fieldname as $fieldname ) { $fieldnames[]=(string)$fieldname; };*/ // Import questions table =================================================================================== // We have to run the question table data two times - first to find all main questions // then for subquestions (because we need to determine the new qids for the main questions first) $query = "SELECT MAX(question_order) AS maxqo FROM {{questions}} WHERE sid={$iNewSID} AND gid={$newgid}"; $res = Yii::app()->db->createCommand($query)->query(); $resrow = $res->read(); $newquestionorder = $resrow['maxqo'] + 1; if (is_null($newquestionorder)) { $newquestionorder = 0; } else { $newquestionorder++; } foreach ($xml->questions->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $iOldSID = $insertdata['sid']; $insertdata['sid'] = $iNewSID; $insertdata['gid'] = $newgid; $insertdata['question_order'] = $newquestionorder; $oldqid = $insertdata['qid']; unset($insertdata['qid']); // save the old qid // now translate any links $insertdata['title'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['title']); $insertdata['question'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['question']); $insertdata['help'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['help']); // Insert the new question if (isset($aQIDReplacements[$oldqid])) { $insertdata['qid'] = $aQIDReplacements[$oldqid]; } $ques = new Questions(); if ($insertdata) { XSSFilterArray($insertdata); } foreach ($insertdata as $k => $v) { $ques->{$k} = $v; } $result = $ques->save(); if (!isset($aQIDReplacements[$oldqid])) { $newqid = Yii::app()->db->getCommandBuilder()->getLastInsertID($ques->tableName()); $aQIDReplacements[$oldqid] = $newqid; // add old and new qid to the mapping array } } // Import subquestions -------------------------------------------------------------- if (isset($xml->subquestions)) { foreach ($xml->subquestions->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['sid'] = $iNewSID; $insertdata['gid'] = $newgid; $oldsqid = (int) $insertdata['qid']; unset($insertdata['qid']); // save the old qid $insertdata['parent_qid'] = $aQIDReplacements[(int) $insertdata['parent_qid']]; // remap the parent_qid // now translate any links $insertdata['question'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['question']); if (isset($insertdata['help'])) { $insertdata['help'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['help']); } if (isset($aQIDReplacements[$oldsqid])) { $insertdata['qid'] = $aQIDReplacements[$oldsqid]; } if ($insertdata) { XSSFilterArray($insertdata); } $ques = new Questions(); foreach ($insertdata as $k => $v) { $ques->{$k} = $v; } $result = $ques->save(); $newsqid = Yii::app()->db->getCommandBuilder()->getLastInsertID($ques->tableName()); if (!isset($insertdata['qid'])) { $aQIDReplacements[$oldsqid] = $newsqid; // add old and new qid to the mapping array } $results['subquestions']++; } } // Import answers -------------------------------------------------------------- if (isset($xml->answers)) { foreach ($xml->answers->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the parent_qid // now translate any links $answers = new Answers(); if ($insertdata) { XSSFilterArray($insertdata); } foreach ($insertdata as $k => $v) { $answers->{$k} = $v; } $result = $answers->save(); $results['answers']++; } } // Import questionattributes -------------------------------------------------------------- if (isset($xml->question_attributes)) { $aAllAttributes = questionAttributes(true); foreach ($xml->question_attributes->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } unset($insertdata['qaid']); $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the parent_qid if ($iDBVersion < 148 && isset($aAllAttributes[$insertdata['attribute']]['i18n']) && $aAllAttributes[$insertdata['attribute']]['i18n']) { foreach ($importlanguages as $sLanguage) { $insertdata['language'] = $sLanguage; $attributes = new Question_attributes(); if ($insertdata) { XSSFilterArray($insertdata); } foreach ($insertdata as $k => $v) { $attributes->{$k} = $v; } $result = $attributes->save(); } } else { $attributes = new Question_attributes(); if ($insertdata) { XSSFilterArray($insertdata); } foreach ($insertdata as $k => $v) { $attributes->{$k} = $v; } $result = $attributes->save(); } $results['question_attributes']++; } } // Import defaultvalues -------------------------------------------------------------- if (isset($xml->defaultvalues)) { $results['defaultvalues'] = 0; foreach ($xml->defaultvalues->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the qid $insertdata['sqid'] = $aSQIDReplacements[(int) $insertdata['sqid']]; // remap the subquestion id // now translate any links $default = new Defaultvalues(); if ($insertdata) { XSSFilterArray($insertdata); } foreach ($insertdata as $k => $v) { $default->{$k} = $v; } $result = $default->save(); $results['defaultvalues']++; } } LimeExpressionManager::SetDirtyFlag(); // so refreshes syntax highlighting $results['newqid'] = $newqid; $results['questions'] = 1; $results['labelsets'] = 0; $results['labels'] = 0; return $results; }
/** * Load only subquestion specific screen only. * * @access public * @param int $surveyid * @param int $gid * @param int $qid * @return void */ public function _editsubquestion($surveyid, $gid, $qid) { $surveyid = sanitize_int($surveyid); $qid = sanitize_int($qid); $gid = sanitize_int($gid); $clang = $this->getController()->lang; // Get languages select on survey. $anslangs = Survey::model()->findByPk($surveyid)->additionalLanguages; $baselang = Survey::model()->findByPk($surveyid)->language; $resultrow = Questions::model()->findByPk(array('qid' => $qid, 'language' => $baselang))->attributes; $sQuestiontype = $resultrow['type']; $aQuestiontypeInfo = getQuestionTypeList($sQuestiontype, 'array'); $iScaleCount = $aQuestiontypeInfo[$sQuestiontype]['subquestions']; for ($iScale = 0; $iScale < $iScaleCount; $iScale++) { $subquestiondata = Questions::model()->findAllByAttributes(array('parent_qid' => $qid, 'language' => $baselang, 'scale_id' => $iScale)); if (empty($subquestiondata)) { //Questions::model()->insert(); $data = array('sid' => $surveyid, 'gid' => $gid, 'parent_qid' => $qid, 'title' => 'SQ001', 'question' => $clang->gT('Some example subquestion'), 'question_order' => 1, 'language' => $baselang, 'scale_id' => $iScale); Questions::model()->insertRecords($data); $subquestiondata = Questions::model()->findAllByAttributes(array('parent_qid' => $qid, 'language' => $baselang, 'scale_id' => $iScale)); } // Check that there are subquestions for every language supported by the survey foreach ($anslangs as $language) { foreach ($subquestiondata as $row) { $qrow = Questions::model()->count(' parent_qid = :qid AND language = :language AND qid = ' . $row->qid . ' AND scale_id = :iScale', array(':qid' => $qid, ':language' => $language, ':iScale' => $iScale)); // Means that no record for the language exists in the questions table if (empty($qrow)) { switchMSSQLIdentityInsert('questions', true); $question = new Questions(); $question->qid = $row->qid; $question->sid = $surveyid; $question->gid = $row->gid; $question->parent_qid = $qid; $question->title = $row->title; $question->question = $row->question; $question->question_order = $row->question_order; $question->language = $language; $question->scale_id = $iScale; $question->save(); /** //activerecord is not not new bugfix! Questions::model()->insert(array( 'qid' => $row->qid, 'sid' => $surveyid, 'gid' => $row->gid, 'parent_qid' => $qid, 'title' => $row->title, 'question' => $row->question, 'question_order' => $row->question_order, 'language' => $language, 'scale_id' => $iScale, )); */ switchMSSQLIdentityInsert('questions', false); } } } } array_unshift($anslangs, $baselang); // Delete the subquestions in languages not supported by the survey $criteria = new CDbCriteria(); $criteria->addColumnCondition(array('parent_qid' => $qid)); $criteria->addNotInCondition('language', $anslangs); Questions::model()->deleteAll($criteria); // Check sort order for subquestions $qresult = Questions::model()->findByAttributes(array('qid' => $qid, 'language' => $baselang)); if (!is_null($qresult)) { $qtype = $qresult->type; } if (!empty($_POST['ansaction'])) { // Check if any nulls exist. If they do, redo the sortorders $cacount = Questions::model()->count(array('parent_qid' => $qid, 'question_order' => null, 'language' => $baselang)); if ($cacount) { Answers::model()->updateSortOrder($qid, Survey::model()->findByPk($surveyid)->language); } } Yii::app()->loadHelper('admin/htmleditor'); // Print Key Control JavaScript $result = Questions::model()->findAllBYAttributes(array('parent_qid' => $qid, 'language' => Survey::model()->findByPk($surveyid)->language), array('order' => 'question_order desc')); $aData['anscount'] = $anscount = count($result); $row = $result[0]->attributes; $aData['row'] = $row; $maxsortorder = $row['question_order'] + 1; /** * The following line decides if the assessment input fields are visible or not * for some question types the assessment values is set in the label set instead of the answers */ $qtypes = getQuestionTypeList('', 'array'); Yii::app()->loadHelper('surveytranslator'); $aData['scalecount'] = $scalecount = $qtypes[$qtype]['subquestions']; $sumresult1 = Survey::model()->with(array('languagesettings' => array('condition' => 'surveyls_language=language')))->together()->findByAttributes(array('sid' => $surveyid)); if ($sumresult1 == null) { $this->getController()->error('Invalid survey id'); } $surveyinfo = $sumresult1->attributes; $surveyinfo = array_merge($surveyinfo, $sumresult1->languagesettings[0]->attributes); $surveyinfo = array_map('flattenText', $surveyinfo); $aData['activated'] = $activated = $surveyinfo['active']; $aData['surveyid'] = $surveyid; $aData['gid'] = $gid; $aData['qid'] = $qid; $aData['anslangs'] = $anslangs; $aData['maxsortorder'] = $maxsortorder; foreach ($anslangs as $anslang) { for ($scale_id = 0; $scale_id < $scalecount; $scale_id++) { $criteria = new CDbCriteria(); $criteria->condition = 'parent_qid = :pqid AND language = :language AND scale_id = :scale_id'; $criteria->order = 'question_order, title ASC'; $criteria->params = array(':pqid' => $qid, ':language' => $anslang, ':scale_id' => $scale_id); $aData['results'][$anslang][$scale_id] = Questions::model()->findAll($criteria); } } $aViewUrls['subQuestion_view'][] = $aData; return $aViewUrls; }
/** * Add a question to the FAQ database * * @param $submitter * @param $text * @param $socCode * * @return \Questions */ public function addQuestion($submitter, $text, $socCode) { $question = new \Questions(); $question->setSocCode($socCode); $question->setQuestion($text); $question->setSubmitter($submitter); $question->save(); $eligibleExperts = $this->findExperts($socCode); $this->addQuestionToExpertQueue($question, $eligibleExperts); return $question; }
public function addquestion($post) { $status = true; if (!Yii::app()->user->isGuest) { $role = Yii::app()->user->role; $userid = Yii::app()->user->getId(); } else { $role = $post['q_role']; if ($role == 'homeowner') { $email = $post['q_hemail']; $count_email = Homeowners::model()->countByAttributes(array('email' => $email)); if ($count_email > 0) { $details = Homeowners::model()->findByAttributes(array('email' => $email)); $userid = $details->homeowner_id; } else { $password = Yii::app()->Ini->generate_password(); $huser = new Homeowners(); $huser->firstname = $post['q_firstname']; $huser->lastname = $post['q_lastname']; $huser->email = $post['q_hemail']; $huser->username = $post['q_husername']; $huser->password = $password; if ($huser->save()) { Yii::app()->Ini->savetovnoc($email); $userid = Yii::app()->db->getLastInsertId(); Yii::app()->Ini->savetoaffiliate($userid, 'homeowner'); $this->SendMailAfterSignUp($userid); } else { $status = false; $return['message'] = $huser->getErrors(); } } } else { $email = $post['q_cemail']; $password = $post['q_password']; $count_email = Contractors::model()->countByAttributes(array('Email' => $email)); if ($count_email > 0) { $details = Contractors::model()->findByAttributes(array('Email' => $email)); $userid = $details->ContractorId; } else { $cont = new Contractors(); $cont->Name = $post['q_company']; $cont->ContactName = $post['q_contactname']; $cont->Email = $post['q_cemail']; $cont->Username = $post['q_cusername']; $cont->Password = $post['q_password']; if ($cont->save()) { Yii::app()->Ini->savetovnoc($email); $userid = Yii::app()->db->getLastInsertId(); } else { $status = false; $return['message'] = $cont->getErrors(); } } } } if ($status) { if (Yii::app()->user->isGuest) { $identity = new UserIdentity($email, $password, $role); if ($identity->authenticate()) { Yii::app()->user->login($identity); $owner_id = Yii::app()->user->getId(); Yii::app()->Ini->savetoaffiliate($owner_id, $role); } } $q = new Questions(); $q->title = $post['q_title']; $q->content = $post['q_content']; $q->owner_id = $userid; $q->owner_user_type = $role; $q->project_type_id = $post['q_category']; if ($q->save()) { $return['url'] = 'questions/details/id/' . Yii::app()->db->getLastInsertId() . '/n/' . Yii::app()->Ini->slugstring($q->title); } else { $status = false; $return['message'] = $q->getErrors(); } } $return['status'] = $status; $this->renderJSON($return, $status); }