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 title,question FROM ".db_table_name('questions')." WHERE parent_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['question'],0,40), 'code' => $dbanslist['title']); $answerlist[$dbanslist['title']] = $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}' and language='{$baselang}'"; $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 title,question FROM ".db_table_name('questions')." WHERE parent_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['question'],0,40).' ['.$x.']', 'code' => $dbanslist['title']); $answerlist[$dbanslist['title']."-".$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}' and language='{$baselang}'"; $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; } } $js_admin_includes[]='../scripts/jquery/jquery.tablesorter.min.js'; $js_admin_includes[]='scripts/quotas.js'; if(bHasSurveyPermission($surveyid, 'quotas','read')) { 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 (!isset($_POST['autoload_url']) || empty($_POST['autoload_url'])) {$_POST['autoload_url']=0;} //queXS Removal if($subaction == "insertquota" && bHasSurveyPermission($surveyid, 'quotas','create')) { if(!isset($_POST['quota_limit']) || $_POST['quota_limit'] < 0 || empty($_POST['quota_limit']) || !is_numeric($_POST['quota_limit'])) { $_POST['quota_limit'] = 0; } array_walk( $_POST, 'db_quote', true); $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); array_push($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'); //queXS Addition //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'],true)."', '".db_quote($_POST['quotals_message_'.$lang],true)."', '".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" && bHasSurveyPermission($surveyid, 'quotas','update')) { $query = "UPDATE ".db_table_name('quota')." SET name=".db_quoteall($_POST['quota_name'],true).", qlimit=".db_quoteall($_POST['quota_limit'],true)." WHERE id=".db_quoteall($_POST['quota_id'],true); $connect->Execute($query) or safe_die("Error modifying quota".$connect->ErrorMsg()); //Get the languages used in this survey $langs = GetAdditionalLanguagesFromSurveyID($surveyid); $baselang = GetBaseLanguageFromSurveyID($surveyid); array_push($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!='') { $quotasoutput .= "\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]); //Check to see if a matching language exists, and if not, INSERT one (no update possible) $query = "SELECT * FROM ".db_table_name('quota_languagesettings')." WHERE quotals_quota_id = ".db_quote($_POST['quota_id'], true)." AND quotals_language = '$lang'"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); if ($result->RecordCount() > 0) { //Now save the language to the database: $query = "UPDATE ".db_table_name('quota_languagesettings')." SET quotals_name='".db_quote($_POST['quota_name'],true)."', quotals_message='".db_quote($_POST['quotals_message_'.$lang],true)."' WHERE quotals_quota_id =".db_quote($_POST['quota_id'],true)." AND quotals_language = '$lang'"; $connect->Execute($query) or safe_die($connect->ErrorMsg()); } else { /* If there is no matching record for this language, create one */ $query = "INSERT INTO ".db_table_name('quota_languagesettings')." (quotals_quota_id,quotals_language,quotals_name,quotals_message,quotals_url,quotals_urldescrip) VALUES ('".db_quote($_POST['quota_id'])."', '$lang', '".db_quote($_POST['quota_name'],true)."', '".db_quote($_POST['quotals_message_'.$lang],true)."', '".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"; } if($subaction == "insertquotaanswer" && bHasSurveyPermission($surveyid, 'quotas','create')) { array_walk( $_POST, 'db_quote', true); $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()); if(isset($_POST['createanother']) && $_POST['createanother'] == "on") { $_POST['action']="quotas"; $_POST['subaction']="new_answer"; $subaction="new_answer"; } else { $viewquota = "1"; } } if($subaction == "quota_delans" && bHasSurveyPermission($surveyid, 'quotas','delete')) { array_walk( $_POST, 'db_quote', true); $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" && bHasSurveyPermission($surveyid, 'quotas','delete')) { array_walk( $_POST, 'db_quote', true); $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" && bHasSurveyPermission($surveyid, 'quotas','update')) { if (isset($_GET['quota_id'])) $_POST['quota_id'] = $_GET['quota_id']; //queXS Addition array_walk( $_POST, 'db_quote', true); $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 .="
'; } $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."' ORDER BY name"; $result = db_execute_assoc($query) or safe_die($connect->ErrorMsg()); //create main quota| '.$clang->gT("Quota name").' | '.$clang->gT("Status").' | '.$clang->gT("Quota action").' | '.$clang->gT("Completed").' | '.$clang->gT("Limit").' | '.$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: orange'"; //Incomplete quotas displayed in red $totalcompleted=$totalcompleted+$completed; $csvoutput[]=$quotalisting['name'].",".$quotalisting['qlimit'].",".$completed.",".($quotalisting['qlimit']-$completed)."\r\n"; $quotasoutput .=' | '.$completed.' | '.$quotalisting['qlimit'].' | '; if (bHasSurveyPermission($surveyid, 'quotas','update')) { $quotasoutput .=''; } if (bHasSurveyPermission($surveyid, 'quotas','delete')) { $quotasoutput .=''; } $quotasoutput .=' |
| '.$clang->gT("Question").' | '.$clang->gT("Answer").' | '; if (bHasSurveyPermission($surveyid, 'quotas','update')) { $quotasoutput .=''; } $quotasoutput .=' | |||
| '.$question_answers[$quota_questions['code']]['Title'].' | '.$question_answers[$quota_questions['code']]['Display'].' | ||||
| '.$clang->gT("No quotas have been set for this survey").'. | |||||
| '.$totalcompleted.' | '.$totalquotas.' | '; if (bHasSurveyPermission($surveyid, 'quotas','create')) { $quotasoutput .=''; } $quotasoutput .=' | |||