} $bp = new Permissions($b); if (!$bp->canWrite()) { $badPermissions = true; } } } else { $badPermissions = true; } if ($badPermissions) { echo t('Invalid Permissions'); die; } switch ($_GET['mode']) { case 'addQuestion': $miniSurvey->addEditQuestion($_POST); break; case 'getQuestion': $miniSurvey->getQuestionInfo(intval($_GET['qsID']), intval($_GET['qID'])); break; case 'delQuestion': $miniSurvey->deleteQuestion(intval($_GET['qsID']), intval($_GET['msqID'])); break; case 'reorderQuestions': $miniSurvey->reorderQuestions(intval($_POST['qsID']), $_POST['qIDs']); break; case 'refreshSurvey': default: $showEdit = intval($_REQUEST['showEdit']) == 1 ? true : false; $miniSurvey->loadSurvey(intval($_GET['qsID']), $showEdit, intval($bID), explode(',', $_GET['hide']), 1, 1); }
/** * Form add or edit submit * (run after the duplicate method on first block edit of new page version). */ public function save($data = []) { if (!$data || count($data) == 0) { $data = $_POST; } $data += ['qsID' => null, 'oldQsID' => null, 'questions' => []]; $b = $this->getBlockObject(); $c = $b->getBlockCollectionObject(); $db = Database::connection(); if (intval($this->bID) > 0) { $q = "select count(*) as total from {$this->btTable} where bID = " . intval($this->bID); $total = $db->getOne($q); } else { $total = 0; } if (isset($_POST['qsID']) && $_POST['qsID']) { $data['qsID'] = $_POST['qsID']; } if (!$data['qsID']) { $data['qsID'] = time(); } if (!$data['oldQsID']) { $data['oldQsID'] = $data['qsID']; } $data['bID'] = intval($this->bID); if (!empty($data['redirectCID'])) { $data['redirect'] = 1; } else { $data['redirect'] = 0; $data['redirectCID'] = 0; } if (empty($data['addFilesToSet'])) { $data['addFilesToSet'] = 0; } if (!isset($data['surveyName'])) { $data['surveyName'] = ''; } if (!isset($data['submitText'])) { $data['submitText'] = ''; } if (!isset($data['notifyMeOnSubmission'])) { $data['notifyMeOnSubmission'] = 0; } if (!isset($data['thankyouMsg'])) { $data['thankyouMsg'] = ''; } if (!isset($data['displayCaptcha'])) { $data['displayCaptcha'] = 0; } $v = [$data['qsID'], $data['surveyName'], $data['submitText'], intval($data['notifyMeOnSubmission']), $data['recipientEmail'], $data['thankyouMsg'], intval($data['displayCaptcha']), intval($data['redirectCID']), intval($data['addFilesToSet']), intval($this->bID)]; //is it new? if (intval($total) == 0) { $q = "insert into {$this->btTable} (questionSetId, surveyName, submitText, notifyMeOnSubmission, recipientEmail, thankyouMsg, displayCaptcha, redirectCID, addFilesToSet, bID) values (?, ?, ?, ?, ?, ?, ?, ?, ?,?)"; } else { $v[] = $data['qsID']; $q = "update {$this->btTable} set questionSetId = ?, surveyName=?, submitText=?, notifyMeOnSubmission=?, recipientEmail=?, thankyouMsg=?, displayCaptcha=?, redirectCID=?, addFilesToSet=? where bID = ? AND questionSetId= ?"; } $rs = $db->query($q, $v); //Add Questions (for programmatically creating forms, such as during the site install) if (count($data['questions']) > 0) { $miniSurvey = new MiniSurvey(); foreach ($data['questions'] as $questionData) { $miniSurvey->addEditQuestion($questionData, 0); } } $this->questionVersioning($data); return true; }