';
echo '
';
}
}
}
// Prikaze url za naknadno popravljanje odgovorov (od zacetka ankete) v zakljucku
public function displayReturnEditURL()
{
$row = SurveyInfo::getInstance()->getSurveyRow();
if ((int)$row['concl_return_edit'] == 1) {
$return_url = $_POST['url'] . '&return=1';
$return_url = SurveyInfo::getSurveyLink() . get('cookie_url') . '&return=1';
echo '
';
echo self::$lang['srv_concl_return_edit_URL'].':
';
echo ''.$return_url.'';
echo '
';
}
}
// Prikaze pravilne rezultate v primeru modula KVIZ
public function displayQuizAnswers()
{
// echo '
'.self::$lang['results'].'
';
// Loop cez vsa ustrezna vprasanja (ki imajo oznacen vsaj en pravilen odgovor)
$sqlS = sisplet_query("SELECT s.id, s.naslov, s.info FROM srv_spremenljivka s, srv_grupa g
WHERE g.ank_id='".get('anketa')."' AND s.gru_id=g.id AND s.tip IN ('1', '2', '3') AND s.visible='1'
AND EXISTS (SELECT q.* FROM srv_quiz_vrednost q WHERE q.spr_id=s.id)
AND NOT EXISTS (SELECT d.* FROM srv_data_vrednost_active d WHERE d.spr_id=s.id AND usr_id='".get('usr_id')."' AND d.vre_id='-2')");
if (!$sqlS) echo mysqli_error($GLOBALS['connect_db']);
while($rowS = mysqli_fetch_array($sqlS)){
echo '
';
//Vprasanja::getInstance()->displaySpremenljivka($rowS['id']);
echo '
'.$rowS['naslov'];
if ($rowS['info'] != '')
echo '
' . $rowS['info'] . '
';
echo '
';
echo '
';
// Loop cez vse vrednosti v vprasanju
$sqlV = sisplet_query("SELECT id, naslov FROM srv_vrednost WHERE spr_id='".$rowS['id']."' ORDER BY vrstni_red ASC");
while($rowV = mysqli_fetch_array($sqlV)){
// Za vsako pogledamo ce je pravilna oz napacna
$answer = false;
$correct = false;
$sqlAnswer = sisplet_query("SELECT * FROM srv_data_vrednost_active WHERE spr_id='".$rowS['id']."' AND vre_id='".$rowV['id']."' AND usr_id='".get('usr_id')."'");
if(mysqli_num_rows($sqlAnswer) == 1)
$answer = true;
$sqlQuiz = sisplet_query("SELECT * FROM srv_quiz_vrednost WHERE spr_id='".$rowS['id']."' AND vre_id='".$rowV['id']."'");
if(mysqli_num_rows($sqlQuiz) == 1)
$correct = true;
if($correct && $answer){
echo '
';
echo $rowV['naslov'] . '';
echo '
';
}
elseif($correct){
echo '
';
//echo $rowV['naslov'] . '';
echo $rowV['naslov'];
echo '
';
}
elseif($answer){
echo '
';
echo $rowV['naslov'] . '';
echo '
';
}
else{
echo '
';
echo $rowV['naslov'];
echo '
';
}
}
echo '
';
echo '
';
}
}
// Prikaze graf rezultatov v primeru modula KVIZ
public function displayQuizChart()
{
//echo '
'.self::$lang['results'].'
';
$cnt_all = 0;
$cnt_answered = 0;
$cnt_unanswered = 0;
$cnt_correct = 0;
$cnt_incorrect = 0;
// Loop cez vsa ustrezna vprasanja (ki imajo oznacen vsaj en pravilen odgovor)
$sqlS = sisplet_query("SELECT s.id, s.naslov, s.info FROM srv_spremenljivka s, srv_grupa g
WHERE g.ank_id='".get('anketa')."' AND s.gru_id=g.id AND s.tip IN ('1', '2', '3') AND s.visible='1'
AND EXISTS (SELECT q.* FROM srv_quiz_vrednost q WHERE q.spr_id=s.id)
AND NOT EXISTS (SELECT d.* FROM srv_data_vrednost_active d WHERE d.spr_id=s.id AND usr_id='".get('usr_id')."' AND d.vre_id='-2')");
if (!$sqlS) echo mysqli_error($GLOBALS['connect_db']);
while($rowS = mysqli_fetch_array($sqlS)){
$cnt_all++;
$answer = false;
$correct = false;
// Loop cez vse vrednosti v vprasanju
$sqlV = sisplet_query("SELECT id, naslov FROM srv_vrednost WHERE spr_id='".$rowS['id']."' ORDER BY vrstni_red ASC");
while($rowV = mysqli_fetch_array($sqlV)){
// Za vsako pogledamo ce je odgovorjena
$sqlAnswer = sisplet_query("SELECT * FROM srv_data_vrednost_active WHERE spr_id='".$rowS['id']."' AND vre_id='".$rowV['id']."' AND usr_id='".get('usr_id')."'");
if(mysqli_num_rows($sqlAnswer) == 1){
$answer = true;
// Za vsako pogledamo ce je pravilna oz napacna
$sqlQuiz = sisplet_query("SELECT * FROM srv_quiz_vrednost WHERE spr_id='".$rowS['id']."' AND vre_id='".$rowV['id']."'");
if(mysqli_num_rows($sqlQuiz) == 1){
$correct = true;
}
// Ce je oznacil napacno breakamo
else{
$correct = false;
break;
}
}
}
if($answer)
$cnt_answered++;
else
$cnt_unanswered++;
if($correct)
$cnt_correct++;
else
$cnt_incorrect++;
}
// Izrisemo graf
/*echo 'Vseh: '.$cnt_all;
echo '
odgovorjen: '.$cnt_answered;
echo '
neodg: '.$cnt_unanswered;
echo '
pravilen: '.$cnt_correct;
echo '
nepravilen: '.$cnt_incorrect;*/
// Include knjiznice Chart.JS
echo '';
echo '';
// Izris grafa
echo '
';
echo '';
echo '';
echo '
';
}
// Prikaze graf za matriko odlicnosti (excell_matrix) v primeru modula Excelleration matrix
public function displayExcellChart()
{
echo '
'.self::$lang['srv_excell_matrix_title'].'
';
// Loop cez vsa ustrezna vprasanja in njihove vrednosti (jih zakesiramo)
$variables = array();
$variable_marza = array();
$variable_lp = array();
$spr_ids = '';
$sqlS = sisplet_query("SELECT s.id AS spr_id, s.naslov AS spr_naslov, s.variable AS spr_variable, v.id AS vre_id, v.variable AS vre_variable, v.naslov AS vre_naslov
FROM srv_spremenljivka s, srv_grupa g, srv_vrednost v
WHERE g.ank_id='".get('anketa')."' AND s.gru_id=g.id
AND s.variable LIKE 'em%'
AND v.spr_id=s.id");
if (!$sqlS) echo mysqli_error($GLOBALS['connect_db']);
while($rowS = mysqli_fetch_array($sqlS)){
// Marza
if($rowS['spr_variable'] == 'emM'){
// ID-ji vprasanj za query
if(!isset($variable_marza['id']))
$spr_ids .= $rowS['spr_id'].',';
$variable_marza['naslov'] = strip_tags($rowS['spr_naslov']);
$variable_marza['id'] = $rowS['spr_id'];
$variable_marza['vrednosti'][$rowS['vre_id']]['variable'] = $rowS['vre_variable'];
$variable_marza['vrednosti'][$rowS['vre_id']]['naslov'] = $rowS['vre_naslov'];
}
// Letni promet
elseif($rowS['spr_variable'] == 'emLP'){
$variable_lp['naslov'] = strip_tags($rowS['spr_naslov']);
$variable_lp['id'] = $rowS['spr_id'];
}
// Ostali
else{
// ID-ji vprasanj za query
if(!isset($variables[$rowS['spr_id']]['variable']))
$spr_ids .= $rowS['spr_id'].',';
$variables[$rowS['spr_id']]['naslov'] = strip_tags($rowS['spr_naslov']);
$variables[$rowS['spr_id']]['variable'] = $rowS['spr_variable'];
$variables[$rowS['spr_id']]['vrednosti'][$rowS['vre_id']]['variable'] = $rowS['vre_variable'];
$variables[$rowS['spr_id']]['vrednosti'][$rowS['vre_id']]['naslov'] = $rowS['vre_naslov'];
}
}
$spr_ids = substr($spr_ids, 0, -1);
// Loop cez vse respondente s statusom 6 - vsak je svoj bubble
$data = array();
$sum = 0;
$cnt = 0;
$sqlAnswers = sisplet_query("SELECT * FROM srv_data_vrednost_active WHERE usr_id='".get('usr_id')."' AND spr_id IN (".$spr_ids.")");
while($rowAnswers = mysqli_fetch_array($sqlAnswers)){
// Marzo normalno preberemo
if($rowAnswers['spr_id'] == $variable_marza['id']){
$value = $variable_marza['vrednosti'][$rowAnswers['vre_id']]['variable'];
$data['marza'] = $value;
$variable_marza['value'] = $rowAnswers['vre_id'];
}
// Pri ostalih racunamo povprecje
else{
$value = $variables[$rowAnswers['spr_id']]['vrednosti'][$rowAnswers['vre_id']]['variable'];
$sum += (int)$value;
$cnt++;
$variables[$rowAnswers['spr_id']]['value'] = $rowAnswers['vre_id'];
}
}
$data['excell'] = round($sum/$cnt, 1);
// Posebej pridobimo tudi letni promet
$sqlAnswers = sisplet_query("SELECT text FROM srv_data_text_active WHERE usr_id='".get('usr_id')."' AND spr_id='".$variable_lp['id']."'");
$rowAnswers = mysqli_fetch_array($sqlAnswers);
$data['letni_promet'] = $rowAnswers['text'];
$variable_lp['value'] = $rowAnswers['text'];
// Max radius=80 (vrednost 1000), min radius=8 (vrednost 100)
$radius = $data['letni_promet'];
// Include knjiznice Chart.JS
echo '';
echo '';
// Izris grafa
echo '
';
echo '';
echo '';
echo '
';
// Izrisemo se seznam vprasanj
foreach($variables as $spr_id => $spremenljivka){
echo '
';
echo '
'.$spremenljivka['naslov'].'
';
echo '
';
foreach($spremenljivka['vrednosti'] as $vre_id => $vrednost){
echo '
'.$vrednost['naslov'].'
';
}
echo '
';
echo '
';
}
// Marza
echo '
';
echo '
'.$variable_marza['naslov'].'
';
echo '
';
foreach($variable_marza['vrednosti'] as $vre_id => $vrednost){
echo '
'.$vrednost['naslov'].'
';
}
echo '
';
echo '
';
// Letni promet
echo '
';
echo '
'.$variable_lp['naslov'].'
';
echo '
';
echo '
'.$variable_lp['value'].'
';
echo '
';
echo '
';
}
// SKAVTI - prikaze povzetek in graf za njihovo anketo
public function displaySkavtiAnswers(){
// Stevilo top pohval in izziv, ki jih izpisemo v zakljucku
$max_odgovorov = 3;
$vprasanja = array();
$spr_ids = '';
// Loop cez vsa ustrezna vprasanja in njihove vrednosti (jih zakesiramo)
$sqlS = sisplet_query("SELECT s.id AS spr_id, s.naslov AS spr_naslov, s.variable AS spr_variable
FROM srv_spremenljivka s, srv_grupa g
WHERE g.ank_id='".get('anketa')."' AND s.gru_id=g.id
AND s.variable LIKE 'R%'
");
if (!$sqlS) echo mysqli_error($GLOBALS['connect_db']);
while($rowS = mysqli_fetch_array($sqlS)){
$vprasanje_number = substr($rowS['spr_variable'], 1);
$vprasanja[$rowS['spr_id']] = $vprasanje_number;
// ID-ji vprasanj za query
$spr_ids .= $rowS['spr_id'].',';
}
$spr_ids = substr($spr_ids, 0, -1);
// Loop cez vse response za vprasanja
$pohvale = array();
$izzivi = array();
$sqlAnswers = sisplet_query("SELECT vd.*, v.naslov, v.variable
FROM srv_data_vrednost_active vd, srv_vrednost v
WHERE vd.usr_id='".get('usr_id')."' AND vd.spr_id IN (".$spr_ids.")
AND v.id=vd.vre_id
");
while($rowAnswers = mysqli_fetch_array($sqlAnswers)){
// Pohvala
if((int)$rowAnswers['variable'] >= 1 && (int)$rowAnswers['variable'] <= 199){
$pohvale[(int)$rowAnswers['variable']] = $rowAnswers;
}
// Izziv
elseif((int)$rowAnswers['variable'] >= 201 && (int)$rowAnswers['variable'] <= 399){
$izzivi[(int)$rowAnswers['variable']] = $rowAnswers;
}
}
// Sortiramo po velikosti
ksort($pohvale, SORT_NUMERIC);
ksort($izzivi, SORT_NUMERIC);
// Loop cez komentarje v nagovorih
$pohvale_besedilo = array();
$izzivi_besedilo = array();
$sqlS = sisplet_query("SELECT s.id AS spr_id, s.naslov AS spr_naslov, s.variable AS spr_variable
FROM srv_spremenljivka s, srv_grupa g
WHERE g.ank_id='".get('anketa')."' AND s.gru_id=g.id
AND (s.variable LIKE 'P%' OR s.variable LIKE 'G%')
");
if (!$sqlS) echo mysqli_error($GLOBALS['connect_db']);
while($rowS = mysqli_fetch_array($sqlS)){
$tip = substr($rowS['spr_variable'], 0, 1);
$vprasanje_number = substr($rowS['spr_variable'], 1);
$naslov = $rowS['spr_naslov'];
// Pohvala
if($tip == 'P'){
$pohvale_besedilo[$vprasanje_number] = $naslov;
}
// Izziv
elseif($tip == 'G'){
$izzivi_besedilo[$vprasanje_number] = $naslov;
}
}
// Izrisemo seznam vprasanj s pohvalami
echo '
POHVALE
';
$i = 1;
foreach($pohvale as $pohvala_vrednost => $vrednost){
if($i > $max_odgovorov)
break;
$spr_id = $vrednost['spr_id'];
$vprasanje_number = $vprasanja[$spr_id];
echo '
';
echo '
'.$pohvale_besedilo[$vprasanje_number].'
';
echo '
';
$i++;
}
// Izrisemo seznam vprasanj z izzivi
echo '
IZZIVI
';
$i = 1;
foreach($izzivi as $izziv_vrednost => $vrednost){
if($i > $max_odgovorov)
break;
$spr_id = $vrednost['spr_id'];
$vprasanje_number = $vprasanja[$spr_id];
echo '
';
echo '
'.$izzivi_besedilo[$vprasanje_number].'
';
echo '
';
$i++;
}
$this->displaySkavtiRadar();
}
// SKAVTI - prikaze graf pajkovo mrezo
private function displaySkavtiRadar(){
// Include knjiznice Chart.JS
echo '';
echo '';
// Priprava podatkov za radar
$radar_data = array();
$sqlB = sisplet_query("SELECT i.label, i.id
FROM srv_if i, srv_branching b
WHERE b.ank_id='".get('anketa')."' AND i.id=b.element_if
AND i.tip='1'
");
if (!$sqlB) echo mysqli_error($GLOBALS['connect_db']);
// Za graf rabimo vsaj 3 ogljisca
if(mysqli_num_rows($sqlB) < 3)
return;
// Loop cez bloke (stranica radarja)
while($rowB = mysqli_fetch_array($sqlB)){
// Dobimo vsa ustrezna vprasanja z odgovori v tem bloku
$sqlQ = sisplet_query("SELECT s.id AS spr_id, s.variable AS spr_variable, v.naslov, v.variable, vd.*
FROM srv_branching b, srv_spremenljivka s, srv_vrednost v, srv_data_vrednost_active vd
WHERE b.ank_id='".get('anketa')."' AND b.parent='".$rowB['id']."' AND b.element_spr=s.id
AND s.variable LIKE 'R%'
AND vd.usr_id='".get('usr_id')."' AND vd.spr_id=s.id
AND v.id=vd.vre_id
");
if (!$sqlQ) echo mysqli_error($GLOBALS['connect_db']);
// Loop cez vprasanja in odgovore v bloku
$count_answers_pohvale = 0;
$count_answers_izzivi = 0;
while($rowQ = mysqli_fetch_array($sqlQ)){
// Pohvala
if((int)$rowQ['variable'] >= 1 && (int)$rowQ['variable'] <= 200){
$count_answers_pohvale++;
}
// Izziv
elseif((int)$rowQ['variable'] >= 201 && (int)$rowQ['variable'] <= 400){
$count_answers_izzivi++;
}
}
$count_answers_all = (int)$count_answers_pohvale + (int)$count_answers_izzivi;
if($count_answers_all > 0){
$radar_data[$rowB['label']]['all'] = $count_answers_all;
$radar_data[$rowB['label']]['pohvale'] = $count_answers_pohvale;
$radar_data[$rowB['label']]['izzivi'] = $count_answers_izzivi;
}
}
//echo '
' . var_export($radar_data, true) . '
';
$labels = array();
$values = array();
$i = 0;
foreach($radar_data as $radar_label => $radar_values){
$labels[$i] = $radar_label;
$pohvale[$i] = $radar_values['pohvale'] / $radar_values['all'] * 10;
$izzivi[$i] = $radar_values['izzivi'] / $radar_values['all'] * 10;
$i++;
}
$json_labels = json_encode($labels);
$json_pohvale = json_encode($pohvale);
$json_izzivi = json_encode($izzivi);
echo '
Pajkova mreža
';
// Izris grafa
echo '
';
echo '';
echo '';
echo '
';
}
/**
* prikaze lepo obvestilo o napaki (anketa je zaključena itd...)
*
* @param mixed $text
*/
public function displayNapaka($text)
{
Header::getInstance()->header();
$anketa = get('anketa');
echo '
';
echo '
';
echo ' ';
echo '
';
$this->logo();
echo '
' . Helper::getInstance()->displayAkronim() . '
';
echo '
';
echo '
';
echo '
' . $text . '
';
echo '
';
echo '
'; // -grupa
echo '
'; // -container
Body::getInstance()->displayFooterNote();
echo '
'; // -outercontainer
echo '
'; // -outercontainer_holder
}
/**
* Prikaze zavihke za bloke, ce obstajajo
*
*/
public function display_tabs()
{
$sql = sisplet_query("SELECT * FROM srv_if i, srv_branching b WHERE i.tab='1' AND i.tip='1' AND i.id=b.element_if AND b.ank_id='" . get('anketa') . "' ORDER BY b.parent, b.vrstni_red");
if (mysqli_num_rows($sql) > 0) {
echo '
';
}
}
/**
* @desc konstruktor
*/
public function PrintSurvey()
{
if (isset($_GET['anketa'])) {
save('anketa', $_GET['anketa']);
$rowa = SurveyInfo::getInstance()->getSurveyRow();
// uvodni nagovor
if ($rowa['show_intro'] != 0) {
Body::getInstance()->displayIntroduction();
}
// prikažemo ankete
do {
save('grupa', Find::getInstance()->findNextGrupa());
Body::getInstance()->displayAnketa();
} while (get('grupa') != Find::getInstance()->findNextGrupa() && Find::getInstance()->findNextGrupa() > 0);
// prikažemo konec
Body::getInstance()->displayKonec();
} else
echo 'Ni podatkov o anketi!';
}
/**
* @desc prikaze chat okno za tawk chat, ce je modul vklopljen (js koda)
*/
public function displayChatTAWK(){
echo '
';
$sql = sisplet_query("SELECT code, chat_type FROM srv_chat_settings WHERE ank_id='".get('anketa')."'");
if(mysqli_num_rows($sql) > 0){
$row = mysqli_fetch_array($sql);
if($row['code'] != ''){
// JS koda za widget
echo $row['code'];
echo "";
}
}
echo '
';
}
}