ErrorMsg()); $qtype = $result->FetchRow(); if ($qtype['type'] == 'G') { $query = "SELECT * FROM ".db_table_name('quota_members')." WHERE sid='{$surveyid}' and qid='{$qid}' and quota_id='{$quota_id}'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $answerlist = array('M' => array('Title' => $qtype['title'], 'Display' => $clang->gT("Male"), 'code' => 'M'), 'F' => array('Title' => $qtype['title'],'Display' => $clang->gT("Female"), 'code' => 'F')); if ($result->RecordCount() > 0) { while ($quotalist = $result->FetchRow()) { $answerlist[$quotalist['code']]['rowexists'] = '1'; } } } if ($qtype['type'] == 'M') { $query = "SELECT * FROM ".db_table_name('quota_members')." WHERE sid='{$surveyid}' and qid='{$qid}' and quota_id='{$quota_id}'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $query = "SELECT code,answer FROM ".db_table_name('answers')." WHERE qid='{$qid}'"; $ansresult = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $answerlist = array(); while ($dbanslist = $ansresult->FetchRow()) { $tmparrayans = array('Title' => $qtype['title'], 'Display' => substr($dbanslist['answer'],0,40), 'code' => $dbanslist['code']); $answerlist[$dbanslist['code']] = $tmparrayans; } if ($result->RecordCount() > 0) { while ($quotalist = $result->FetchRow()) { $answerlist[$quotalist['code']]['rowexists'] = '1'; } } } if ($qtype['type'] == 'L' || $qtype['type'] == 'O' || $qtype['type'] == '!') { $query = "SELECT * FROM ".db_table_name('quota_members')." WHERE sid='{$surveyid}' and qid='{$qid}' and quota_id='{$quota_id}'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $query = "SELECT code,answer FROM ".db_table_name('answers')." WHERE qid='{$qid}'"; $ansresult = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $answerlist = array(); while ($dbanslist = $ansresult->FetchRow()) { $answerlist[$dbanslist['code']] = array('Title'=>$qtype['title'], 'Display'=>substr($dbanslist['answer'],0,40), 'code'=>$dbanslist['code']); } if ($result->RecordCount() > 0) { while ($quotalist = $result->FetchRow()) { $answerlist[$quotalist['code']]['rowexists'] = '1'; } } } if ($qtype['type'] == 'A') { $query = "SELECT * FROM ".db_table_name('quota_members')." WHERE sid='{$surveyid}' and qid='{$qid}' and quota_id='{$quota_id}'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $query = "SELECT code,answer FROM ".db_table_name('answers')." WHERE qid='{$qid}'"; $ansresult = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $answerlist = array(); while ($dbanslist = $ansresult->FetchRow()) { for ($x=1; $x<6; $x++) { $tmparrayans = array('Title' => $qtype['title'], 'Display' => substr($dbanslist['answer'],0,40).' ['.$x.']', 'code' => $dbanslist['code']); $answerlist[$dbanslist['code']."-".$x] = $tmparrayans; } } if ($result->RecordCount() > 0) { while ($quotalist = $result->FetchRow()) { $answerlist[$quotalist['code']]['rowexists'] = '1'; } } } if ($qtype['type'] == 'B') { $query = "SELECT * FROM ".db_table_name('quota_members')." WHERE sid='{$surveyid}' and qid='{$qid}' and quota_id='{$quota_id}'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $query = "SELECT code,answer FROM ".db_table_name('answers')." WHERE qid='{$qid}'"; $ansresult = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $answerlist = array(); while ($dbanslist = $ansresult->FetchRow()) { for ($x=1; $x<11; $x++) { $tmparrayans = array('Title' => $qtype['title'], 'Display' => substr($dbanslist['answer'],0,40).' ['.$x.']', 'code' => $dbanslist['code']); $answerlist[$dbanslist['code']."-".$x] = $tmparrayans; } } if ($result->RecordCount() > 0) { while ($quotalist = $result->FetchRow()) { $answerlist[$quotalist['code']]['rowexists'] = '1'; } } } if ($qtype['type'] == 'Y') { $query = "SELECT * FROM ".db_table_name('quota_members')." WHERE sid='{$surveyid}' and qid='{$qid}' and quota_id='{$quota_id}'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $answerlist = array('Y' => array('Title' => $qtype['title'], 'Display' => $clang->gT("Yes"), 'code' => 'Y'), 'N' => array('Title' => $qtype['title'],'Display' => $clang->gT("No"), 'code' => 'N')); if ($result->RecordCount() > 0) { while ($quotalist = $result->FetchRow()) { $answerlist[$quotalist['code']]['rowexists'] = '1'; } } } if ($qtype['type'] == 'I') { $slangs = GetAdditionalLanguagesFromSurveyID($surveyid); array_unshift($slangs,$baselang); $query = "SELECT * FROM ".db_table_name('quota_members')." WHERE sid='{$surveyid}' and qid='{$qid}' and quota_id='{$quota_id}'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); while(list($key,$value) = each($slangs)) { $tmparrayans = array('Title' => $qtype['title'], 'Display' => getLanguageNameFromCode($value,false), $value); $answerlist[$value] = $tmparrayans; } if ($result->RecordCount() > 0) { while ($quotalist = $result->FetchRow()) { $answerlist[$quotalist['code']]['rowexists'] = '1'; } } } if (!isset($answerlist)) { return array(); } else { return $answerlist; } } if($sumrows5['edit_survey_property'] || $_SESSION['USER_RIGHT_SUPERADMIN'] == 1) { if (isset($_POST['quotamax'])) $_POST['quotamax']=sanitize_int($_POST['quotamax']); if (!isset($action)) $action=returnglobal('action'); if (!isset($subaction)) $subaction=returnglobal('subaction'); if (!isset($quotasoutput)) $quotasoutput = ""; if($subaction == "insertquota") { if(!isset($_POST['quota_limit']) || $_POST['quota_limit'] < 1) { $_POST['quota_limit'] = 1; } $_POST = array_map('db_quote', $_POST); $query = "INSERT INTO ".db_table_name('quota')." (sid,name,qlimit,action,autoload_url) VALUES ('$surveyid','{$_POST['quota_name']}','{$_POST['quota_limit']}','1', '1')"; $connect->Execute($query) or safe_die("Error inserting limit".$connect->ErrorMsg()); $quotaid=$connect->Insert_Id(db_table_name_nq('quota'),"id"); //Get the languages used in this survey $langs = GetAdditionalLanguagesFromSurveyID($surveyid); $baselang = GetBaseLanguageFromSurveyID($surveyid); $langs[] = $baselang; //Iterate through each language, and make sure there is a quota message for it $errorstring = ''; foreach ($langs as $lang) { if (!$_POST['quotals_message_'.$lang]) { $errorstring.= GetLanguageNameFromCode($lang,false)."\\n";} } if ($errorstring!='') { $databaseoutput .= "\n"; } else //All the required quota messages exist, now we can insert this info into the database { require_once("../classes/inputfilter/class.inputfilter_clean.php"); $myFilter = new InputFilter('','',1,1,1); foreach ($langs as $lang) //Iterate through each language { //Clean XSS if ($filterxsshtml) { $_POST['quotals_message_'.$lang]=$myFilter->process($_POST['quotals_message_'.$lang]); } else { $_POST['quotals_message_'.$lang] = html_entity_decode($_POST['quotals_message_'.$lang], ENT_QUOTES, "UTF-8"); } // Fix bug with FCKEditor saving strange BR types $_POST['quotals_message_'.$lang]=fix_FCKeditor_text($_POST['quotals_message_'.$lang]); include_once(dirname(__FILE__) . '/../quexs.php'); //Now save the language to the database: $query = "INSERT INTO ".db_table_name('quota_languagesettings')." (quotals_quota_id, quotals_language, quotals_name, quotals_message, quotals_url, quotals_urldescrip) VALUES ('$quotaid', '$lang', '".db_quote($_POST['quota_name'])."', '".db_quote($_POST['quotals_message_'.$lang])."', '".QUEXS_URL."rs_quota_end.php', '".QUEXS_URL."rs_quota_end.php')"; $connect->Execute($query) or safe_die($connect->ErrorMsg()); } } //End insert language based components $viewquota = "1"; } //End foreach $lang if($subaction == "modifyquota") { $_POST = array_map('db_quote', $_POST); $query = "UPDATE ".db_table_name('quota')." SET name='{$_POST['quota_name']}', qlimit='{$_POST['quota_limit']}' WHERE id='{$_POST['quota_id']}' "; $connect->Execute($query) or safe_die("Error modifying quota".$connect->ErrorMsg()); //Get the languages used in this survey $langs = GetAdditionalLanguagesFromSurveyID($surveyid); $baselang = GetBaseLanguageFromSurveyID($surveyid); $langs[] = $baselang; //Iterate through each language, and make sure there is a quota message for it $errorstring = ''; foreach ($langs as $lang) { if (!$_POST['quotals_message_'.$lang]) { $errorstring.= GetLanguageNameFromCode($lang,false)."\\n";} } if ($errorstring!='') { $databaseoutput .= "\n"; } else //All the required quota messages exist, now we can insert this info into the database { require_once("../classes/inputfilter/class.inputfilter_clean.php"); $myFilter = new InputFilter('','',1,1,1); foreach ($langs as $lang) //Iterate through each language { //Clean XSS if ($filterxsshtml) { $_POST['quotals_message_'.$lang]=$myFilter->process($_POST['quotals_message_'.$lang]); } else { $_POST['quotals_message_'.$lang] = html_entity_decode($_POST['quotals_message_'.$lang], ENT_QUOTES, "UTF-8"); } // Fix bug with FCKEditor saving strange BR types $_POST['quotals_message_'.$lang]=fix_FCKeditor_text($_POST['quotals_message_'.$lang]); //Now save the language to the database: $query = "UPDATE ".db_table_name('quota_languagesettings')." SET quotals_name='".db_quote($_POST['quota_name'])."', quotals_message='".db_quote($_POST['quotals_message_'.$lang])."' WHERE quotals_quota_id = '{$_POST['quota_id']}' AND quotals_language = '$lang'"; $connect->Execute($query) or safe_die($connect->ErrorMsg()); } } //End insert language based components $viewquota = "1"; } if($subaction == "insertquotaanswer") { $_POST = array_map('db_quote', $_POST); $query = "INSERT INTO ".db_table_name('quota_members')." (sid,qid,quota_id,code) VALUES ('$surveyid','{$_POST['quota_qid']}','{$_POST['quota_id']}','{$_POST['quota_anscode']}')"; $connect->Execute($query) or safe_die($connect->ErrorMsg()); $viewquota = "1"; } if($subaction == "quota_delans") { $_POST = array_map('db_quote', $_POST); $query = "DELETE FROM ".db_table_name('quota_members')." WHERE id = '{$_POST['quota_member_id']}' AND qid='{$_POST['quota_qid']}' and code='{$_POST['quota_anscode']}'"; $connect->Execute($query) or safe_die($connect->ErrorMsg()); $viewquota = "1"; } if($subaction == "quota_delquota") { $_POST = array_map('db_quote', $_POST); $query = "DELETE FROM ".db_table_name('quota')." WHERE id='{$_POST['quota_id']}'"; $connect->Execute($query) or safe_die($connect->ErrorMsg()); $query = "DELETE FROM ".db_table_name('quota_languagesettings')." WHERE quotals_quota_id='{$_POST['quota_id']}'"; $connect->Execute($query) or safe_die($connect->ErrorMsg()); $query = "DELETE FROM ".db_table_name('quota_members')." WHERE quota_id='{$_POST['quota_id']}'"; $connect->Execute($query) or safe_die($connect->ErrorMsg()); $viewquota = "1"; } if ($subaction == "quota_editquota") { if (isset($_GET['quota_id'])) $_POST['quota_id'] = $_GET['quota_id']; $_POST = array_map('db_quote', $_POST); $query = "SELECT * FROM ".db_table_name('quota')." WHERE id='{$_POST['quota_id']}'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $quotainfo = $result->FetchRow(); $quotasoutput .='
'.$clang->gT("Modify Quota").'

'.$clang->gT("Quota Name").':

'.$clang->gT("Quota Limit").':

'; $langs = GetAdditionalLanguagesFromSurveyID($surveyid); $baselang = GetBaseLanguageFromSurveyID($surveyid); array_push($langs,$baselang); require_once("../classes/inputfilter/class.inputfilter_clean.php"); $myFilter = new InputFilter('','',1,1,1); $quotasoutput .= '
'."\n\n"; foreach ($langs as $lang) { //Get this one $langquery = "SELECT * FROM ".db_table_name('quota_languagesettings')." WHERE quotals_quota_id='{$_POST['quota_id']}' AND quotals_language = '$lang'"; $langresult = db_execute_assoc($langquery) or safe_die($connect->ErrorMsg()); $langquotainfo = $langresult->FetchRow(); $quotasoutput .= '

'.GetLanguageNameFromCode($lang,false); if ($lang==$baselang) {$quotasoutput .= '('.$clang->gT("Base Language").')';} $quotasoutput .= "

"; $quotasoutput.='

'.$clang->gT("Quota message").':

'; }; $quotasoutput .= '
 
'; } $totalquotas=0; $totalcompleted=0; $csvoutput=array(); if (($action == "quotas" && !isset($subaction)) || isset($viewquota)) { $query = "SELECT * FROM ".db_table_name('quota')." , ".db_table_name('quota_languagesettings')." WHERE ".db_table_name('quota').".id = ".db_table_name('quota_languagesettings').".quotals_quota_id AND sid='".$surveyid."' AND quotals_language = '".$baselang."'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); $quotasoutput .='
'; if ($result->RecordCount() > 0) { while ($quotalisting = $result->FetchRow()) { $quotasoutput .=''; $query = "SELECT id,code,qid FROM ".db_table_name('quota_members')." where quota_id='".$quotalisting['id']."'"; $result2 = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); if ($result2->RecordCount() > 0) { while ($quota_questions = $result2->FetchRow()) { $question_answers = getQuotaAnswers($quota_questions['qid'],$surveyid,$quotalisting['id']); $quotasoutput .=''; } } } } else { $quotasoutput .=''; } $quotasoutput .='
'.$clang->gT("Survey Quotas").'
'.$clang->gT("Quota Name").' '.$clang->gT("Status").' '.$clang->gT("Quota Action").' '.$clang->gT("Limit").' '.$clang->gT("Completed").' '.$clang->gT("Action").'
'.$quotalisting['name'].' '; if ($quotalisting['active'] == 1) { $quotasoutput .= ''.$clang->gT("Active").''; } else { $quotasoutput .= ''.$clang->gT("Not Active").''; } $quotasoutput .=' '; if ($quotalisting['action'] == 1) { $quotasoutput .= $clang->gT("Terminate Survey"); } elseif ($quotalisting['action'] == 2) { $quotasoutput .= $clang->gT("Terminate Survey With Warning"); } $totalquotas+=$quotalisting['qlimit']; $completed=get_quotaCompletedCount($surveyid, $quotalisting['id']); $highlight=($completed >= $quotalisting['qlimit']) ? "" : "style='color: red'"; //Incomplete quotas displayed in red $totalcompleted=$totalcompleted+$completed; $csvoutput[]=$quotalisting['name'].",".$quotalisting['qlimit'].",".$completed.",".($quotalisting['qlimit']-$completed)."\r\n"; $quotasoutput .=' '.$quotalisting['qlimit'].' '.$completed.'
  '.$clang->gT("Questions").' '.$clang->gT("Answers").'    
  '.$question_answers[$quota_questions['code']]['Title'].' '.$question_answers[$quota_questions['code']]['Display'].'    
'.$clang->gT("No quotas have been set for this survey").'.
      '.$totalquotas.'  
      '.$totalquotas.' '.$totalcompleted.'
'; } if(isset($_GET['quickreport']) && $_GET['quickreport']) { header("Content-Disposition: attachment; filename=results-survey".$surveyid.".csv"); header("Content-type: text/comma-separated-values; charset=UTF-8"); echo $clang->gT("Quota Name").",".$clang->gT("Limit").",".$clang->gT("Completed").",".$clang->gT("Remaining")."\r\n"; foreach($csvoutput as $line) { echo $line; } die; } if($subaction == "new_answer" || ($subaction == "new_answer_two" && !isset($_POST['quota_qid']))) { if ($subaction == "new_answer_two") $_POST['quota_id'] = $_POST['quota_id']; $allowed_types = "(type ='G' or type ='M' or type ='Y' or type ='A' or type ='B' or type ='I' or type = 'L' or type='O' or type='!')"; $query = "SELECT qid, title, question FROM ".db_table_name('questions')." WHERE $allowed_types AND sid='$surveyid' AND language='{$baselang}'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); if ($result->RecordCount() == 0) { $quotasoutput .='
'.$clang->gT("Add Answer").': '.$clang->gT("Question Selection").'

'.$clang->gT("Sorry there are no supported question types in this survey.").'

'; } else { $quotasoutput .='
'.$clang->gT("Survey Quota").': '.$clang->gT("Add Answer").'
   
'.$clang->gT("Select Question").':
 
 
'; } } if($subaction == "new_answer_two" && isset($_POST['quota_qid'])) { $_POST = array_map('db_quote', $_POST); $question_answers = getQuotaAnswers($_POST['quota_qid'],$surveyid,$_POST['quota_id']); $x=0; foreach ($question_answers as $qacheck) { if (isset($qacheck['rowexists'])) $x++; } reset($question_answers); if (count($question_answers) == $x) { $quotasoutput .='
'.$clang->gT("Add Answer").': '.$clang->gT("Question Selection").'

'.$clang->gT("All answers are already selected in this quota.").'

'; } else { $quotasoutput .='
'.$clang->gT("Survey Quota").': '.$clang->gT("Add Answer").'
   
'.$clang->gT("Select Answer").':
 
 
'; } } if ($subaction == "new_quota") { $quotasoutput .=''; $quotasoutput.='
'.$clang->gT("New Quota").'

'.$clang->gT("Quota Name").':

'.$clang->gT("Quota Limit").':

'; $langs = GetAdditionalLanguagesFromSurveyID($surveyid); $baselang = GetBaseLanguageFromSurveyID($surveyid); array_push($langs,$baselang); require_once("../classes/inputfilter/class.inputfilter_clean.php"); $myFilter = new InputFilter('','',1,1,1); $thissurvey=getSurveyInfo($surveyid); $quotasoutput .= '
'."\n\n"; foreach ($langs as $lang) { $quotasoutput .= '

'.GetLanguageNameFromCode($lang,false); if ($lang==$baselang) {$quotasoutput .= '('.$clang->gT("Base Language").')';} $quotasoutput .= "

"; $quotasoutput.='

'.$clang->gT("Quota message").':

'; }; $quotasoutput .= '
'; } } ?>