From 75160b12821f7f4299cce7f0b69c83c1502ae071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Mon, 27 May 2024 13:08:29 +0200 Subject: 2024-02-19 upstream --- .../surveyAnalysis/class.SurveyAnalysis.php | 6447 +++++++++++--------- .../surveyAnalysis/class.SurveyAnalysisArchive.php | 570 +- .../surveyAnalysis/class.SurveyAnalysisHelper.php | 88 +- .../classes/surveyAnalysis/class.SurveyBreak.php | 783 ++- .../classes/surveyAnalysis/class.SurveyChart.php | 1125 ++-- .../surveyAnalysis/class.SurveyCrosstabs.php | 977 +-- .../surveyAnalysis/class.SurveyEditsAnalysis.php | 24 +- .../classes/surveyAnalysis/class.SurveyMeans.php | 368 +- .../surveyAnalysis/class.SurveyMultiCrosstabs.php | 363 +- .../classes/surveyAnalysis/class.SurveyTTest.php | 309 +- .../surveyAnalysis/class.SurveyTableChart.php | 229 +- 11 files changed, 5984 insertions(+), 5299 deletions(-) (limited to 'admin/survey/classes/surveyAnalysis') diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyAnalysis.php b/admin/survey/classes/surveyAnalysis/class.SurveyAnalysis.php index 16e8eea..870e4a9 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyAnalysis.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyAnalysis.php @@ -9,24 +9,27 @@ * " -> \x22 */ -define("EXPORT_FOLDER", "admin/survey/SurveyData"); + if (!defined('EXPORT_FOLDER')) define("EXPORT_FOLDER", "admin/survey/SurveyData"); -define('DATE_FORMAT', 'Y-m-d'); -define("ALLOW_HIDE_ZERRO_REGULAR", false); # omogočimo delovanje prikazovanja/skrivanja ničelnih vrednosti za navadne odgovore -define("ALLOW_HIDE_ZERRO_MISSING", true); # omogočimo delovanje prikazovanja/skrivanja ničelnih vrednosti za missinge -define("AUTO_HIDE_ZERRO_VALUE", 20); # nad koliko kategorij skrivamo ničelne vrednosti + if(!defined("DATE_FORMAT")) define('DATE_FORMAT', 'Y-m-d'); + if(!defined("ALLOW_HIDE_ZERRO_REGULAR")) define("ALLOW_HIDE_ZERRO_REGULAR", false); # omogočimo delovanje prikazovanja/skrivanja ničelnih vrednosti za navadne odgovore + if(!defined("ALLOW_HIDE_ZERRO_MISSING")) define("ALLOW_HIDE_ZERRO_MISSING", true); # omogočimo delovanje prikazovanja/skrivanja ničelnih vrednosti za missinge + if(!defined("AUTO_HIDE_ZERRO_VALUE")) define("AUTO_HIDE_ZERRO_VALUE", 20); # nad koliko kategorij skrivamo ničelne vrednosti # mejne vrednosti za barvanje residualov -define("RESIDUAL_COLOR_LIMIT1", 1.00); -define("RESIDUAL_COLOR_LIMIT2", 2.00); -define("RESIDUAL_COLOR_LIMIT3", 3.00); - - -DEFINE (STR_DLMT, '|'); -DEFINE (NEW_LINE, "\n"); -DEFINE (TMP_EXT, '.tmp'); -DEFINE (DAT_EXT, '.dat'); +if(!defined("RESIDUAL_COLOR_LIMIT1")) define("RESIDUAL_COLOR_LIMIT1", 1.00); +if(!defined("RESIDUAL_COLOR_LIMIT2")) define("RESIDUAL_COLOR_LIMIT2", 2.00); +if(!defined("RESIDUAL_COLOR_LIMIT3")) define("RESIDUAL_COLOR_LIMIT3", 3.00); + +if (!defined('STR_DLMT')) + define(STR_DLMT, '|'); +if (!defined('NEW_LINE')) + define (NEW_LINE, "\n"); +if (!defined('TMP_EXT')) + define (TMP_EXT, '.tmp'); +if (!defined('DAT_EXT')) + define (DAT_EXT, '.dat'); class SurveyAnalysis { @@ -187,7 +190,6 @@ class SurveyAnalysis { if ( self::$dataFileStatus == FILE_STATUS_NO_DATA || self::$dataFileStatus == FILE_STATUS_SRV_DELETED) { if (self::$podstran != M_ANALYSIS_ARCHIVE) Common::noDataAlert(); - return false; } @@ -196,9 +198,7 @@ class SurveyAnalysis { UserSetting :: getInstance()->Init($global_user_id); - if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) { - self::$db_table = '_active'; - } + self::$db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); # nastavimo vse filtre self::setUpFilter(); @@ -267,13 +267,14 @@ class SurveyAnalysis { $_zoom_condition = SurveyZoom::generateAwkCondition(); # ali imamo filter na testne podatke - #$filter_testdata = isset($_SESSION['testData'][self::$sid]['includeTestData']) && $_SESSION['testData'][self::$sid]['includeTestData'] == 'false'; + $filter_testdata = ''; if (isset(self::$_HEADERS['testdata']['grids'][0]['variables'][0]['sequence']) && (int)self::$_HEADERS['testdata']['grids'][0]['variables'][0]['sequence'] > 0) { $test_data_sequence = self::$_HEADERS['testdata']['grids'][0]['variables'][0]['sequence']; $filter_testdata = SurveyStatusProfiles :: getStatusTestAsAWKString($test_data_sequence); } # ali imamo filter na uporabnost + $filter_usability = ''; if (isset(self::$_HEADERS['usability']['variables'][0]['sequence']) && (int)self::$_HEADERS['usability']['variables'][0]['sequence'] > 0) { $usability_data_sequence = self::$_HEADERS['usability']['variables'][0]['sequence']; $filter_usability = SurveyStatusProfiles :: getStatusUsableAsAWKString($usability_data_sequence); @@ -283,8 +284,9 @@ class SurveyAnalysis { || ($_inspect_condition_awk != "" && $_inspect_condition_awk != null) || ($_time_profile_awk != "" && $_time_profile_awk != null) || ($_zoom_condition != "" && $_zoom_condition != null) - || ($filter_testdata != null) - || ($filter_usability != null)) { + || ($filter_testdata != '') + || ($filter_usability != '')) { + self::$_CURRENT_STATUS_FILTER = '('.self::$_CURRENT_STATUS_FILTER; if ($_condition_profile_AWK != "" && $_condition_profile_AWK != null ) { @@ -305,12 +307,6 @@ class SurveyAnalysis { if ($filter_testdata != null ) { self::$_CURRENT_STATUS_FILTER .= '&&('.$filter_testdata.')'; - /* - $test_data_sequence = self::$_HEADERS['testdata']['grids'][0]['variables'][0]['sequence']; - if ((int)$test_data_sequence > 0) { - self::$_CURRENT_STATUS_FILTER .= '&&($'.$filter_testdata.')'; - } - */ } if ($filter_usability != null ) { @@ -446,19 +442,18 @@ class SurveyAnalysis { } - if (self::$dataFileStatus == FILE_STATUS_OLD && self::$podstran != M_ANALYSIS_ARCHIVE) { - echo "Posodobljeno: ".date("d.m.Y, H:i:s", strtotime(self::$dataFileUpdated)); - } - # krostabe naredimo if(self::$podstran == M_ANALYSIS_CROSSTAB ) { self::$crossTabClass->Display(); - } else { + } + else { # polovimo nastavtve missing profila self::$missingProfileData = SurveyMissingProfiles::getProfile(self::$currentMissingProfile); + if (self::$podstran != M_ANALYSIS_ARCHIVE) { self::$_LOOPS = SurveyZankaProfiles::getFiltersForLoops(); } + if (!is_countable(self::$_LOOPS) || count(self::$_LOOPS) == 0) { # če nimamo zank @@ -480,18 +475,21 @@ class SurveyAnalysis { self::$podstran = M_ANALYSIS_SUMMARY; self::Display(); break; + } } - } else { + else { $loop_cnt = 0; + # če mamo zanke - foreach ( self::$_LOOPS AS $loop) - { + foreach ( self::$_LOOPS AS $loop){ + $loop_cnt++; $loop['cnt'] = $loop_cnt; self::$_CURRENT_LOOP = $loop; - echo '

'.$lang['srv_zanka_note'].$loop['text'].'

'; - switch (self::$podstran) - { + + echo '

'.$lang['srv_zanka_note'].$loop['text'].'

'; + + switch (self::$podstran){ case M_ANALYSIS_SUMMARY : self::displaySums(); break; @@ -508,8 +506,7 @@ class SurveyAnalysis { self::$podstran = M_ANALYSIS_SUMMARY; self::Display(); break; - } - + } } } @@ -536,107 +533,122 @@ class SurveyAnalysis { #preberemo HEADERS iz datoteke self::$_HEADERS = unserialize(file_get_contents(self::$headFileName)); - # odstranimo sistemske variable tipa email, ime, priimek, geslo - self::removeSystemVariables(); + # odstranimo sistemske variable tipa email, ime, priimek, geslo + self::removeSystemVariables(); - # polovimo frekvence - self::getDescriptives(); + # polovimo frekvence + self::getDescriptives(); - # izpišemo opisne statistike - $vars_count = count(self::$_FILTRED_VARIABLES); - $line_break = ''; + # izpišemo opisne statistike + $vars_count = count(self::$_FILTRED_VARIABLES); + $line_break = ''; - # dodamo še kontrolo če kličemo iz displaySingleVar - if (isset($_spid) && $_spid !== null) { - self::$_HEADERS = array($_spid => self::$_HEADERS[$_spid]); - } - - # ali prikazujemo spremenljivke brez veljavnih odgovorov - $show_spid = array(); - foreach (self::$_HEADERS AS $spid => $spremenljivka) { - # preverjamo ali je meta - if ($spremenljivka['tip'] != 'm' - && ( count(self::$_FILTRED_VARIABLES) == 0 || (count(self::$_FILTRED_VARIABLES) > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) )) - && in_array($spremenljivka['tip'], self::$_FILTRED_TYPES) ){ - $only_valid = 0; + # dodamo še kontrolo če kličemo iz displaySingleVar + if (isset(self::$_HEADERS[$_spid]) && isset($_spid) && $_spid !== null) { + self::$_HEADERS = array($_spid => self::$_HEADERS[$_spid]); + } + + # ali prikazujemo spremenljivke brez veljavnih odgovorov + $show_spid = array(); + foreach (self::$_HEADERS AS $spid => $spremenljivka) { + # preverjamo ali je meta + if (isset($spremenljivka['tip']) && $spremenljivka['tip'] != 'm' + && ( count(self::$_FILTRED_VARIABLES) == 0 || (count(self::$_FILTRED_VARIABLES) > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) )) + && in_array($spremenljivka['tip'], self::$_FILTRED_TYPES) ){ + $only_valid = 0; + + $show_enota = false; + # preverimo ali imamo samo eno variablo in če iammo enoto + if (isset($spremenljivka['enota']) && (int)$spremenljivka['enota'] != 0 || $spremenljivka['cnt_all'] > 1 ) { + $show_enota = true; + } - $show_enota = false; - # preverimo ali imamo samo eno variablo in če iammo enoto - if ((int)$spremenljivka['enota'] != 0 || $spremenljivka['cnt_all'] > 1 ) { - $show_enota = true; - } + # izpišemo glavno vrstico z podatki + $_sequence = null; + # za enodimenzijske tipe izpišemo podatke kar v osnovni vrstici + if (!$show_enota) { + $variable = $spremenljivka['grids'][0]['variables'][0]; + $_sequence = $variable['sequence']; # id kolone z podatki + $only_valid += (int)(isset(self::$_DESCRIPTIVES[$_sequence]['validCnt'])?self::$_DESCRIPTIVES[$_sequence]['validCnt']:0); + } else { + if ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3) { + $variable = $spremenljivka['grids'][0]['variables'][0]; + $_sequence = $variable['sequence']; # id kolone z podatki + $show_enota = false; + } + #zloopamo skozi variable + $_sequence = null; + $grd_cnt=0; + if (count($spremenljivka['grids']) > 0) + foreach ($spremenljivka['grids'] AS $gid => $grid) { + + # dodamo dodatne vrstice z albelami grida + if (count ($grid['variables']) > 0) + foreach ($grid['variables'] AS $vid => $variable ){ + # dodamo ostale vrstice + $do_show = ($variable['other'] !=1 && ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3 || $spremenljivka['tip'] == 5 || $spremenljivka['tip'] == 8 )) + ? false + : true; + if ($do_show) { + $only_valid += (int)(isset(self::$_DESCRIPTIVES[$variable['sequence']]['validCnt'])?self::$_DESCRIPTIVES[$variable['sequence']]['validCnt']:0); + } + } + } + } //else: if (!$show_enota) + + if (SurveyDataSettingProfiles :: getSetting('hideEmpty') == 1 && $only_valid == 0 && self::$_forceShowEmpty == false) { + $show_spid[$spid] = false; + } else { + $show_spid[$spid] = true; + } - # izpišemo glavno vrstico z podatki - $_sequence = null; - # za enodimenzijske tipe izpišemo podatke kar v osnovni vrstici - if (!$show_enota) { - $variable = $spremenljivka['grids'][0]['variables'][0]; - $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_DESCRIPTIVES[$_sequence]['validCnt']; - } else { - if ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3) { - $variable = $spremenljivka['grids'][0]['variables'][0]; - $_sequence = $variable['sequence']; # id kolone z podatki - $show_enota = false; - } - #zloopamo skozi variable - $_sequence = null; - $grd_cnt=0; - if (count($spremenljivka['grids']) > 0) - foreach ($spremenljivka['grids'] AS $gid => $grid) { - - # dodamo dodatne vrstice z albelami grida - if (count ($grid['variables']) > 0) - foreach ($grid['variables'] AS $vid => $variable ){ - # dodamo ostale vrstice - $do_show = ($variable['other'] !=1 && ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3 || $spremenljivka['tip'] == 5 || $spremenljivka['tip'] == 8 )) - ? false - : true; - if ($do_show) { - $only_valid += (int)self::$_DESCRIPTIVES[$variable['sequence']]['validCnt']; - } - } - } - } //else: if (!$show_enota) + } + } - if (SurveyDataSettingProfiles :: getSetting('hideEmpty') == 1 && $only_valid == 0 && self::$_forceShowEmpty == false) { - $show_spid[$spid] = false; - } else { - $show_spid[$spid] = true; - } + if (self :: $show_spid_div == true) { + echo '
'; + + // Ce kličemo iz displaySingleVar za samo eno spremenljivko + if (isset($_spid) && $_spid !== null) { + self::displaySpremenljivkaIcons($_spid); + } } - } - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + + echo '
 '.'' . $lang['srv_analiza_opisne_variable'] .''.'' . $lang['srv_analiza_opisne_variable_text'] .''.'
'; + + echo ''; + + echo ''; + echo ''; + echo ''; if (self::$_SHOW_LEGENDA) { - echo ''; - echo ''; - echo ''; - } - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; + } + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + foreach (self::$_HEADERS AS $spid => $spremenljivka) { # dajemo v bufer, da da ne prikazujemo vprašanj brez veljavnih odgovorov če imamo tako nastavljeno # preverjamo ali je meta - if ($show_spid[$spid] && $spremenljivka['tip'] != 'm' + if (isset($show_spid[$spid]) && $spremenljivka['tip'] != 'm' && ( count(self::$_FILTRED_VARIABLES) == 0 || (count(self::$_FILTRED_VARIABLES) > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) )) && in_array($spremenljivka['tip'], self::$_FILTRED_TYPES) ){ $show_enota = false; # preverimo ali imamo samo eno variablo in če iammo enoto - if ((int)$spremenljivka['enota'] != 0 || $spremenljivka['cnt_all'] > 1 ) { + if (isset($spremenljivka['enota']) && (int)$spremenljivka['enota'] != 0 || $spremenljivka['cnt_all'] > 1 ) { $show_enota = true; } @@ -677,7 +689,7 @@ class SurveyAnalysis { : true; if ($do_show) { $variable['var_cnt'] = $var_cnt; - self::displayDescriptivesVariablaRow($spremenljivka,$grid,$variable,$_css); + self::displayDescriptivesVariablaRow($spremenljivka,$grid,$variable,null); } $grid['new_grid'] = false; @@ -687,10 +699,16 @@ class SurveyAnalysis { } //else: if (!$show_enota) } // end if $spremenljivka['tip'] != 'm' } // end foreach self::$_HEADERS + echo '
' . $lang['srv_analiza_opisne_variable'] .''.'' . $lang['srv_analiza_opisne_variable_text'] .''.'' . $lang['srv_analiza_opisne_variable_type'] .''.'' . $lang['srv_analiza_opisne_variable_expression'] .''.'' . $lang['srv_analiza_opisne_variable_skala'] .''.'' . $lang['srv_analiza_opisne_m'] .''.'' . $lang['srv_analiza_num_units'] .''.'' . $lang['srv_analiza_opisne_povprecje_odstotek'] .''.'' . $lang['srv_analiza_opisne_odklon'] .''.'' . $lang['srv_analiza_opisne_min'] .''.'' . $lang['srv_analiza_opisne_max'] .''.'' . $lang['srv_analiza_opisne_variable_type'] .''.'' . $lang['srv_analiza_opisne_variable_expression'] .''.'' . $lang['srv_analiza_opisne_variable_skala'] .''.'' . $lang['srv_analiza_opisne_m'] .''.'' . $lang['srv_analiza_num_units'] .''.'' . $lang['srv_analiza_opisne_povprecje_odstotek'] .''.'' . $lang['srv_analiza_opisne_odklon'] .''.'' . $lang['srv_analiza_opisne_min'] .''.'' . $lang['srv_analiza_opisne_max'] .''.'
'; + + if (self :: $show_spid_div == true) { + echo '
'; // id="sum_'.$keyGrupe.'">'; + } + // Izrisemo ikone na dnu - if ( (!isset($_spid) || $_spid == null) && (count(self::$_LOOPS) == 0 || self::$_CURRENT_LOOP['cnt'] == count(self::$_LOOPS)) && ($_GET['m'] != 'analysis_creport') ) + if ( (!isset($_spid) || $_spid == null) && (!is_countable(self::$_LOOPS) || count(self::$_LOOPS) == 0 || self::$_CURRENT_LOOP['cnt'] == count(self::$_LOOPS)) && ($_GET['m'] != 'analysis_creport') ) self::displayBottomSettings('desc'); } // end if else ($_headFileName == null) @@ -707,8 +725,10 @@ class SurveyAnalysis { $cssBack = $variable['other'] != 1 ? ' anl_bck_desc_2' : ' anl_bck_desc_3'; $cssMove = $variable['other'] != 1 ? ' anl_tin' : ' anl_tin1'; - $cssBack .= (int)$grid['new_grid'] == 1 ? ' anl_bt ' : ' anl_bt_dot '; + $cssBack .= (isset($grid['new_grid']) && (int)$grid['new_grid'] == 1) ? ' anl_bt ' : ' anl_bt_dot '; + $_sequence = $variable['sequence']; # id kolone z podatki + if ($_sequence != null) { $_desc = self::$_DESCRIPTIVES[$_sequence]; } @@ -716,43 +736,38 @@ class SurveyAnalysis { # pokličemo objekt SpremenljivkaSkala $objectSkala = new SpremenljivkaSkala($spremenljivka['spr_id']); + # če smo na začetku grida dodamo podatke podvprašanja if ($variable['var_cnt'] == 0 && in_array($spremenljivka['tip'],array(16,19,20) ) ) { - echo ''; - echo ' '; - echo ''; + echo ''; + + echo ''; + + echo ''; echo $grid['variable']; echo ''; - echo ''; + + echo ''; echo $grid['naslov']; echo ''; - /* - if (self::$_SHOW_LEGENDA) { - echo ' '; - echo ' '; - echo ' '; - } - echo ' '; - echo ' '; - echo ' '; - echo ' '; - echo ' '; - echo ' '; - */ + echo ''; } - echo ''; - echo ''; - echo ' '; - echo ''; - echo ''; + + + echo ''; + + echo ''; + + echo ''; echo $variable['variable']; echo ''; - echo ''; - //echo $grid['naslov'] . ' - ' .$variable['naslov']; + + echo ''; echo $variable['naslov']; - echo ($spremenljivka['enota'] == 1) ? ' - '.$variable['naslov2'] : ''; + echo (isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1) ? ' - '.(isset($variable['naslov2'])?$variable['naslov2']:'') : ''; echo ''; + if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); @@ -761,35 +776,40 @@ class SurveyAnalysis { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''.' '.''; - echo ''.$_tip.''; - echo '' .$_oblika. ''; + + echo ''.' '.''; + echo ''.$_tip.''; + echo '' .$_oblika. ''; } + #veljavno - echo ''.(int)$_desc['validCnt'].''; + echo ''.(int)(isset($_desc['validCnt'])?$_desc['validCnt']:0).''; #ustrezno - echo ''.(int)$_desc['allCnt'].''; - echo ''; - - + echo ''.(int)(isset($_desc['allCnt'])?$_desc['allCnt']:0).''; + + echo ''; if ( isset($_desc['avg']) && (int)$objectSkala->getSkala() !== 1 ) { echo self::formatNumber($_desc['avg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); } else if (isset($_desc['avg']) && $spremenljivka['tip'] == 2 && (int)$objectSkala->getSkala() == 1 ) { - echo self::formatNumber($_desc['avg']*100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),' %'); + echo self::formatNumber($_desc['avg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + //echo self::formatNumber($_desc['avg']*100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),' %'); } echo ''; - echo ''; + + echo ''; if (isset($_desc['div']) && (int)$objectSkala->getSkala() !== 1) { echo self::formatNumber($_desc['div'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''); } echo ''; - echo ''.((int)$objectSkala->getSkala() !== 1 ? $_desc['min'] : '').''; - echo ''.((int)$objectSkala->getSkala() !== 1 ? $_desc['max'] : '').''; - echo ''; + echo ''.((int)$objectSkala->getSkala() !== 1 ? $_desc['min'] : '').''; + echo ''.((int)$objectSkala->getSkala() !== 1 ? $_desc['max'] : '').''; + + echo ''; } + /** Izriše vrstico z opisnimi * * @param unknown_type $spremenljivka @@ -797,129 +817,155 @@ class SurveyAnalysis { */ static function displayDescriptivesSpremenljivkaRow($spid,$spremenljivka,$show_enota,$_sequence = null) { global $lang; + $cssBack = " anl_bck_desc_1"; + + $_desc=array(); if ($_sequence != null) { $_desc = self::$_DESCRIPTIVES[$_sequence]; } # pokličemo objekt SpremenljivkaSkala $objectSkala = new SpremenljivkaSkala($spremenljivka['spr_id']); + - echo ''; - echo ''; - self::showIcons($spid,$spremenljivka,'desc'); + + echo ''; + + + echo ''; + echo ' '; + echo '
'; + self::showIcons($spid, $spremenljivka, 'desc'); + echo '
'; echo ''; - echo ''; + + + echo ''; self::showVariable($spid,$spremenljivka['variable']); echo ''; - echo ''; + + echo ''; echo ($spremenljivka['naslov']) . ''; + if (self::$_SHOW_LEGENDA) { - if ($variable['other'] != '1' && $variable['text'] != '1') { + if ((isset($variable['other'])?$variable['other']:null) != '1' && (isset($variable['text'])?$variable['text']:null) != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); } else { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''. - self::getSpremenljivkaLegenda($spremenljivka,'tip') - .''; - echo ''.(!$show_enota ? $_tip : ' ').''; - echo ''.(!$show_enota ? $_oblika : ' '). ''; + echo ''.self::getSpremenljivkaLegenda($spremenljivka,'tip').''; + echo ''.(!$show_enota ? $_tip : ' ').''; + echo ''.(!$show_enota ? $_oblika : ' '). ''; } + #veljavno - echo ''.(!$show_enota ? (int)$_desc['validCnt'] : ' ') .''; + echo ''.(!$show_enota ? (int)(isset($_desc['validCnt'])?$_desc['validCnt']:0) : ' ') .''; + #ustrezno - echo ''.(!$show_enota ? (int)$_desc['allCnt'] : ' ').''; + echo ''.(!$show_enota ? (int)(isset($_desc['allCnt'])?$_desc['allCnt']:0) : ' ').''; - echo ''; + echo ''; if (isset($_desc['avg']) && (int)$objectSkala->getSkala() !== 1) { echo self::formatNumber($_desc['avg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); } echo ''; - echo ''; + + echo ''; if (isset($_desc['div']) && (int)$objectSkala->getSkala() !== 1) { echo self::formatNumber($_desc['div'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''); } echo ''; - echo ''.((int)$objectSkala->getSkala() !== 1 ? $_desc['min'] : '').''; - echo ''.((int)$objectSkala->getSkala() !== 1 ? $_desc['max'] : '').''; - echo ''; + echo ''.((isset($_desc['min'])&&(int)$objectSkala->getSkala() !== 1) ? $_desc['min'] : '').''; + + echo ''.((isset($_desc['max'])&&(int)$objectSkala->getSkala() !== 1) ? $_desc['max'] : '').''; + echo ''; } + /** Izrišemo fekvence * */ static function displayFrequency($_spid = null) { global $site_path, $lang; + # preberemo header if (self::$headFileName !== null ) { + #preberemo HEADERS iz datoteke self::$_HEADERS = unserialize(file_get_contents(self::$headFileName)); - # odstranimo sistemske variable tipa email, ime, priimek, geslo - self::removeSystemVariables(); - - # polovimo frekvence - self::getFrequencys(); - $vars_count = count(self::$_FILTRED_VARIABLES); - $line_break = ''; - foreach (self::$_HEADERS AS $spid => $spremenljivka) { - # preverjamo ali je meta - if (($spremenljivka['tip'] != 'm' - && in_array($spremenljivka['tip'], self::$_FILTRED_TYPES )) - && (!isset($_spid) || (isset($_spid) && $_spid == $spid))) { - # ali imamo sfiltrirano spremenljivko - if ($vars_count == 0 || ($vars_count > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) ) ) { - # prikazujemo v odvisnosti od kategorije spremenljivke - switch ($spremenljivka['tip']) { - case 1: # radio - prikjaže navpično - case 2: #checkbox če je dihotomna: - case 3: # dropdown - prikjaže navpično - case 6: # multigrid - case 4: # text - case 7:# variabla tipa »število« - case 8: # datum - case 16: #multicheckbox če je dihotomna: - case 17: #razvrščanje če je ordinalna - case 18: # vsota - case 19: # multitext - case 20: # multi number - case 21: # besedilo* - case 22: # kalkulacija - case 25: # kvota - case 26: # lokacija - self::frequencyVertical($spid); - break; - case 5: - # nagovor - self::sumNagovor($spid,'freq'); - break; - - } + # odstranimo sistemske variable tipa email, ime, priimek, geslo + self::removeSystemVariables(); + + # polovimo frekvence + self::getFrequencys(); - } + $vars_count = count(self::$_FILTRED_VARIABLES); + $line_break = ''; + + foreach (self::$_HEADERS AS $spid => $spremenljivka) { - } // end if $spremenljivka['tip'] != 'm' - } // end foreach self::$_HEADERS + # preverjamo ali je meta + if ((isset($spremenljivka['tip']) && $spremenljivka['tip'] != 'm' + && in_array($spremenljivka['tip'], self::$_FILTRED_TYPES )) + && (!isset($_spid) || (isset($_spid) && $_spid == $spid))) { - // Izrisemo ikone na dnu - if ( (!isset($_spid) || $_spid == null) && (count(self::$_LOOPS) == 0 || self::$_CURRENT_LOOP['cnt'] == count(self::$_LOOPS)) && ($_GET['m'] != 'analysis_creport') ) - self::displayBottomSettings('freq'); + # ali imamo sfiltrirano spremenljivko + if ($vars_count == 0 || ($vars_count > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) ) ) { + + # prikazujemo v odvisnosti od kategorije spremenljivke + switch ($spremenljivka['tip']) { + + case 1: # radio - prikjaže navpično + case 2: #checkbox če je dihotomna: + case 3: # dropdown - prikjaže navpično + case 6: # multigrid + case 4: # text + case 7:# variabla tipa »število« + case 8: # datum + case 16: #multicheckbox če je dihotomna: + case 17: #razvrščanje če je ordinalna + case 18: # vsota + case 19: # multitext + case 20: # multi number + case 21: # besedilo* + case 22: # kalkulacija + case 25: # kvota + case 26: # lokacija + self::frequencyVertical($spid); + break; + + case 5: + # nagovor + self::sumNagovor($spid,'freq'); + break; + } + } + + } // end if $spremenljivka['tip'] != 'm' + + } // end foreach self::$_HEADERS + + // Izrisemo ikone na dnu + if ( (!isset($_spid) || $_spid == null) && (count(self::$_LOOPS) == 0 || self::$_CURRENT_LOOP['cnt'] == count(self::$_LOOPS)) && ($_GET['m'] != 'analysis_creport') ) + self::displayBottomSettings('freq'); } // end if else ($_headFileName == null) } - /** Izriše frekvence v vertikalni obliki - * - * @param unknown_type $spid - */ + /** Izriše frekvence v vertikalni obliki + * + * @param unknown_type $spid + */ static function frequencyVertical($spid) { global $lang; $spremenljivka = self::$_HEADERS[$spid]; + $gidsCanShow = array(); # preverimo ali prikazujemo spremenljivko, glede na veljavne odgovore in nastavitev $only_valid = 0; @@ -929,7 +975,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -956,7 +1004,7 @@ class SurveyAnalysis { } } } - if (self::$hideEmptyValue == true || (is_countable(self::$_FREQUENCYS[$_sequence]['valid']) && count(self::$_FREQUENCYS[$_sequence]['valid']) > AUTO_HIDE_ZERRO_VALUE)) { + if (self::$hideEmptyValue == true || (isset(self::$_FREQUENCYS[$_sequence]['valid']) && is_countable(self::$_FREQUENCYS[$_sequence]['valid']) && count(self::$_FREQUENCYS[$_sequence]['valid']) > AUTO_HIDE_ZERRO_VALUE)) { foreach (self::$_FREQUENCYS[$_sequence]['valid'] AS $key => $valid) { if ((int)$valid['cnt'] == 0) { unset (self::$_FREQUENCYS[$_sequence]['valid'][$key]); @@ -973,19 +1021,24 @@ class SurveyAnalysis { # koliko zapisov prikažemo naenkrat $num_show_records = self::getNumRecords(); - echo '
'; - self::displaySpremenljivkaIcons($spid); + echo '
'; + + self::displaySpremenljivkaIcons($spid); + # tekst vprašanja - echo ''; + echo '
'; + # naslovna vrstica - echo ''; + echo ''; + #variabla - echo ''; + #odgovori - echo ''; + echo ''; - echo ''; + + + echo ''; + #variabla - echo ''; + + #odgovori + echo ''; - echo ''; if (self::$_SHOW_LEGENDA && $inline_legenda){ - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + + echo ''; + echo ''; if (self::$_HEADERS[$spid]['show_valid_percent'] == true) { - echo ''; + echo ''; } - echo ''; + echo ''; + echo ''; // konec naslovne vrstice + + // zeleno vrstico prikažemo samo skupaj z legendo - if (self::$_SHOW_LEGENDA && $inline_legenda && in_array($spremenljivka['tip'],array(1,4,8)) ) { - $css_bck = 'anl_bck_0_0 '; - echo ''; - echo ''; - echo ''; - - echo ''; - echo ''; - echo ''; - echo ''; + if (self::$_SHOW_LEGENDA && $inline_legenda && in_array($spremenljivka['tip'], array(1,4,8)) ) { + + echo ''; + + echo ''; + echo ''; + + echo ''; + echo ''; + + echo ''; + echo ''; if (self::$_HEADERS[$spid]['show_valid_percent'] == true) { - echo ''; + echo ''; } - echo ''; + echo ''; + echo ''; } + + $_answersOther = array(); # dodamo opcijo kje izrisujemo legendo - $options=array('inline_legenda' => $inline_legenda, 'isTextAnswer' => false, 'isOtherAnswer' => false, 'num_show_records' => $num_show_records); + $options = array( + 'inline_legenda' => $inline_legenda, + 'isTextAnswer' => false, + 'isOtherAnswer' => false, + 'num_show_records' => $num_show_records + ); # izpišemo vlejavne odgovore $_current_grid = null; - if (count($spremenljivka['grids']) > 0) + if (count($spremenljivka['grids']) > 0){ + foreach ($spremenljivka['grids'] AS $gid => $grid) { - $_variables_count = count($grid['variables']); - - # indikator da smo na prvi variabli - $first_variable = true; - - # dodamo še kontrolo za prikaz mgridov in mcheckov za več kot 20 vrednosti - if ((!is_array($gidsCanShow) && !isset($gidsCanShow[$gid])) - || (is_array($gidsCanShow) && isset($gidsCanShow[$gid]) && $gidsCanShow[$gid]== true)) - # dodamo dodatne vrstice z albelami grida - if ($_variables_count > 0 ) - foreach ($grid['variables'] AS $vid => $variable ){ - $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; - - if (($variable['text'] != true && $variable['other'] != true) - || (in_array($spremenljivka['tip'],array(4,8,21,22,25,26,27)))){ - # dodamo ime podvariable - //if ($_variables_count > 1 && in_array($spremenljivka['tip'],array(2,6,7,16,17,18,19,20,21))) { - if ($inline_legenda) { - # ali rišemo dvojno črto med grupami - if ( $_current_grid != $gid && $_current_grid !== null && $spremenljivka['tip'] != 6&& $spremenljivka['tip'] != 16) { - $options['doubleTop'] = true; - } else { - $options['doubleTop'] = false; - } - if ($first_variable == true && $spremenljivka['tip'] == 16) { - if ($_current_grid !== null) { - $options['doubleTop'] = true; - } - self::outputSubGridVertical($spremenljivka,$variable,$grid,$spid,$options); - $options['doubleTop'] = false; - } - $_current_grid = $gid; - self::outputSubVariablaVertical($spremenljivka,$variable,$grid,$spid,$options); - } - $counter = 0; - $_kumulativa = 0; - - - #po potrebi posortiramo podatke - if ($spremenljivka['tip'] == 7 && is_array(self::$_FREQUENCYS[$_sequence]['valid'])) { - ksort(self::$_FREQUENCYS[$_sequence]['valid']); - } - //self::$_FREQUENCYS[$_sequence] - if (count(self::$_FREQUENCYS[$_sequence]['valid'])> 0 ) { - # tekstovne odgovore posortiramo kronološko - if ($spremenljivka['tip'] == 21 || $spremenljivka['tip'] == 4) { - $_valid_answers = self :: sortTextValidAnswers($spid,$variable,self::$_FREQUENCYS[$_sequence]['valid']); - } else { - $_valid_answers = self::$_FREQUENCYS[$_sequence]['valid']; - } - foreach ($_valid_answers AS $vkey => $vAnswer) { - if ($counter < $num_show_records) { - if ($vAnswer['cnt'] > 0 || true) { # izpisujemo samo tiste ki nisno 0 - if (in_array($spremenljivka['tip'],array(4,7,8,19,20,21,26,27))) { // text, number, datum, mtext, mnumber, text*, lokacija,heatmap - $options['isTextAnswer'] = true; - } else { - $options['isTextAnswer'] = false; - } - $counter = self::outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,$_kumulativa,$options); - } - } - } - # izpišemo sumo veljavnih - $counter = self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,$options); - } - if (count(self::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) { - foreach (self::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) { - if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0 - $counter = self::outputInvalidAnswerVertical($counter,$ikey,$iAnswer,$_sequence,$spid,$options); - } - } - # izpišemo sumo veljavnih - $counter = self::outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,$options); - } - #izpišemo še skupno sumo - $counter = self::outputSumaVertical($counter,$_sequence,$spid,$options); - } else { - $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); - } - $first_variable = false; - } - } + $_variables_count = count($grid['variables']); + + # indikator da smo na prvi variabli + $first_variable = true; + + # dodamo še kontrolo za prikaz mgridov in mcheckov za več kot 20 vrednosti + if (!isset($gidsCanShow[$gid]) || (is_array($gidsCanShow) && isset($gidsCanShow[$gid]) && $gidsCanShow[$gid]== true)){ + + # dodamo dodatne vrstice z albelami grida + if ($_variables_count > 0 ){ + foreach ($grid['variables'] AS $vid => $variable ){ + + $_sequence = $variable['sequence']; # id kolone z podatki + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if (($variable['text'] != true && $variable['other'] != true) + || (in_array($spremenljivka['tip'],array(4,8,21,22,25,26,27)))){ + + # dodamo ime podvariable + if ($inline_legenda) { + + # ali rišemo dvojno črto med grupami + if ( $_current_grid != $gid && $_current_grid !== null && $spremenljivka['tip'] != 6&& $spremenljivka['tip'] != 16) { + $options['doubleTop'] = true; + } + else { + $options['doubleTop'] = false; + } + + if ($first_variable == true && $spremenljivka['tip'] == 16) { + if ($_current_grid !== null) { + $options['doubleTop'] = true; + } + + self::outputSubGridVertical($spremenljivka,$variable,$grid,$spid,$options); + $options['doubleTop'] = false; + } + + $_current_grid = $gid; + self::outputSubVariablaVertical($spremenljivka,$variable,$grid,$spid,$options); + } + + $counter = 0; + $_kumulativa = 0; + + + # po potrebi posortiramo podatke + if ($spremenljivka['tip'] == 7 && is_array(self::$_FREQUENCYS[$_sequence]['valid'])) { + ksort(self::$_FREQUENCYS[$_sequence]['valid']); + } + + if (is_countable(isset(self::$_FREQUENCYS[$_sequence]['valid'])?self::$_FREQUENCYS[$_sequence]['valid']:0) && count(isset(self::$_FREQUENCYS[$_sequence]['valid'])?self::$_FREQUENCYS[$_sequence]['valid']:0)> 0 ) { + # tekstovne odgovore posortiramo kronološko + if ($spremenljivka['tip'] == 21 || $spremenljivka['tip'] == 4) { + $_valid_answers = self :: sortTextValidAnswers($spid,$variable,self::$_FREQUENCYS[$_sequence]['valid']); + } + else { + $_valid_answers = self::$_FREQUENCYS[$_sequence]['valid']; + } + + foreach ($_valid_answers AS $vkey => $vAnswer) { + if ($counter < $num_show_records) { + if ($vAnswer['cnt'] > 0 || true) { # izpisujemo samo tiste ki nisno 0 + if (in_array($spremenljivka['tip'],array(4,7,8,19,20,21,26,27))) { // text, number, datum, mtext, mnumber, text*, lokacija,heatmap + $options['isTextAnswer'] = true; + } else { + $options['isTextAnswer'] = false; + } + $counter = self::outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,$_kumulativa,$options); + } + } + } + + # izpišemo sumo veljavnih + $counter = self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,$options); + } + if (count(self::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) { + foreach (self::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) { + if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0 + $counter = self::outputInvalidAnswerVertical($counter,$ikey,$iAnswer,$_sequence,$spid,$options); + } + } + # izpišemo sumo veljavnih + $counter = self::outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,$options); + } + #izpišemo še skupno sumo + $counter = self::outputSumaVertical($counter,$_sequence,$spid,$options); + } + else { + $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); + } + + $first_variable = false; + } + } + } + } + } echo '
'; + echo ''; self::showVariable($spid,$spremenljivka['variable']); echo ''.$spremenljivka['naslov'].''; + echo ''.$spremenljivka['naslov'].''; if($spremenljivka['tip'] == 2){ echo ' ('.$lang['srv_info_checkbox'].')'; } @@ -1004,137 +1057,178 @@ class SurveyAnalysis { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo'
'; + echo ''; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,'freq'); + echo '
'; echo '
'.$lang['srv_analiza_frekvence_titleAnswers'] . ''.$lang['srv_analiza_frekvence_titleAnswers'] . ''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''. $lang['srv_analiza_frekvence_titleFrekvenca'] .''. $lang['srv_analiza_frekvence_titleOdstotek'] .''. $lang['srv_analiza_frekvence_titleFrekvenca'] .''. $lang['srv_analiza_frekvence_titleOdstotek'] .''. $lang['srv_analiza_frekvence_titleVeljavni'] .''. $lang['srv_analiza_frekvence_titleVeljavni'] .''. $lang['srv_analiza_frekvence_titleKumulativa'] .''. $lang['srv_analiza_frekvence_titleKumulativa'] .'
 '.$_tip.''.$_oblika.'  
  '.$_tip.''.$_oblika.'      
'; @@ -1147,73 +1241,85 @@ class SurveyAnalysis { } } echo '
'; - echo '
'; } static function outputSubGridVertical($spremenljivka,$variable,$grid,$spid,$_options = array()) { global $lang; + # opcije - $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor + $options = array( + 'isTextAnswer' => false, # ali je tekstovni odgovor 'isOtherAnswer' => false, # ali je odgovor Drugo 'inline_legenda' => true, # ali je legenda inline ali v headerju 'doubleTop' =>false, # ali imamo novo grupa in nardimo dvojni rob ); + foreach ($_options as $_oKey => $_option) { $options[$_oKey] = $_option; } - $css_bck = 'anl_bck_freq_2 '; - echo ''; - echo ''; + echo ''; + + echo ''; echo $grid['variable']; - #echo $variable['variable']; echo ''; - echo ''; - // echo $grid['naslov'] . ' - ' .$variable['naslov']; + + echo ''; echo $grid['naslov']; - #echo $variable['naslov']; echo ''; + if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true) { - if ($variable['other'] != '1' && $variable['text'] != '1') { + + if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - } else { + } + else { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''.$_tip.''; - echo ''.$_oblika.''; + + echo ''.$_tip.''; + echo ''.$_oblika.''; } - echo ' '; - echo ' '; + + echo ' '; + echo ' '; if (self::$_HEADERS[$spid]['show_valid_percent'] == true) { - echo ' '; + echo ' '; } - echo ' '; + echo ' '; + echo ''; } + static function outputSubVariablaVertical($spremenljivka,$variable,$grid,$spid,$_options = array()) { global $lang; + # opcije - $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor + $options = array( + 'isTextAnswer' => false, # ali je tekstovni odgovor 'isOtherAnswer' => false, # ali je odgovor Drugo 'inline_legenda' => true, # ali je legenda inline ali v headerju 'doubleTop' =>false, # ali imamo novo grupa in nardimo dvojni rob ); + foreach ($_options as $_oKey => $_option) { $options[$_oKey] = $_option; } - $css_bck = 'anl_bck_freq_2 '; - echo ''; - echo ''; + + echo ''; + + echo ''; echo $variable['variable']; echo ''; - echo ''; - // echo $grid['naslov'] . ' - ' .$variable['naslov']; + + echo ''; echo $variable['naslov']; - echo ($spremenljivka['enota'] == 1) ? ' - '.$variable['naslov2'] : ''; + echo (isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1) ? ' - '.$variable['naslov2'] : ''; echo ''; + if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); @@ -1222,15 +1328,17 @@ class SurveyAnalysis { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''.$_tip.''; - echo ''.$_oblika.''; + echo ''.$_tip.''; + echo ''.$_oblika.''; } - echo ' '; - echo ' '; + + echo ' '; + echo ' '; if (self::$_HEADERS[$spid]['show_valid_percent'] == true) { - echo ' '; + echo ' '; } - echo ' '; + echo ' '; + echo ''; } @@ -1268,21 +1376,22 @@ class SurveyAnalysis { */ static function displaySums($_spid = null) { global $site_path; - # preberemo header + + # preberemo header if (self::$headFileName === null ) { // die ('
NAPAKA!!! Manjkajo datoteke s podatki. Kreiraj datoteke s podatki!
'); - } else { + } + else { #preberemo HEADERS iz datoteke if (self::$headFileName == null) { echo "
Napaka"; die(); } + self::$_HEADERS = unserialize(file_get_contents(self::$headFileName)); # odstranimo sistemske variable tipa email, ime, priimek, geslo self::removeSystemVariables(); - #print_r("
");
-		#print_r(self::$_HEADERS);
-		#print_r("
"); + # polovimo frekvence self::getFrequencys(); $vars_count = count(self::$_FILTRED_VARIABLES); @@ -1292,121 +1401,118 @@ class SurveyAnalysis { foreach (self::$_HEADERS AS $spid => $spremenljivka) { # preverjamo ali je meta if ( - ($spremenljivka['tip'] != 'm' + (isset($spremenljivka['tip']) && $spremenljivka['tip'] != 'm' && in_array($spremenljivka['tip'], self::$_FILTRED_TYPES ) ) && (!isset($_spid) || (isset($_spid) && $_spid == $spid)) ) { # ali imamo sfiltrirano spremenljivko - if ($vars_count == 0 || ($vars_count > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) ) ) - { + if ($vars_count == 0 || ($vars_count > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) ) ){ echo $line_break; - #print_r($spremenljivka['tip']); - # prikazujemo v odvisnosti od kategorije spremenljivke - - switch ($spremenljivka['tip']) { - case 1: - # radio - prikjaže navpično - self::sumVertical($spid,'sums'); - break; - case 2: - #checkbox če je dihotomna: - //self::sumHorizontalCheckbox($spid); - self::sumVerticalCheckbox($spid,'sums'); - break; - case 3: - # dropdown - prikjaže navpično - self::sumVertical($spid,'sums'); - break; - - case 6: - - if ($spremenljivka['enota'] != 3) { - # multigrid - self::sumHorizontal($spid,'sums'); - } else { - #imamo dvojni mgrid - self::sumDoubleHorizontal($spid,'sums*'); - } - break; - case 16: - #multicheckbox če je dihotomna: - self::sumMultiHorizontalCheckbox($spid,'sums'); - break; - case 17: - - #razvrščanje če je ordinalna - self::sumHorizontal($spid,'sums'); - break; - case 4: # text - case 8: # datum - # varabla tipa »besedilo« je v sumarniku IDENTIČNA kot v FREKVENCAH. - self::sumTextVertical($spid,'sums'); - break; - case 21: # besedilo* - # varabla tipa »besedilo« je v sumarniku IDENTIČNA kot v FREKVENCAH. - if ($spremenljivka['cnt_all'] == 1) { - // če je enodimenzionalna prikažemo kot frekvence - // predvsem zaradi vprašanj tipa: language, email... - self::sumTextVertical($spid,'sums'); - } else { - self::sumMultiText($spid,'sums'); - } - break; - case 19: # multitext - self::sumMultiText($spid,'sums'); - break; - case 7: - case 18: - # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. - self::sumNumberVertical($spid,'sums'); - break; - case 20: - - # Če je v gridu le ene variabla naj bo default prikazan f* in ne SUMA - if ($spremenljivka['grids'][0]['cnt_vars'] == 1 ) { - # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. - self::sumMultiNumberVertical($spid,'sums'); + # prikazujemo v odvisnosti od kategorije spremenljivke + switch ($spremenljivka['tip']) { + case 1: + # radio - prikjaže navpično + self::sumVertical($spid,'sums'); + + break; + case 2: + #checkbox če je dihotomna: + //self::sumHorizontalCheckbox($spid); + self::sumVerticalCheckbox($spid,'sums'); + break; + case 3: + # dropdown - prikjaže navpično + self::sumVertical($spid,'sums'); + break; + + case 6: - } else { + if (!isset($spremenljivka['enota']) || $spremenljivka['enota'] != 3) { + # multigrid + self::sumHorizontal($spid,'sums'); + } else { + #imamo dvojni mgrid + self::sumDoubleHorizontal($spid,'sums*'); + } + break; + case 16: + #multicheckbox če je dihotomna: + self::sumMultiHorizontalCheckbox($spid,'sums'); + break; + case 17: + + #razvrščanje če je ordinalna + self::sumHorizontal($spid,'sums'); + break; + case 4: # text + case 8: # datum + # varabla tipa »besedilo« je v sumarniku IDENTIČNA kot v FREKVENCAH. + self::sumTextVertical($spid,'sums'); + break; + case 21: # besedilo* + # varabla tipa »besedilo« je v sumarniku IDENTIČNA kot v FREKVENCAH. + if ($spremenljivka['cnt_all'] == 1) { + // če je enodimenzionalna prikažemo kot frekvence + // predvsem zaradi vprašanj tipa: language, email... + self::sumTextVertical($spid,'sums'); + } else { + self::sumMultiText($spid,'sums'); + } + break; + case 19: # multitext + self::sumMultiText($spid,'sums'); + break; + case 7: + case 18: + # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. + self::sumNumberVertical($spid,'sums'); + break; + case 20: + + # Če je v gridu le ene variabla naj bo default prikazan f* in ne SUMA + if ($spremenljivka['grids'][0]['cnt_vars'] == 1 ) { + # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. + self::sumMultiNumberVertical($spid,'sums'); + + } else { + + # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. + self::sumMultiNumber($spid,'sums'); + } + break; + case 22: + case 25: + # kalkulacija + self::sumNumberVertical($spid,'sums'); + break; + case 26: + # lokacija + self::sumMultiText($spid,'sums'); + break; + case 27: + # heatmap + self::sumMultiTextHeatMap($spid,'sums',true, true); - # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. - self::sumMultiNumber($spid,'sums'); + break; + case 5: + # nagovor + self::sumNagovor($spid,'sums'); + break; + default: + print_r("TODO: Sums for type:".$spremenljivka['tip']); + break; } - break; - case 22: - case 25: - # kalkulacija - self::sumNumberVertical($spid,'sums'); - break; - case 26: - # lokacija - self::sumMultiText($spid,'sums'); - break; - case 27: - # heatmap - self::sumMultiTextHeatMap($spid,'sums',true, true); - - break; - case 5: - # nagovor - self::sumNagovor($spid,'sums'); - break; - default: - print_r("TODO: Sums for type:".$spremenljivka['tip']); - break; - } - - } + } - } // end if $spremenljivka['tip'] != 'm' - } // end foreach self::$_HEADERS - - // Izrisemo ikone na dnu - if ( (!isset($_spid) || $_spid == null) && (!is_countable(self::$_LOOPS) || count(self::$_LOOPS) == 0 || self::$_CURRENT_LOOP['cnt'] == count(self::$_LOOPS)) && ($_GET['m'] != 'analysis_creport') ) - self::displayBottomSettings('sums'); + } // end if $spremenljivka['tip'] != 'm' + } // end foreach self::$_HEADERS + + // Izrisemo ikone na dnu + if ( (!isset($_spid) || $_spid == null) && (!is_countable(self::$_LOOPS) || count(self::$_LOOPS) == 0 || self::$_CURRENT_LOOP['cnt'] == count(self::$_LOOPS)) && ($_GET['m'] != 'analysis_creport') ) + self::displayBottomSettings('sums'); } // end if else ($_headFileName == null) } @@ -1416,10 +1522,12 @@ class SurveyAnalysis { */ static function displaySumsNew($_spid = null) { global $site_path; + # preberemo header if (self::$headFileName === null ) { // die ('
NAPAKA!!! Manjkajo datoteke s podatki. Kreiraj datoteke s podatki!
'); - } else { + } + else { #preberemo HEADERS iz datoteke self::$_HEADERS = unserialize(file_get_contents(self::$headFileName)); @@ -1432,103 +1540,81 @@ class SurveyAnalysis { $vars_count = count(self::$_FILTRED_VARIABLES); $line_break = ''; foreach (self::$_HEADERS AS $spid => $spremenljivka) { - # preverjamo ali je meta - if (($spremenljivka['tip'] != 'm' - && in_array($spremenljivka['tip'], self::$_FILTRED_TYPES )) - && (!isset($_spid) || (isset($_spid) && $_spid == $spid))) { - # ali imamo sfiltrirano spremenljivko - if ($vars_count == 0 || ($vars_count > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) ) ) { - echo $line_break; - if (self :: $show_spid_div == true) { - echo '
'; - } - - self::displaySpremenljivkaIcons($spid); - - # prikazujemo v odvisnosti od kategorije spremenljivke - switch ($spremenljivka['tip']) { - case 1: - # radio - prikjaže navpično - self::sumHorizontal($spid,'sums*'); - break; - case 2: - #checkbox če je dihotomna: - #self::sumVerticalCheckbox($spid,'sums*'); - self::sumHorizontalCheckbox($spid,'sums*'); - break; - case 3: - # dropdown - prikjaže navpično - self::sumVertical($spid,'sums*'); - break; - case 6: - # multigrid - self::sumHorizontal($spid,'sums'); - /* - if ($spremenljivka['enota'] != 3) { - # multigrid - self::sumHorizontal($spid,'sums'); - } else { - #imamo dvojni mgrid - self::sumDoubleHorizontal($spid,'sums*'); - } - */ - break; - case 16: - #multicheckbox če je dihotomna: - self::sumVerticalCheckbox($spid,'sums*'); - break; - case 17: - #razvrščanje če je ordinalna - self::sumHorizontal($spid,'sums*'); - break; - case 4: # text - case 8: # datum - case 19: # multitext - case 21: # besedilo* - # varabla tipa »besedilo« je v sumarniku IDENTIČNA kot v FREKVENCAH. - self::sumTextVertical($spid,'sums*'); - break; - case 7: - case 18: - # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. - self::sumNumberVertical($spid,'sums*'); - break; - case 20: - self::sumMultiNumberVertical($spid,'sums*'); - /* - # Če je v gridu le ene variabla naj bo default prikazan f* in ne SUMA - if ($spremenljivka['grids'][0]['cnt_vars'] == 1) { - # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. - self::sumMultiNumberVertical($spid,'sums'); - - } else { - # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. - self::sumMultiNumber($spid,'sums'); - } - */ - break; - case 26: - # lokacija - self::sumMultiText($spid,'sums'); - break; - case 27: - # heatmap - self::sumMultiTextHeatMap($spid,'sums',true, true); - break; - case 5: - # nagovor - self::sumNagovor($spid,'sums*'); - break; - - } - if (self :: $show_spid_div == true) { - echo '
'; // id="sum_'.$keyGrupe.'">'; - } - $line_break = "
"; - } + # preverjamo ali je meta + if (($spremenljivka['tip'] != 'm' && in_array($spremenljivka['tip'], self::$_FILTRED_TYPES )) && (!isset($_spid) || (isset($_spid) && $_spid == $spid))) { + + # ali imamo sfiltrirano spremenljivko + if ($vars_count == 0 || ($vars_count > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) ) ) { - } // end if $spremenljivka['tip'] != 'm' + echo $line_break; + + if (self :: $show_spid_div == true) { + echo '
'; + } + + # prikazujemo v odvisnosti od kategorije spremenljivke + switch ($spremenljivka['tip']) { + case 1: + # radio - prikjaže navpično + self::sumHorizontal($spid,'sums*'); + break; + case 2: + #checkbox če je dihotomna: + self::sumHorizontalCheckbox($spid,'sums*'); + break; + case 3: + # dropdown - prikjaže navpično + self::sumVertical($spid,'sums*'); + break; + case 6: + # multigrid + self::sumHorizontal($spid,'sums'); + break; + case 16: + #multicheckbox če je dihotomna: + self::sumVerticalCheckbox($spid,'sums*'); + break; + case 17: + #razvrščanje če je ordinalna + self::sumHorizontal($spid,'sums*'); + break; + case 4: # text + case 8: # datum + case 19: # multitext + case 21: # besedilo* + # varabla tipa »besedilo« je v sumarniku IDENTIČNA kot v FREKVENCAH. + self::sumTextVertical($spid,'sums*'); + break; + case 7: + case 18: + # variabla tipa »število« je v sumarniku identična kot v DESCRIPTIVES. + self::sumNumberVertical($spid,'sums*'); + break; + case 20: + self::sumMultiNumberVertical($spid,'sums*'); + break; + case 26: + # lokacija + self::sumMultiText($spid,'sums'); + break; + case 27: + # heatmap + self::sumMultiTextHeatMap($spid,'sums',true, true); + break; + case 5: + # nagovor + self::sumNagovor($spid,'sums*'); + break; + + } + if (self :: $show_spid_div == true) { + echo '
'; // id="sum_'.$keyGrupe.'">'; + } + + $line_break = "
"; + } + } // end if $spremenljivka['tip'] != 'm' } // end foreach self::$_HEADERS } // end if else ($_headFileName == null) } @@ -1550,7 +1636,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -1567,7 +1655,7 @@ class SurveyAnalysis { $options=array('inline_legenda' => $inline_legenda, 'isTextAnswer' => false, 'isOtherAnswer' => false, 'num_show_records' => $num_show_records); if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); @@ -1582,16 +1670,20 @@ class SurveyAnalysis { } # tekst vprašanja - echo ''; + // echo ''; + echo '
'; + # naslovna vrstica - echo ''; - #variabla - echo ''; + + # variabla + echo ''; + #odgovori $show_valid_percent = (self::$_HEADERS[$spid]['show_valid_percent'] == true) ? 1 : 0; - echo ''; + echo ''; - echo ''; - #variabla - echo ''; + + # variabla - en odgovor + echo ''; - #odgovori - echo ''; + # odgovori + echo ''; if (self::$_SHOW_LEGENDA && $inline_legenda){ - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + echo ''; + echo ''; if (self::$_HEADERS[$spid]['show_valid_percent'] == true) { - echo ''; + echo ''; } - echo ''; + echo ''; + echo ''; // konec naslovne vrstice - // zeleno vrstico prikažemo samo skupaj z legendo - if (self::$_SHOW_LEGENDA && false) { - $css_bck = 'anl_bck_0_0 '; - echo ''; - echo ''; - echo ''; - if ($variable['other'] != '1' && $variable['text'] != '1') { - $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); - $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - } else { - $_tip = $lang['srv_analiza_vrsta_bese']; - $_oblika = $lang['srv_analiza_oblika_nomi']; - } - echo ''; - echo ''; - echo ''; - echo ''; - if (self::$_HEADERS[$spid]['show_valid_percent'] == true) { - echo ''; - } - echo ''; - echo ''; - } $_answersOther = array(); $sum_xi_fi=0; $N = 0; - + $_tmp_for_div = array(); + # izpišemo vlejavne odgovore - if (count($spremenljivka['grids']) > 0) + if (count($spremenljivka['grids']) > 0){ + foreach ($spremenljivka['grids'] AS $gid => $grid) { - # dodamo dodatne vrstice z albelami grida - if (count($grid['variables']) > 0 ) - foreach ($grid['variables'] AS $vid => $variable ){ - $_sequence = $variable['sequence']; # id kolone z podatki - if ($variable['text'] != true && $variable['other'] != true) { - $counter = 0; - $_kumulativa = 0; - //self::$_FREQUENCYS[$_sequence] - if (count(self::$_FREQUENCYS[$_sequence]['valid'])> 0 ) { - foreach (self::$_FREQUENCYS[$_sequence]['valid'] AS $vkey => $vAnswer) { - // za povprečje - $xi = (int)$vkey; - $fi = (int)$vAnswer['cnt']; + + # dodamo dodatne vrstice z albelami grida + if (count($grid['variables']) > 0 ){ - $sum_xi_fi += $xi * $fi; - $N += $fi; - - if ($counter < $num_show_records) { - if ($vAnswer['cnt'] > 0 || true) { # izpisujemo samo tiste ki nisno 0 - $counter = self::outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,$_kumulativa,$options); - } - } - # za poznejše računannje odklona - $_tmp_for_div[] = array('xi'=>$xi, 'fi'=>$fi, 'sequence'=>$_sequence); - } - # izpišemo sumo veljavnih - $counter = self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,$options); + foreach ($grid['variables'] AS $vid => $variable ){ - } - if (count(self::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) { - foreach (self::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) { - if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0 - $counter = self::outputInvalidAnswerVertical($counter,$ikey,$iAnswer,$_sequence,$spid,$options); - } - } - # izpišemo sumo veljavnih - $counter = self::outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,$options); - } - #izpišemo še skupno sumo - $counter = self::outputSumaVertical($counter,$_sequence,$spid,$options); - } else { - $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); - } - } - } + $_sequence = $variable['sequence']; # id kolone z podatki + + if ($variable['text'] != true && $variable['other'] != true) { + $counter = 0; + $_kumulativa = 0; + + if (count(self::$_FREQUENCYS[$_sequence]['valid'])> 0 ) { + foreach (self::$_FREQUENCYS[$_sequence]['valid'] AS $vkey => $vAnswer) { + // za povprečje + $xi = (int)$vkey; + $fi = (int)$vAnswer['cnt']; + + $sum_xi_fi += $xi * $fi; + $N += $fi; + + if ($counter < $num_show_records) { + if ($vAnswer['cnt'] > 0 || true) { # izpisujemo samo tiste ki nisno 0 + $counter = self::outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,$_kumulativa,$options); + } + } + # za poznejše računannje odklona + $_tmp_for_div[] = array('xi'=>$xi, 'fi'=>$fi, 'sequence'=>$_sequence); + } + # izpišemo sumo veljavnih + $counter = self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,$options); + + } + + if (count(self::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) { + foreach (self::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) { + if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0 + $counter = self::outputInvalidAnswerVertical($counter,$ikey,$iAnswer,$_sequence,$spid,$options); + } + } + # izpišemo sumo veljavnih + $counter = self::outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,$options); + } + + #izpišemo še skupno sumo + $counter = self::outputSumaVertical($counter,$_sequence,$spid,$options); + } + else { + $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); + } + } + } + } + } # odklon $avg = ($N > 0) ? $sum_xi_fi / $N : 0; + #standardna diviacija $div = 0; $sum_pow_xi_fi_avg = 0; @@ -1719,23 +1807,30 @@ class SurveyAnalysis { $sum_pow_xi_fi_avg += pow(($xi - $avg),2) * $fi; } + $div = (($N -1) > 0) ? sqrt($sum_pow_xi_fi_avg / ($N -1)) : 0; # izpišemo še odklon in povprečje if ($show_valid_percent == 1 && self::$_HEADERS[$spid]['skala'] != 1) { - $css_bck = 'anl_bck'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + + echo ''; + echo ''; echo ''; + + echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; } + echo '
'; + echo '
'; echo self::showVariable($spid, $spremenljivka['variable']); echo ''.$spremenljivka['naslov'].''; + echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { @@ -1607,109 +1699,105 @@ class SurveyAnalysis { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; + + echo '
'; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,$_from); + echo '
'; echo '
'.$lang['srv_analiza_frekvence_titleAnswers'] . ''.$lang['srv_analiza_frekvence_titleAnswers'] . ''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''. $lang['srv_analiza_frekvence_titleFrekvenca'] .''. $lang['srv_analiza_frekvence_titleOdstotek'] .''. $lang['srv_analiza_frekvence_titleFrekvenca'] .''. $lang['srv_analiza_frekvence_titleOdstotek'] .''. $lang['srv_analiza_frekvence_titleVeljavni'] .''. $lang['srv_analiza_frekvence_titleVeljavni'] .''. $lang['srv_analiza_frekvence_titleKumulativa'] .''. $lang['srv_analiza_frekvence_titleKumulativa'] .'
 '.$_tip.''.$_oblika.'    
 
 '.$lang['srv_analiza_opisne_povprecje'].''. self::formatNumber($avg,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),'').''.$lang['srv_analiza_opisne_odklon'].''.self::formatNumber($div,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),'').'
 
'.$lang['srv_analiza_opisne_povprecje'].''. self::formatNumber($avg,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),'').''.$lang['srv_analiza_opisne_odklon'].''.self::formatNumber($div,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),'').'
'; + + # izpišemo še tekstovne odgovore za polja drugo if (count($_answersOther) > 0 && self::$_FILTRED_OTHER) { foreach ($_answersOther AS $oAnswers) { @@ -1746,7 +1841,6 @@ class SurveyAnalysis { } if (self :: $show_spid_div == true) { echo '
'; - echo '
'; } } @@ -1792,104 +1886,137 @@ class SurveyAnalysis { # ugotovimo koliko imamo kolon $gid=0; - $_clmn_cnt = self::$_HEADERS[$spid]['grids'][$gid]['cnt_vars']-self::$_HEADERS[$spid]['grids'][$gid]['cnt_other']; + + if(isset(self::$_HEADERS[$spid]['grids'][$gid]['cnt_other'])) + $_clmn_cnt = self::$_HEADERS[$spid]['grids'][$gid]['cnt_vars'] - self::$_HEADERS[$spid]['grids'][$gid]['cnt_other']; + else + $_clmn_cnt = self::$_HEADERS[$spid]['grids'][$gid]['cnt_vars']; + # tekst vprašanja $css_hide_enote = isset($_POST['navedbe']) && $_POST['navedbe'] == '1' ? ' displayNone' : ''; $css_hide_navedbe = isset($_POST['navedbe']) && $_POST['navedbe'] == '1' ? '' : ' displayNone'; if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); # odgovori echo '
'; - echo ''; - echo ''; - echo '
'; + + echo ''; + + + echo ''; + + echo ''; - echo ''; + + // Preklop navedbe/enote + self::showEnoteNavedbe($spid, $status='1'); + + echo ''; + echo ''; - echo ''; - echo ''; + + + # variabla + echo ''; - echo ''; + if (self::$_SHOW_LEGENDA) { - echo ''; - echo ''; - } - echo ''; + echo ''; + } + + echo ''; - echo ''; - echo ''; + + echo ''; + echo ''; + echo ''; - $bck_css = ' anl_bck_0_0'; + $_variables = self::$_HEADERS[$spid]['grids'][$gid]['variables']; - echo ''; - echo ''; - echo ''; - if (self::$_SHOW_LEGENDA) { + echo ''; + + echo ''; + + echo ''; + + if (self::$_SHOW_LEGENDA) { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - echo ''; //'.$_tip.' - echo ''; // '.$_oblika.' + echo ''; //'.$_tip.' + echo ''; // '.$_oblika.' } + if (count($_variables) > 0) { foreach ($_variables AS $vkey => $variable) { if ($variable['other'] != true) { - echo ''; + echo ''; } } } - //echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; + + + # vodoravna vrstice s podatki foreach (self::$_HEADERS[$spid]['grids'] AS $gid => $grids) { if ($gidsCanShow[$gid]) { $_cnt = 0; - # vodoravna vrstice s podatki - $css_back = ' anl_bck_desc_2'; - echo ''; - echo ''; - echo ''; - if (self::$_SHOW_LEGENDA) { + + + echo ''; + + echo ''; + echo ''; + + if (self::$_SHOW_LEGENDA) { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - echo ''; - echo ''; + echo ''; + echo ''; } $_arguments = 0; $_max_appropriate = 0; $_max_cnt = 0; + // prikaz frekvenc if (count($grids['variables']) > 0) foreach ($grids['variables'] AS $vkey => $variable) { $_sequence = $variable['sequence']; - $_valid = self::$_FREQUENCYS[$_sequence]['validCnt']; + $_valid = isset(self::$_FREQUENCYS[$_sequence]['validCnt']) ? self::$_FREQUENCYS[$_sequence]['validCnt'] : 0; $_cnt = self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']; $_arguments += $_cnt; @@ -1901,110 +2028,138 @@ class SurveyAnalysis { } if ($variable['other'] != true) { - echo ''; } } + # veljavno - echo ''; - #ustrezno - echo ''; + echo ''; + + # ustrezno + echo ''; echo ''; } } + echo ''; + echo ''; + # navedbe echo '
'; - echo ''; - echo ''; - echo '
'; + + echo ''; + + echo ''; + + echo ''; - echo ''; + + // Preklop navedbe/enote + self::showEnoteNavedbe($spid, $status='2'); + + echo ''; + echo ''; - echo ''; - echo ''; + + + # variabla + echo ''; - echo ''; + if (self::$_SHOW_LEGENDA) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; + echo ''; + echo ''; - $bck_css = ' anl_bck_0_0'; + + $_variables = self::$_HEADERS[$spid]['grids'][$gid]['variables']; - echo ''; - echo ''; - echo ''; - if (self::$_SHOW_LEGENDA) { + echo ''; + + echo ''; + echo ''; + if (self::$_SHOW_LEGENDA) { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - echo ''; //'.$_tip.' - echo ''; // '.$_oblika.' + echo ''; //'.$_tip.' + echo ''; // '.$_oblika.' } foreach ($_variables AS $vkey => $variable) { if ($variable['other'] != true) { - echo ''; + echo ''; } } - echo ''; + echo ''; + echo ''; + + + # vodoravna vrstice s podatki foreach (self::$_HEADERS[$spid]['grids'] AS $gid => $grids) { $_cnt = 0; - # vodoravna vrstice s podatki - $css_back = ' anl_bck_desc_2'; + echo ''; - echo ''; - echo ''; + echo ''; + echo ''; if (self::$_SHOW_LEGENDA) { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - echo ''; - echo ''; + echo ''; + echo ''; } $_arguments = 0; $_max_appropriate = 0; $_max_cnt = 0; + // prikaz frekvenc foreach ($grids['variables'] AS $vkey => $variable) { $_sequence = $variable['sequence']; @@ -2023,46 +2178,58 @@ class SurveyAnalysis { $_percent = ($_valid > 0 ) ? $_cnt * 100 / $_valid : 0; } } + foreach ($grids['variables'] AS $vkey => $variable) { if ($variable['other'] != true) { $_sequence = $variable['sequence']; $_cnt = self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']; - echo ''; } } - echo ''; + echo ''; } + echo ''; echo ''; + # izpišemo še tekstovne odgovore za polja drugo if (count($_answersOther) > 0 && self::$_FILTRED_OTHER) { foreach ($_answersOther AS $oAnswers) { @@ -2073,7 +2240,6 @@ class SurveyAnalysis { } if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } @@ -2083,6 +2249,7 @@ class SurveyAnalysis { */ static function sumHorizontalCheckbox($spid,$_from) { global $lang; + $spremenljivka = self::$_HEADERS[$spid]; # preverimo ali prikazujemo spremenljivko, glede na veljavne odgovore in nastavitev @@ -2093,7 +2260,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -2110,115 +2279,144 @@ class SurveyAnalysis { foreach (self::$_HEADERS[$spid]['grids'][$gid]['variables'] AS $vid => $variable) { $_sequence = $variable['sequence']; - $_valid_cnt = max($_valid_cnt, self::$_FREQUENCYS[$_sequence]['validCnt']); - $_approp_cnt = max($_approp_cnt, self::$_FREQUENCYS[$_sequence]['allCnt']); + $_valid_cnt = max(isset($_valid_cnt)?$_valid_cnt:0, self::$_FREQUENCYS[$_sequence]['validCnt']); + $_approp_cnt = max(isset($_approp_cnt)?$_approp_cnt:0, self::$_FREQUENCYS[$_sequence]['allCnt']); if ($variable['other'] == true) { $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); } } if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); # tekst vprašanja - echo ''; - echo ''; - echo '
'; + echo ''; + + echo ''; + + echo ''; - echo ''; + echo ''; - echo ''; - echo ''; + + + echo ''; + echo ' '; + echo ''; + + + if (self::$_SHOW_LEGENDA) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + + echo ''; + echo ''; + + echo ''; + - $bck_css = ' anl_bck_desc_2'; $_variables = self::$_HEADERS[$spid]['grids'][$gid]['variables']; - echo ''; - echo ''; - if (self::$_SHOW_LEGENDA) { + echo ''; + + echo ''; + + if (self::$_SHOW_LEGENDA) { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - echo ''; - echo ''; + echo ''; + echo ''; } foreach ($_variables AS $vkey => $variable) { if ($variable['other'] != true) { - echo ''; + echo ''; } } - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; + + # vodoravna vrstice s podatki echo ''; - echo ''; - // prikaz frekvenc + + echo ''; + + // prikaz frekvenc foreach ($_variables AS $vkey => $variable) { if ($variable['other'] != true) { $_sequence = $variable['sequence']; $cnt = self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']; - echo ''; + echo ''; } } - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; + // dodamo še veljavne procente echo ''; - echo ''; - foreach ($_variables AS $vkey => $variable) { + + echo ''; + + foreach ($_variables AS $vkey => $variable) { if ($variable['other'] != true) { $_sequence = $variable['sequence']; $cnt = self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']; $percent = ( $_valid_cnt > 0) ? 100*$cnt / $_valid_cnt : 0; - echo ''; + echo ''; } } - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; // dodamo še procente - echo ''; - echo ''; + echo ''; + echo ''; foreach ($_variables AS $vkey => $variable) { if ($variable['other'] != true) { $_sequence = $variable['sequence']; $cnt = self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']; $percent = ( $_approp_cnt > 0) ? 100*$cnt / $_approp_cnt : 0; - echo ''; + echo ''; } } - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; echo '
'; echo self::showVariable($spid, $spremenljivka['variable']); echo ''; + + echo ''; echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; + + + echo '
'; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,$_from); - echo '
'.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_answers']; - echo ' (/ %)'; - echo ' (/ %)'; - echo ' (f / %)'; - echo ''.$lang['srv_analiza_opisne_valid'].''.$lang['srv_analiza_num_units'].'
'; + echo $lang['srv_analiza_opisne_answers']; + self::showFreqPercent($spid); + echo ''.$lang['srv_analiza_opisne_valid'].''.$lang['srv_analiza_num_units'].'
 
'.$_tip.''.$_oblika.''.$_tip.''.$_oblika.'' . $variable['naslov'] . '' . $variable['naslov'] . '  
'.$lang['srv_analiza_frekvence_titleFrekvenca'].''.$lang['srv_analiza_frekvence_titleFrekvenca'].''.$cnt.''.$cnt.''.$_valid_cnt.''.$_approp_cnt.''.$_valid_cnt.''.$_approp_cnt.'
'.$lang['srv_analiza_frekvence_titleOdstotekVeljavni'].''.$lang['srv_analiza_frekvence_titleOdstotekVeljavni'].''.self::formatNumber($percent,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').''.self::formatNumber($percent,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').'  
'.$lang['srv_analiza_frekvence_titleOdstotekEnote'].'
'.$lang['srv_analiza_frekvence_titleOdstotekEnote'].''.self::formatNumber($percent,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').''.self::formatNumber($percent,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').'  
'; + # izpišemo še tekstovne odgovore za polja drugo if (count($_answersOther) > 0 && self::$_FILTRED_OTHER) { foreach ($_answersOther AS $oAnswers) { @@ -2227,9 +2425,9 @@ class SurveyAnalysis { echo ''; } } + if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } @@ -2238,6 +2436,10 @@ class SurveyAnalysis { $spremenljivka = self::$_HEADERS[$spid]; + $_valid_cnt = array(); + $_approp_cnt = array(); + $_navedbe = array(); + # preverimo ali prikazujemo spremenljivko, glede na veljavne odgovore in nastavitev $all_categories_cnt = 0; $only_valid = 0; @@ -2248,7 +2450,9 @@ class SurveyAnalysis { foreach ($grid['variables'] AS $vid => $variable ){ $all_categories_cnt++; $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -2270,17 +2474,17 @@ class SurveyAnalysis { # ugotovimo koliko imamo kolon if (count($spremenljivka['grids']) > 0) foreach ($spremenljivka['grids'] AS $gid => $grid) { - $_clmn_cnt[$gid] = $grid['cnt_vars']-$grid['cnt_other']; + $_clmn_cnt[$gid] = $grid['cnt_vars']-(isset($grid['cnt_other']) ? $grid['cnt_other'] : 0); if (count ($grid['variables']) > 0) foreach ($grid['variables'] AS $vid => $variable) { $_sequence = $variable['sequence']; - $_valid_cnt[$gid] = max($_valid_cnt[$gid], self::$_FREQUENCYS[$_sequence]['validCnt']); - $_approp_cnt[$gid] = max($_approp_cnt[$gid], self::$_FREQUENCYS[$_sequence]['allCnt']); + $_valid_cnt[$gid] = isset($_valid_cnt[$gid]) ? max($_valid_cnt[$gid], self::$_FREQUENCYS[$_sequence]['validCnt']) : self::$_FREQUENCYS[$_sequence]['validCnt']; + $_approp_cnt[$gid] = isset($_approp_cnt[$gid]) ? max($_approp_cnt[$gid], self::$_FREQUENCYS[$_sequence]['allCnt']) : self::$_FREQUENCYS[$_sequence]['allCnt']; if ($variable['other'] == true) { $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); } $_valid[$gid][$vid] = self::$_FREQUENCYS[$_sequence]['valid']; - $_navedbe[$gid] += self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']; + $_navedbe[$gid] = isset($_navedbe[$gid]) ? $_navedbe[$gid] += self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt'] : self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']; } } $veljavni_percent = ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16) ? true : false; @@ -2288,224 +2492,277 @@ class SurveyAnalysis { $css_txt = 'anl_variabla_line'; if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); echo '
'; - echo ''; - echo ''; - echo ''; if (count($missing_values) > 0) { foreach ($missing_values AS $mv_key => $mv_text) { @@ -9161,7 +9067,7 @@ class SurveyChart { } } } - } + } */ echo ''; echo ''; @@ -9169,20 +9075,20 @@ class SurveyChart { $sql1 = sisplet_query("SELECT naslov, naslov_graf FROM srv_grid WHERE id='$i' AND spr_id='$spid'"); $row1 = mysqli_fetch_array($sql1); $text = $row1['naslov_graf'] == '' ? $row1['naslov'] : $row1['naslov_graf']; - echo ''; + echo ''; } //dodatne vrednosti (ne vem, zavrnil...) - if (count($already_set_mv) > 0 ) { + /* if (count($already_set_mv) > 0 ) { echo ''; if (count($missing_values) > 0) { foreach ($missing_values AS $mv_key => $mv_text) { if (isset($already_set_mv[$mv_key])) { - echo ''; + echo ''; } } } - } + } */ echo ''; echo '
'; + + echo ''; + + echo ''; + + echo ''; - echo ''; + + // Preklop navedbe/enote + self::showEnoteNavedbe($spid, $status='1'); + + echo ''; + echo ''; - $css_txt = 'anl_variabla_line'; - echo ''; - echo ''; + + + # variabla - več odgovorov + echo ''; - echo ''; - if (self::$_SHOW_LEGENDA && $inline_legenda) { - echo ''; - echo ''; - } - echo ''; - echo ''; - echo ''; + echo ''; - echo ''; + if (self::$_SHOW_LEGENDA && $inline_legenda) { + echo ''; + echo ''; + } + + echo ''; + echo ''; + echo ''; + echo ''; if ($veljavni_percent) { - echo ''; + echo ''; } + echo ''; - $cssBack = "anl_bck anl_variabla_line "; - + $_max_valid = 0; $_max_appropriate = 0; - if (count ($spremenljivka['grids']) > 0) + if (count ($spremenljivka['grids']) > 0){ + foreach ($spremenljivka['grids'] as $gid => $grid) { - $_max_valid = 0; - $_max_appropriate = 0; - if (count ($grid['variables']) > 0) - foreach ($grid['variables'] AS $vid => $variable) { - $_sequence = $variable['sequence']; - #po potrebi prikažemo samo tiste ki imajo vrednosti - if (($all_categories_cnt <= AUTO_HIDE_ZERRO_VALUE) || (int)self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt'] > 0 ) - if ($variable['other'] != 1) { - - - # dodamo labele podvprašanja - if ($spremenljivka['tip'] == 16 && (($vid == 0 && $gid != 0) || ($vid == 0 && $gid == 0))) { - $cssBack = "anl_bck_desc_2 ".($vid == 0 && $gid != 0 ? 'anl_double_bt ' : ''); - echo ''; - echo ''; - echo ''; - echo ''; - } - $cssBack = "anl_bck_desc_2 "; - echo ''; - echo ''; - echo ''; - if (self::$_SHOW_LEGENDA && $inline_legenda) { - echo ''; - echo ''; - } - echo ''; - - $_max_appropriate = max($_max_appropriate, (int)self::$_FREQUENCYS[$_sequence]['allCnt']); - $_max_valid = max ($_max_valid, ((int)(self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']+(int)self::$_FREQUENCYS[$_sequence]['valid']['0']['cnt']))); - - # veljavno - echo ''; - echo ''; - #ustrezno - echo ''; - # veljavno % - if ($veljavni_percent) { + $_max_valid = 0; + $_max_appropriate = 0; - $valid = (int)(self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']+(int)self::$_FREQUENCYS[$_sequence]['valid']['0']['cnt']); - $valid = (int)self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']; - $_percent = ($_max_appropriate > 0 ) ? 100*$valid / $_max_appropriate : 0; - - echo ''; - } - echo ''; + if (count ($grid['variables']) > 0){ - } else { - # drugo - } - } - $cssBack = " anl_bck_2 red"; - echo ''; - echo ''; - echo ''; - echo ''; //.$_approp_cnt[$gid]. - echo ''; - echo ''; //.self::formatNumber('100',SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%') + foreach ($grid['variables'] AS $vid => $variable) { + $_sequence = $variable['sequence']; - - echo ''; //$lang['srv_anl_suma_entries'] - if ($veljavni_percent) { - $_percent = ($_max_appropriate > 0 ) ? 100*$_max_valid / $_max_appropriate : 0; - echo ''; - } - echo ''; - + #po potrebi prikažemo samo tiste ki imajo vrednosti + if (($all_categories_cnt <= AUTO_HIDE_ZERRO_VALUE) || (int)self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt'] > 0 ){ + if ($variable['other'] != 1) { + + # dodamo labele podvprašanja + if ($spremenljivka['tip'] == 16 && (($vid == 0 && $gid != 0) || ($vid == 0 && $gid == 0))) { + echo ''; + echo ''; + echo ''; + echo ''; + } + + echo ''; + echo ''; + echo ''; + if (self::$_SHOW_LEGENDA && $inline_legenda) { + echo ''; + echo ''; + } + echo ''; + + $_max_appropriate = max($_max_appropriate, (int)self::$_FREQUENCYS[$_sequence]['allCnt']); + $_max_valid = max ($_max_valid, ((int)(self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']+(int)self::$_FREQUENCYS[$_sequence]['valid']['0']['cnt']))); + + # veljavno + echo ''; + + echo ''; + + # ustrezno + echo ''; + + # veljavno % + if ($veljavni_percent) { + + $valid = (int)(self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']+(int)self::$_FREQUENCYS[$_sequence]['valid']['0']['cnt']); + $valid = (int)self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt']; + $_percent = ($_max_appropriate > 0 ) ? 100*$valid / $_max_appropriate : 0; + + echo ''; + } + echo ''; + + } + } + else { + # drugo + } + } + } + + + echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; + if ($veljavni_percent) { + $_percent = ($_max_appropriate > 0 ) ? 100*$_max_valid / $_max_appropriate : 0; + echo ''; + } + echo ''; + } } echo ''; echo ''; // div_navedbe_1_'.$spid.' + # še navedbe echo '
'; - echo ''; - echo ''; - echo '
'; + + echo ''; + + echo ''; + + echo ''; - echo ''; + + // Preklop navedbe/enote + self::showEnoteNavedbe($spid, $status='2'); + + echo ''; + echo ''; - $css_txt = 'anl_variabla_line'; - echo ''; - echo ''; + + + # variabla + echo ''; - echo ''; + + echo ''; if (self::$_SHOW_LEGENDA && $inline_legenda) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + echo ''; + echo ''; echo ''; + echo ''; - $cssBack = "anl_bck anl_variabla_line "; - - if (count ($spremenljivka['grids']) > 0) + + if (count ($spremenljivka['grids']) > 0){ + foreach ($spremenljivka['grids'] as $gid => $grid) { - if (count ($grid['variables']) > 0) - foreach ($grid['variables'] AS $vid => $variable) { - $_sequence = $variable['sequence']; - #po potrebi prikažemo samo tiste ki imajo vrednosti - if (($all_categories_cnt <= AUTO_HIDE_ZERRO_VALUE) || (int)self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt'] > 0 ) - if ($variable['other'] != 1) { - - # dodamo labele podvprašanja - if ($spremenljivka['tip'] == 16 && (($vid == 0 && $gid != 0) || ($vid == 0 && $gid == 0))) { - $cssBack = 'anl_bck_desc_2'.($vid == 0 && $gid != 0 ? ' anl_double_bt ' : ''); - echo ''; - echo ''; - echo ''; - echo ''; - } - $cssBack = "anl_bck_desc_2 "; - echo ''; - echo ''; - echo ''; - if (self::$_SHOW_LEGENDA && $inline_legenda) { - echo ''; - echo ''; - } - - echo ''; - echo ''; - echo ''; - } else { - # drugo - } + if (count ($grid['variables']) > 0){ + + foreach ($grid['variables'] AS $vid => $variable) { + + $_sequence = $variable['sequence']; + + #po potrebi prikažemo samo tiste ki imajo vrednosti + if (($all_categories_cnt <= AUTO_HIDE_ZERRO_VALUE) || (int)self::$_FREQUENCYS[$_sequence]['valid']['1']['cnt'] > 0 ){ + if ($variable['other'] != 1) { + + # dodamo labele podvprašanja + if ($spremenljivka['tip'] == 16 && (($vid == 0 && $gid != 0) || ($vid == 0 && $gid == 0))) { + echo ''; + echo ''; + echo ''; + echo ''; + } + + echo ''; + + echo ''; + echo ''; + + if (self::$_SHOW_LEGENDA && $inline_legenda) { + echo ''; + echo ''; + } + + echo ''; + echo ''; + + echo ''; + } + } + else { + # drugo + } + } + } } - $cssBack = " anl_bck_2 red"; + echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - + + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; } + echo ''; + echo ''; // Konec div_navedbe_2_$spid + # izpišemo še tekstovne odgovore za polja drugo if (count($_answersOther) > 0 && self::$_FILTRED_OTHER) { foreach ($_answersOther AS $oAnswers) { @@ -2514,9 +2771,9 @@ class SurveyAnalysis { echo ''; } } + if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } @@ -2538,7 +2795,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -2546,9 +2805,7 @@ class SurveyAnalysis { return; } - #$_invalidAnswers = self :: getInvalidAnswers (MISSING_TYPE_FREQUENCY); $_invalidAnswers = self :: getInvalidAnswers (MISSING_TYPE_DESCRIPTOR); - #$_allMissing_answers = SurveyMissingValues::GetMissingValuesForSurvey(array(1,2,3)); # opcije nareedimo posebej, da po potrebi zajamemo tudi misinge $str_qry = "SELECT id, spr_id, REPLACE(REPLACE(REPLACE(naslov,'\n',' '),'\r','
'),'|',' ') as naslov, variable, other, part, REPLACE(REPLACE(REPLACE(naslov_graf,'\n',' '),'\r','
'),'|',' ') as naslov_graf, vrstni_red FROM srv_grid WHERE spr_id='".$spid."' ORDER BY vrstni_red"; @@ -2579,56 +2836,75 @@ class SurveyAnalysis { } if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); - echo ''; - echo ''; - echo ''; + + if ($_ans != null && $_ans != '' && $_ans >= 0 && $indeksZaObmocja < count($_valid_answers)){ + $_ans = substr($_ans, 4); //odstrani
iz zacetka koordinat $coordinates = explode('
',$_ans); + foreach($coordinates AS $key => $coordinate){ $coordinate = explode(',',$coordinate); foreach($coordinate AS $coordskey => $subcoords) { - if($coords == 'x' && ($coordskey == 0 || $coordskey%2 == 0) ) - { + if($coords == 'x' && ($coordskey == 0 || $coordskey%2 == 0) ){ array_push($stdevCoordsArray, $subcoords); - }else if($coords == 'y' && ($coordskey != 0 || $coordskey%2 != 0) ) - { + } + else if($coords == 'y' && ($coordskey != 0 || $coordskey%2 != 0) ){ array_push($stdevCoordsArray, $subcoords); } } @@ -8122,6 +8476,7 @@ class SurveyAnalysis { echo ' '; } } + $indeksZaObmocja++; } } diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyAnalysisArchive.php b/admin/survey/classes/surveyAnalysis/class.SurveyAnalysisArchive.php index 6d937c5..cc5237e 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyAnalysisArchive.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyAnalysisArchive.php @@ -21,9 +21,17 @@ */ -define("SAA_FOLDER", "AnalysisArchive"); +if(!defined("SAA_FOLDER")) define("SAA_FOLDER", "AnalysisArchive"); + define("DEFAULT_DURATION", " +3 month"); // privzet čas trajanja athiva +define("M_ANALIZA_SUMS", "sums"); +define("M_ANALIZA_DESCRIPTOR", "descriptor"); +define("M_ANALIZA_FREQUENCY", "frequency"); +define("M_ANALIZA_CROSSTAB", "crosstabs"); +define("M_ANALIZA_STATISTICS", "statistics"); + + class SurveyAnalysisArchive { @@ -32,7 +40,7 @@ class SurveyAnalysisArchive { // konstrutor protected function __construct() {} // kloniranje - final private function __clone() {} + private function __clone() {} /** * Inicializacija @@ -78,7 +86,9 @@ class SurveyAnalysisArchive { 'edit' => true #stolpec spreminajl ); + $ArchiveTypes = array(M_ANALIZA_SUMS => 0, M_ANALIZA_DESCRIPTOR=>1, M_ANALIZA_FREQUENCY=>2, M_ANALIZA_CROSSTAB=>3, M_ANALYSIS_MEANS=>4, M_ANALYSIS_TTEST=>5, M_ANALYSIS_BREAK=>6, M_ANALYSIS_CHARTS=>7, M_ANALYSIS_CREPORT=>8); + #ponastavimo želene vrednosti foreach ($fields AS $key => $value) { $defaultFields[$key] = $value; @@ -86,7 +96,7 @@ class SurveyAnalysisArchive { $users = array(); $qry = "SELECT saa.*, UNIX_TIMESTAMP(saa.date) as insert_date, UNIX_TIMESTAMP(saa.duration) as duration_d, DATEDIFF(saa.duration, CURDATE()) as days_left" - # da ne delamo vlkege poizvedbe kadar ni potrebno + # da ne delamo velike poizvedbe, kadar ni potrebno . ($defaultFields['insert'] ? " , us1.name as iname, us1.surname as isurname, us1.email as iemail " : "" ) . ($defaultFields['edit'] ? " , us2.name as ename, us2.surname as esurname, us2.email as eemail " : "" ) . " FROM srv_analysis_archive as saa " @@ -96,73 +106,68 @@ class SurveyAnalysisArchive { $s = sisplet_query($qry); if (mysqli_num_rows($s) > 0 ) { - - if($defaultFields['create_new']){ + echo '
'; echo ''.$lang['srv_archive_analysis'].''; - echo $lang['srv_analiza_archive_generate_quick']; - - echo '
'; + echo '

'.$lang['srv_analiza_archive_note1'].'

'; + echo '

'.$lang['srv_analiza_archive_generate_quick'].'

'; + + echo '
'; + echo ''; + echo '
'; + + echo '

'.$lang['srv_analiza_archive_list'].'

'; + + echo '
'; + echo '
'; + + echo '
'; + + echo ''; + + echo ''; + + echo ''; - echo ''; + echo ''; - $css_txt = 'anl_variabla_line'; - echo ''; - echo ''; + + + # variabla - tabela en odgovor + echo ''; + if ($_sub_question_col) { - echo ''; + echo ''; } + if (self::$_SHOW_LEGENDA) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; - echo ''; + + echo ''; + + echo ''; + echo ''; if ($additional_field) { - echo ''; - echo ''; + echo ''; + echo ''; } + echo ''; - $cssBack = "anl_bck_0_0 "; + $_variables = $grid['variables']; - echo ''; - echo ''; + + echo ''; + + echo ''; + if ( $_sub_question_col ) { - echo ''; + echo ''; } + if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); @@ -2637,8 +2913,8 @@ class SurveyAnalysis { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''; //$_tip - echo ''; // $_oblika + echo ''; //$_tip + echo ''; // $_oblika } //nastavitve iz baze za ureditev pravilnega izrisa analize za tabelo s trakom @@ -2646,150 +2922,193 @@ class SurveyAnalysis { $spremenljivkaParams = new enkaParameters($row['params']); $diferencial_trak = ($spremenljivkaParams->get('diferencial_trak') ? $spremenljivkaParams->get('diferencial_trak') : 0); $diferencial_trak_starting_num = ($spremenljivkaParams->get('diferencial_trak_starting_num') ? $spremenljivkaParams->get('diferencial_trak_starting_num') : 0); - //nastavitve iz baze za ureditev pravilnega izrisa analize za tabelo s trakom if (count($spremenljivka['options']) > 0) { foreach ( $spremenljivka['options'] as $key => $kategorija) { - if($diferencial_trak){ //ce je trak, je potrebno naslove stolpcev spremeniti v vrednosti na traku + + if($diferencial_trak){ //ce je trak, je potrebno naslove stolpcev spremeniti v vrednosti na traku $_label = $diferencial_trak_starting_num; $diferencial_trak_starting_num++; - }else{ + } + else{ // misinge imamo zdruzene $_label = $kategorija; } - echo ''; + echo ''; } } - echo ''; - echo ''; - echo ''; - if ($additional_field) { + echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + if ($additional_field) { + echo ''; + echo ''; } + echo ''; $part=null; - #zlopamo skozi gride - if (count($spremenljivka['grids']) > 0) - foreach ($spremenljivka['grids'] AS $gid => $grid) { - - # za dvojne gride - if ((int)$grid['part'] > 0) { - if ($part == null || $part == $grid['part'] ) { - $part_css = ''; - } else { - $part_css = ' anl_double_bt '; - } - $part = $grid['part']; - } - else { - $part_css = ''; - } - - $cssBack = "anl_bck_desc_2 "; - # zloopamo skozi variable - if (count($grid['variables']) > 0) - foreach ($grid['variables'] AS $vid => $variable ) { - $_sequence = $variable['sequence']; - #popotrebi izpisujemo samo veljavne - if ((count($spremenljivka['grids']) <= AUTO_HIDE_ZERRO_VALUE || - (self::$_FREQUENCYS[$_sequence]['allCnt'] - self::$_FREQUENCYS[$_sequence]['invalidCnt']) > 0)) - if ($variable['other'] != true) { - echo ''; - if ($_sub_question_col) { - echo ''; - } else { - echo ''; - } - if (self::$_SHOW_LEGENDA) { - echo ''; - echo ''; - } - # za odklon in povprečje - $sum_xi_fi=0; - $N = 0; - $div=0; - if (count($spremenljivka['options']) > 0) { - foreach ( $spremenljivka['options'] as $key => $kategorija) { - if ($additional_field) { # za odklon in povprečje - $xi = $key; - $fi = self::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt']; - $sum_xi_fi += $xi * $fi ; - $N += $fi; - } - echo ''; - - - } - } - // suma - echo ''; - // zamenjano veljavni ustrezni - echo ''; - echo ''; - if ($additional_field) { # za odklon in povprečje - # povprečje - $avg = ($N > 0) ? $sum_xi_fi / $N : 0; - #standardna diviacija - $div = 0; - $sum_pow_xi_fi_avg = 0; - if (count($spremenljivka['options']) > 0) { - foreach ( $spremenljivka['options'] as $xi => $kategorija) { - $fi = self::$_FREQUENCYS[$_sequence]['valid'][$xi]['cnt']; - $sum_pow_xi_fi_avg += pow(($xi - $avg),2) * $fi; - } - } - $div = (($N -1) > 0) ? sqrt($sum_pow_xi_fi_avg / ($N -1)) : 0; - echo ''; - echo ''; - } - echo ''; - - } else { - # immamo polje drugo - $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); - } - } + foreach ($spremenljivka['grids'] AS $gid => $grid) { + + # za dvojne gride + if (isset($grid['part']) && (int)$grid['part'] > 0) { + if ($part == null || $part == $grid['part'] ) { + $part_css = ''; + } else { + $part_css = ' anl_double_bt '; + } + $part = $grid['part']; + } + else { + $part_css = ''; + } + + + # zloopamo skozi variable + if (count($grid['variables']) > 0){ + + foreach ($grid['variables'] AS $vid => $variable ) { + + $_sequence = $variable['sequence']; + + $invalid_count = isset(self::$_FREQUENCYS[$_sequence]['invalidCnt']) ? self::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0; + $all_count = isset(self::$_FREQUENCYS[$_sequence]['allCnt']) ? self::$_FREQUENCYS[$_sequence]['allCnt'] : 0; + + + #popotrebi izpisujemo samo veljavne + if (count($spremenljivka['grids']) <= AUTO_HIDE_ZERRO_VALUE || ($all_count-$invalid_count) > 0){ + + if ($variable['other'] != true) { + echo ''; + + if ($_sub_question_col) { + echo ''; + + echo ''; + } + else { + echo ''; + } + + if (self::$_SHOW_LEGENDA) { + echo ''; + echo ''; + } + + # za odklon in povprečje + $sum_xi_fi=0; + $N = 0; + $div=0; + if (count($spremenljivka['options']) > 0) { + + foreach ( $spremenljivka['options'] as $key => $kategorija) { + if ($additional_field) { # za odklon in povprečje + $xi = $key; + $fi = self::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt']; + $sum_xi_fi += $xi * $fi ; + $N += $fi; + } + + echo ''; + } + } + + // suma + echo ''; + + // zamenjano veljavni ustrezni + echo ''; + + echo ''; + + if ($additional_field) { # za odklon in povprečje + + # povprečje + $avg = ($N > 0) ? $sum_xi_fi / $N : 0; + + #standardna diviacija + $div = 0; + $sum_pow_xi_fi_avg = 0; + + if (count($spremenljivka['options']) > 0) { + foreach ( $spremenljivka['options'] as $xi => $kategorija) { + $fi = self::$_FREQUENCYS[$_sequence]['valid'][$xi]['cnt']; + $sum_pow_xi_fi_avg += pow(($xi - $avg),2) * $fi; + } + } + + $div = (($N -1) > 0) ? sqrt($sum_pow_xi_fi_avg / ($N -1)) : 0; + + echo ''; + + echo ''; + } + + echo ''; + } + } + else { + # immamo polje drugo + $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); + } + } + } + } } + echo '
'; echo self::showVariable($spid, $spremenljivka['variable']); echo ''; + + echo ''; echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; + + echo '
'; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,$_from); + echo '
'; echo '
'.$lang['srv_analiza_opisne_subquestion'].''.$lang['srv_analiza_opisne_subquestion'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_answers']; - echo ' (/ %)'; - echo ' (/ %)'; - echo ' (f / %)'; - echo ''.$lang['srv_analiza_opisne_valid'].''.$lang['srv_analiza_num_units'].''; + echo $lang['srv_analiza_opisne_answers']; + self::showFreqPercent($spid); + echo ''.$lang['srv_analiza_opisne_valid'].''.$lang['srv_analiza_num_units'].''.$lang['srv_analiza_opisne_povprecje'].''.$lang['srv_analiza_opisne_odklon'].''.$lang['srv_analiza_opisne_povprecje'].''.$lang['srv_analiza_opisne_odklon'].'
 
   '.$_label.''.$_label.''.$lang['srv_anl_suma1'].'  '.$lang['srv_anl_suma1'].'  
'; - - echo $variable['variable']; - echo ''; - echo $variable['naslov']; + # zlopamo skozi gride + if (count($spremenljivka['grids']) > 0){ - // dodatek desne strani sem. diferenciala - echo ($spremenljivka['enota'] == 1) ? ' - '.$variable['naslov2'] : ''; - echo ' '.$_tip.''.$_oblika.''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
0 ? ' vkey="'.$key.'"' : '') - .' style="padding:5px 0px;">'.self::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt'].'
'; - $_percent = (self::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ) ? self::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt'] * 100 / self::$_FREQUENCYS[$_sequence]['validCnt'] : 0; - echo self::formatNumber($_percent,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%'); - echo '
'; - echo '
'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
'.((int)self::$_FREQUENCYS[$_sequence]['validCnt']).'
'.self::formatNumber(100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').'
'; - echo '
'; - echo (int)self::$_FREQUENCYS[$_sequence]['validCnt']; - echo ''.(int)self::$_FREQUENCYS[$_sequence]['allCnt'].''; - echo self::formatNumber($avg,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; - echo self::formatNumber($div,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''); - echo '
'; + echo $variable['variable']; + echo ''; + echo $variable['naslov']; + + // dodatek desne strani sem. diferenciala + echo (isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1) ? ' - '.$variable['naslov2'] : ''; + echo ''.$_tip.''.$_oblika.''; + + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + + echo ' '; + + echo ' '; + echo '
0 ? ' vkey="'.$key.'"' : '') + .'>'.self::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt'].'
'; + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt']) && self::$_FREQUENCYS[$_sequence]['validCnt'] > 0) + $_percent = self::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt'] * 100 / self::$_FREQUENCYS[$_sequence]['validCnt']; + else + $_percent = 0; + echo self::formatNumber($_percent,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%'); + echo '
'; + + echo '
'; + + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo '
'.(isset(self::$_FREQUENCYS[$_sequence]['validCnt']) ? (int)self::$_FREQUENCYS[$_sequence]['validCnt'] : 0).'
'.self::formatNumber(100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').'
'; + + echo '
'; + echo (isset(self::$_FREQUENCYS[$_sequence]['validCnt']) ? (int)self::$_FREQUENCYS[$_sequence]['validCnt'] : '0'); + echo ''.(int)self::$_FREQUENCYS[$_sequence]['allCnt'].''; + echo self::formatNumber($avg,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + echo self::formatNumber($div,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''); + echo '
'; # izpišemo še tekstovne odgovore za polja drugo @@ -2803,7 +3122,6 @@ class SurveyAnalysis { if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } @@ -2824,7 +3142,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -2839,116 +3159,146 @@ class SurveyAnalysis { $_sub_question_col = 6; if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); - echo ''; - echo ''; - echo ''; + } + } + echo '
'; + echo ''; + + echo ''; + + echo ''; - echo ''; + echo ''; - $css_txt = 'anl_variabla_line'; - echo ''; - echo ''; + + + echo ''; + if ($_sub_question_col) { - echo ''; + echo ''; } + if (self::$_SHOW_LEGENDA) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - #št. enot - echo ''; + + echo ''; + + # št. enot + echo ''; + echo ''; - #naslovi podskupin - $cssBack = "anl_bck_0_0 "; + + + # naslovi podskupin $_variables = $grid['variables']; - echo ''; - echo ''; + + echo ''; + + echo ''; + if ( $_sub_question_col ) { - echo ''; + echo ''; } + if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - } else { + } + else { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''; //$_tip - echo ''; // $_oblika + + echo ''; //$_tip + echo ''; // $_oblika } - echo ''; - echo ''; - #št. enot - echo ''; + + echo ''; + echo ''; + + #št. enot + echo ''; echo ''; + # naslovi variabel - $cssBack = "anl_bck_0_0 "; $_variables = $grid['variables']; - echo ''; - echo ''; + + echo ''; + + echo ''; + if ( $_sub_question_col ) { - echo ''; + echo ''; } + if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - } else { + } + else { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''; //$_tip - echo ''; // $_oblika + + echo ''; //$_tip + echo ''; // $_oblika } + if (count($spremenljivka['options']) > 0) { foreach ( $spremenljivka['options'] as $key => $kategorija) { // misinge imamo zdruzene $_label = $kategorija; - echo ''; + echo ''; } } - echo ''; - echo ''; - echo ''; - + echo ''; + echo ''; + echo ''; if (count($spremenljivka['options']) > 0) { foreach ( $spremenljivka['options'] as $key => $kategorija) { // misinge imamo zdruzene $_label = $kategorija; - echo ''; + echo ''; } } - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; # št enot - echo ''; + echo ''; echo ''; + + #zloopamo skozi gride in nardimo $_tmp_table = array(); $_part = 1; @@ -2982,7 +3332,7 @@ class SurveyAnalysis { $_tmp_table[$grid['part']][$cnt]['variables'][] = array('key'=>$key, 'freq'=>self::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt'],'percent'=>$_percent); } } - $_tmp_table[$grid['part']][$cnt]['seq'] = $variable['seq']; + $_tmp_table[$grid['part']][$cnt]['seq'] = (isset($variable['seq']) ? $variable['seq'] : null); $_tmp_table[$grid['part']][$cnt]['vr_id'] = $variable['vr_id']; $_tmp_table[$grid['part']][$cnt]['variable'] = substr($variable['variable'], 0, strrpos($variable['variable'], "_")); $_tmp_table[$grid['part']][$cnt]['naslov'] = $variable['naslov']; @@ -3015,52 +3365,66 @@ class SurveyAnalysis { #zlopamo skozi gride if (count($_tmp_table[1]) > 0) { foreach ($_tmp_table[1] AS $tkey => $grid) { - $cssBack = "anl_bck_desc_2 "; + echo ''; + if ($_sub_question_col) { - echo ''; - echo ''; - } else { - echo ''; + echo ''; + echo ''; + } + else { + echo ''; } + if (self::$_SHOW_LEGENDA) { - echo ''; - echo ''; + echo ''; + echo ''; } # zloopamo skozi variable if (count($grid['variables']) > 0) { + foreach ($grid['variables'] AS $vid => $variable ) { #mg_inspectž - echo ''; } // end foreach variables } // end if (count($grid['variables']) > 0) + + // suma - echo ''; - // povpreje - echo ''; // odklon - echo ''; @@ -3068,43 +3432,54 @@ class SurveyAnalysis { $_right_grid = $_tmp_table[2][$tkey]; if (count($_right_grid['variables']) > 0) { foreach ($_right_grid['variables'] AS $vid => $variable ) { - echo ''; } // end foreach variables } // end if (count($grid['variables']) > 0) + // suma - echo ''; // povpreje - echo ''; # odklon - echo ''; # št enot - echo ''; + echo ''; } // end foreach ($_tmp_table[1] AS $tkey => $grid) } @@ -3121,9 +3496,7 @@ class SurveyAnalysis { if (self :: $show_spid_div == true) { echo ''; - echo '
'; } - } /** Izriše multi number odgovore. izpiše samo povprečja @@ -3143,7 +3516,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -3157,21 +3532,24 @@ class SurveyAnalysis { $_cols = $spremenljivka['cnt_all'] / $spremenljivka['cnt_grids']; if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); # tekst vprašanja - echo '
'; echo self::showVariable($spid, $spremenljivka['variable']); echo ''; + + echo ''; echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; + + echo '
'; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,$_from); + echo '
'; echo '
'.$lang['srv_analiza_opisne_subquestion'].''.$lang['srv_analiza_opisne_subquestion'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_answers']; - echo ' (/ %)'; - echo ' (/ %)'; - echo ' (f / %)'; - echo ' '; + echo $lang['srv_analiza_opisne_answers']; + self::showFreqPercent($spid); + echo '
 
   '.($spremenljivka['double'][1]['subtitle'] == '' ? $lang['srv_grid_subtitle_def'].' 1' : $spremenljivka['double'][1]['subtitle']).''.($spremenljivka['double'][2]['subtitle'] == '' ? $lang['srv_grid_subtitle_def'].' 2' : $spremenljivka['double'][2]['subtitle']).' '.($spremenljivka['double'][1]['subtitle'] == '' ? $lang['srv_grid_subtitle_def'].' 1' : $spremenljivka['double'][1]['subtitle']).''.($spremenljivka['double'][2]['subtitle'] == '' ? $lang['srv_grid_subtitle_def'].' 2' : $spremenljivka['double'][2]['subtitle']).'
 
   '.$_label.''.$_label.''.$lang['srv_anl_suma1'].''.$lang['srv_analiza_opisne_povprecje'].''.$lang['srv_analiza_opisne_odklon'].''.$lang['srv_anl_suma1'].''.$lang['srv_analiza_opisne_povprecje'].''.$lang['srv_analiza_opisne_odklon'].''.$_label.''.$_label.''.$lang['srv_anl_suma1'].''.$lang['srv_analiza_opisne_povprecje'].''.$lang['srv_analiza_opisne_odklon'].''.$lang['srv_anl_suma1'].''.$lang['srv_analiza_opisne_povprecje'].''.$lang['srv_analiza_opisne_odklon'].''.$lang['srv_analiza_num_units'].''.$lang['srv_analiza_num_units'].'
'.$grid['variable'].''.$grid['naslov'].' '.$grid['variable'].''.$grid['naslov'].''.$_tip.''.$_oblika.''.$_tip.''.$_oblika.''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
0 ? ' gid="'.$variable['key'].'_1"' : '').'>'.$variable['freq'].'
'; - echo self::formatNumber($variable['percent'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%'); - echo '
'; + echo '
'; + + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo '
0 ? ' gid="'.$variable['key'].'_1"' : '').'>'.$variable['freq'].'
'; + echo self::formatNumber($variable['percent'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%'); + echo '
'; + echo '
'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
'.(int)$grid['suma'].'
'.self::formatNumber(100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').'
'; + echo '
'; + + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo '
'.(int)$grid['suma'].'
'.self::formatNumber(100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').'
'; + echo '
'; + // povprecje + echo ''; echo self::formatNumber($grid['avg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); echo ''; + echo ''; echo self::formatNumber($grid['div'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); echo ''; + + echo ''; + #mg_inspect - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
0 ? ' gid="'.$variable['key'].'_2"' : '').'>'.$variable['freq'].'
'; - echo self::formatNumber($variable['percent'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%'); - echo '
'; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo '
0 ? ' gid="'.$variable['key'].'_2"' : '').'>'.$variable['freq'].'
'; + echo self::formatNumber($variable['percent'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%'); + echo '
'; + echo '
'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
'.(int)$_right_grid['suma'].'
'.self::formatNumber(100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').'
'; + echo '
'; + + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo' '; + echo ' '; + echo ' '; + echo '
'.(int)$_right_grid['suma'].'
'.self::formatNumber(100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%').'
'; + echo '
'; + echo ''; echo self::formatNumber($_right_grid['avg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); echo ''; + echo ''; echo self::formatNumber($_right_grid['div'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); echo ''; + echo ''; echo $grid['allCnt']; echo '
'; + echo '
'; + # naslovna vrstica - echo ''; - #variabla - echo ''; + + # variabla + echo ''; - #odgovori - echo ''; + echo ''; - echo ''; - #variabla - echo ''; + + + # variabla + echo ''; - #odgovori - echo ''; + #odgovori + echo ''; if (self::$_SHOW_LEGENDA){ - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; + + echo ''; echo ''; // konec naslovne vrstice + $_answersOther = array(); $_grids_count = count($spremenljivka['grids']); if ($_grids_count > 0) { + # naslovna vrstica $_row = $spremenljivka['grids'][0]; - echo ''; - echo ''; - echo ''; + + echo ''; + + echo ''; + echo ''; if (self::$_SHOW_LEGENDA){ - echo ''; - echo ''; + echo ''; + echo ''; } if (count($_row['variables']) > 0 ) foreach ($_row['variables'] AS $rid => $_col ){ $_sequence = $_col['sequence']; # id kolone z podatki if ($_col['other'] != true) { - echo ''; - } else { + } + else { $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); } } echo ''; - $_css_bck = 'anl_bck_desc_2 anl_ac anl_bt_dot '; + + $last = 0; - //anl_bck_desc_2 anl_bl anl_br anl_variabla_sub + foreach ($spremenljivka['grids'] AS $gid => $grid) { $_variables_count = count($grid['variables']); - echo ''; - echo ''; + + echo ''; - echo ''; if (self::$_SHOW_LEGENDA){ - echo ''; - echo ''; + echo ''; + echo ''; } if ($_variables_count > 0) { @@ -3251,14 +3646,14 @@ class SurveyAnalysis { if ($variable['other'] != true) { # tabela z navedbami - echo ''; - + echo ''; } } } + echo ''; } } @@ -3266,7 +3661,6 @@ class SurveyAnalysis { if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } @@ -3287,7 +3681,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -3302,87 +3698,104 @@ class SurveyAnalysis { # ali izpisujemo enoto: $show_enota = true; - if ((int)$spremenljivka['enota'] == 0 && self::$_HEADERS[$spid]['cnt_all'] == 1) { + if (!isset($spremenljivka['enota']) || ((int)$spremenljivka['enota'] == 0 && self::$_HEADERS[$spid]['cnt_all'] == 1)) { $show_enota = false; } # ugotovimo koliko imamo kolon - if (count($spremenljivka['grids']) > 0) + if (count($spremenljivka['grids']) > 0){ foreach ($spremenljivka['grids'] AS $gid => $grid) { - $_clmn_cnt[$gid] = $grid['cnt_vars']-$grid['cnt_other']; - if (count($grid['variables']) > 0) - foreach ($grid['variables'] AS $vid => $variable) { - $_sequence = $variable['sequence']; - $_approp_cnt[$gid] = max($_approp_cnt[$gid], self::$_FREQUENCYS[$_sequence]['allCnt']); - # za povprečje - $sum_xi_fi=0; - $N = 0; - $div=0; - $min = null; - $max = null; + if(isset($grid['cnt_other'])) + $_clmn_cnt[$gid] = $grid['cnt_vars'] - $grid['cnt_other']; + else + $_clmn_cnt[$gid] = $grid['cnt_vars']; + + if (is_countable($grid['variables']) && count($grid['variables']) > 0){ - if (count(self::$_FREQUENCYS[$_sequence]['valid']) > 0 ) { - foreach (self::$_FREQUENCYS[$_sequence]['valid'] AS $xi => $_validFreq) { + foreach ($grid['variables'] AS $vid => $variable) { + $_sequence = $variable['sequence']; - # popravimo morebitne . in - - $fnkey = (float)$xi; + if(isset($_approp_cnt[$gid])) + $_approp_cnt[$gid] = max($_approp_cnt[$gid], self::$_FREQUENCYS[$_sequence]['allCnt']); + else + $_approp_cnt[$gid] = self::$_FREQUENCYS[$_sequence]['allCnt']; - if (is_numeric($xi) && is_numeric($fnkey) && trim($fnkey) != '') { - $fi = $_validFreq['cnt']; - $sum_xi_fi += $xi * $fi ; - $N += $fi; - - $min = $min != null ? min($min,$fnkey) : $fnkey; - $max = $max != null ? max($max,$fnkey) : $fnkey; + # za povprečje + $sum_xi_fi=0; + $N = 0; + $div=0; + $min = null; + $max = null; + + if (count(self::$_FREQUENCYS[$_sequence]['valid']) > 0 ) { + foreach (self::$_FREQUENCYS[$_sequence]['valid'] AS $xi => $_validFreq) { + + # popravimo morebitne . in - + $fnkey = (float)$xi; + + if (is_numeric($xi) && is_numeric($fnkey) && trim($fnkey) != '') { + $fi = $_validFreq['cnt']; + $sum_xi_fi += $xi * $fi ; + $N += $fi; + + $min = $min != null ? min($min,$fnkey) : $fnkey; + $max = $max != null ? max($max,$fnkey) : $fnkey; + } + } } - } - } - # povprešje - $avg = ($N > 0) ? $sum_xi_fi / $N : 0; + # povprešje + $avg = ($N > 0) ? $sum_xi_fi / $N : 0; - self::$_FREQUENCYS[$_sequence]['validAvg'] = $avg; - self::$_FREQUENCYS[$_sequence]['validMin'] = $min; - self::$_FREQUENCYS[$_sequence]['validMax'] = $max; + self::$_FREQUENCYS[$_sequence]['validAvg'] = $avg; + self::$_FREQUENCYS[$_sequence]['validMin'] = $min; + self::$_FREQUENCYS[$_sequence]['validMax'] = $max; - #standardna diviacija - $div = 0; - $sum_pow_xi_fi_avg = 0; - if (count(self::$_FREQUENCYS[$_sequence]['valid']) > 0 ) { - foreach (self::$_FREQUENCYS[$_sequence]['valid'] AS $xi => $_validFreq) { - $fi = $_validFreq['cnt']; - $sum_pow_xi_fi_avg += pow(($xi - $avg),2) * $fi; - } - } - self::$_FREQUENCYS[$_sequence]['validDiv'] = (($N -1) > 0) ? sqrt($sum_pow_xi_fi_avg / ($N -1)) : 0; + #standardna diviacija + $div = 0; + $sum_pow_xi_fi_avg = 0; + if (count(self::$_FREQUENCYS[$_sequence]['valid']) > 0 ) { + foreach (self::$_FREQUENCYS[$_sequence]['valid'] AS $xi => $_validFreq) { + $fi = $_validFreq['cnt']; + $sum_pow_xi_fi_avg += pow(($xi - $avg),2) * $fi; + } + } + self::$_FREQUENCYS[$_sequence]['validDiv'] = (($N -1) > 0) ? sqrt($sum_pow_xi_fi_avg / ($N -1)) : 0; - #določimo še polja drugo za kasnejši prikaz - if ($variable['other'] == true) { - $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); + #določimo še polja drugo za kasnejši prikaz + if ($variable['other'] == true) { + $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); + } + } } } } + $isSingleGrid = ($spremenljivka['cnt_all'] == $spremenljivka['cnt_grids']) ? true : false; # če je cnt_all == cnt_grids pomeni da imamo samo 1 grid if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); + # tekst vprašanja - echo '
'; + echo '
'; echo self::showVariable($spid, $spremenljivka['variable']); echo ''.$spremenljivka['naslov'].''; + + # odgovori + echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); @@ -3183,66 +3561,83 @@ class SurveyAnalysis { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; + + + echo '
'; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,$_from); + echo '
'; //options echo '
'.$lang['srv_analiza_opisne_subquestion'] . ''.$lang['srv_analiza_opisne_subquestion'] . ''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''. $lang['srv_analiza_sums_average'] .''. $lang['srv_analiza_sums_average'] .'
  
  '; - // echo $_col['variable']; + echo ''; echo $_col['naslov']; echo '
'; + + echo '
'; echo $grid['variable']; echo ''; + + echo ''; echo $grid['naslov']; echo ''.$_tip.''.$_oblika.''.$_tip.''.$_oblika.''; - echo self::formatNumber(self::$_FREQUENCYS[$_sequence]['average'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; + echo self::formatNumber(isset(self::$_FREQUENCYS[$_sequence]['average'])?self::$_FREQUENCYS[$_sequence]['average']:0,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo '
'; + echo '
'; + # naslovna vrstica - echo ''; + echo ''; + #variabla - echo ''; + #odgovori - echo ''; + echo ''; - echo ''; - #variabla - echo ''; + + + # variabla + echo ''; - if ($show_enota) { - echo ''; - } else { # če mamo number brez labele izrisujemo drugače - echo ''; } if (self::$_SHOW_LEGENDA && $inline_legenda){ - echo ''; - echo ''; - } - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + } + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + $_answersOther = array(); $_grupa_cnt = 0; if (count($spremenljivka['grids']) > 0) @@ -3450,71 +3873,72 @@ class SurveyAnalysis { if ($variable['other'] != true) { $_sequence = $variable['sequence']; - $cssBrdr = (int)$grid['new_grid'] == 1 && $isSingleGrid == false? ' anl_double_bt' : ' anl_bt_dot'; - echo ''; - if (!$show_enota && $spremenljivka['tip'] == 7) { - echo '' ; - if (!$show_enota && $spremenljivka['tip'] == 7) { - echo '' ; + if (self::$_SHOW_LEGENDA && $inline_legenda) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - } else { + } + else { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + + echo ''; echo ''; - } else { + } + else { $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); } + $grid['new_grid'] = false; } @@ -3533,17 +3957,17 @@ class SurveyAnalysis { if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } + /** Izriše number odgovore v vertikalni obliki * * @param unknown_type $spid */ static function sumNumberVertical($spid,$_from) { global $lang; - $spremenljivka = self::$_HEADERS[$spid]; + $spremenljivka = self::$_HEADERS[$spid]; # preverimo ali prikazujemo spremenljivko, glede na veljavne odgovore in nastavitev $only_valid = 0; @@ -3553,7 +3977,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -3568,18 +3994,27 @@ class SurveyAnalysis { # ali izpisujemo enoto: $show_enota = true; - if (((int)$spremenljivka['enota'] == 0 && self::$_HEADERS[$spid]['cnt_all'] == 1) || $spremenljivka['tip'] == 22 || $spremenljivka['tip'] == 25) { + if (((!isset($spremenljivka['enota']) || (int)$spremenljivka['enota'] == 0) && self::$_HEADERS[$spid]['cnt_all'] == 1) || $spremenljivka['tip'] == 22 || $spremenljivka['tip'] == 25) { $show_enota = false; } $sum_avg = 0; # ugotovimo koliko imamo kolon if (count($spremenljivka['grids']) > 0) foreach ($spremenljivka['grids'] AS $gid => $grid) { - $_clmn_cnt[$gid] = $grid['cnt_vars']-$grid['cnt_other']; + + if(isset($grid['cnt_other'])) + $_clmn_cnt[$gid] = $grid['cnt_vars']-$grid['cnt_other']; + else + $_clmn_cnt[$gid] = $grid['cnt_vars']; + if (count($grid['variables']) > 0) foreach ($grid['variables'] AS $vid => $variable) { $_sequence = $variable['sequence']; - $_approp_cnt[$gid] = max($_approp_cnt[$gid], self::$_FREQUENCYS[$_sequence]['allCnt']); + + if(isset($_approp_cnt[$gid])) + $_approp_cnt[$gid] = max($_approp_cnt[$gid], self::$_FREQUENCYS[$_sequence]['allCnt']); + else + $_approp_cnt[$gid] = self::$_FREQUENCYS[$_sequence]['allCnt']; # za povprečje $sum_xi_fi=0; @@ -3630,22 +4065,27 @@ class SurveyAnalysis { } if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); + # tekst vprašanja - echo '
'; + echo ''; echo self::showVariable($spid, $spremenljivka['variable']); echo ''.$spremenljivka['naslov'].''; + echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); @@ -3399,42 +3812,52 @@ class SurveyAnalysis { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; + echo '
'; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,$_from); + echo '
'; echo '
'; + echo ''; if ($spremenljivka['tip'] == 20 || $spremenljivka['tip'] == 7) { echo $lang['srv_analiza_opisne_subquestion']; - } else { + } + else { echo $lang['srv_analiza_opisne_variable_text']; } echo''; - echo ' '; + } + else { # če mamo number brez labele izrisujemo drugače + echo ''; + echo ''; echo''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].'' . $lang['srv_analiza_opisne_m'] . '' . $lang['srv_analiza_num_units'] . '' . $lang['srv_analiza_opisne_povprecje'] . '' . $lang['srv_analiza_opisne_odklon'].'' . $lang['srv_analiza_opisne_min'] . '' . $lang['srv_analiza_opisne_max'] . ''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].'' . $lang['srv_analiza_opisne_m'] . '' . $lang['srv_analiza_num_units'] . '' . $lang['srv_analiza_opisne_povprecje'] . '' . $lang['srv_analiza_opisne_odklon'].'' . $lang['srv_analiza_opisne_min'] . '' . $lang['srv_analiza_opisne_max'] . '
' ; - } else { - echo '' ; - } - echo $_css_double_line; + + echo '' ; # za number (7) ne prikazujemo variable if ($spremenljivka['tip'] != 7 ) { echo $variable['variable']; } echo '' ; - } else { - echo '' ; - } + echo '' ; if ($show_enota) { # če ni enojni grid if ($isSingleGrid == false) { - echo (count($grid['variables']) > 1 && $spremenljivka['tip'] == 20 ? $grid['naslov'] . ' - ' : '' ).$variable['naslov']; - } else { - # če je enojni, izpišemo labele variable - echo $grid['naslov']; - } - } else { - echo ' '; - } + echo (count($grid['variables']) > 1 && $spremenljivka['tip'] == 20 ? $grid['naslov'] . ' - ' : '' ).$variable['naslov']; + } + else { + # če je enojni, izpišemo labele variable + echo $grid['naslov']; + } + } + echo ''.$_tip.'' .$_oblika. ''.$_tip.'' .$_oblika. ''; + + echo ''; echo (int)self::$_FREQUENCYS[$_sequence]['validCnt']; echo ''; + + echo ''; echo (int)$_approp_cnt[$gid]; echo ''; + + echo ''; echo self::formatNumber(self::$_FREQUENCYS[$_sequence]['validAvg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); echo ''; + + echo ''; echo self::formatNumber(self::$_FREQUENCYS[$_sequence]['validDiv'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''); echo ''; + + echo ''; echo (int)self::$_FREQUENCYS[$_sequence]['validMin']; - echo ''; + echo ''; echo (int)self::$_FREQUENCYS[$_sequence]['validMax'];; echo '
'; + echo '
'; + # naslovna vrstica - echo ''; + echo ''; + #variabla - echo ''; + $num_cols = 7 + ($spremenljivka['tip'] == 18 ? 1 : 0); + #odgovori - echo ''; + echo ''; - echo ''; - #variabla - echo ''; + + # variabla - število + echo ''; - + echo ''; - } else { # če mamo number brez labele izrisujemo drugače - echo ''; - } + } + echo''; if (self::$_SHOW_LEGENDA && $inline_legenda){ - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; - echo ''; + + echo ''; + echo ''; + echo ''; if ($spremenljivka['tip'] == 18) { - echo ''; + echo ''; } - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + $_answersOther = array(); $_grupa_cnt = 0; if (count($spremenljivka['grids']) > 0) @@ -3715,35 +4160,26 @@ class SurveyAnalysis { if ($variable['other'] != true) { $_sequence = $variable['sequence']; - $cssBrdr = (int)$grid['new_grid'] == 1 ? ' anl_double_bt' : ' anl_bt_dot'; - echo ''; - if (!$show_enota && $spremenljivka['tip'] == 7) { - echo '' ; - if ((!$show_enota && $spremenljivka['tip'] == 7 ) || $spremenljivka['tip'] == 22 || $spremenljivka['tip'] == 25) { - echo '' ; + if (self::$_SHOW_LEGENDA && $inline_legenda) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); @@ -3752,68 +4188,85 @@ class SurveyAnalysis { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; - echo ''; + if ($spremenljivka['tip'] == 18) { $_percent = ($sum_avg > 0 ) ? 100 * self::$_FREQUENCYS[$_sequence]['validAvg'] / $sum_avg : 0; - echo ''; } - echo ''; - echo ''; + + echo ''; echo ''; - } else { + } + else { $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); } + $grid['new_grid'] = false; } } } if ($spremenljivka['tip'] == 18) { - $css_back = 'anl_bck_text_1 anl_bt'; - echo ''; - echo ''; + + echo ''; - echo ''; - - if (self::$_SHOW_LEGENDA && $inline_legenda){ - echo ''; - echo ''; - } - echo ''; - echo ''; - echo ''; - # skupna suma - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + + echo ''; + + if (self::$_SHOW_LEGENDA && $inline_legenda){ + echo ''; + echo ''; + } + + echo ''; + echo ''; + + echo ''; + + # skupna suma + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; } + echo '
'; + echo ''; echo self::showVariable($spid, $spremenljivka['variable']); echo ''.$spremenljivka['naslov'].''; + echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); @@ -3662,44 +4102,49 @@ class SurveyAnalysis { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; + + echo '
'; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,$_from); + echo '
'; echo '
'; if ($show_enota == true) { - echo ''; if ($spremenljivka['tip'] == 20 || $spremenljivka['tip'] == 7) { echo $lang['srv_analiza_opisne_subquestion']; - } else { + } + else { echo $lang['srv_analiza_opisne_variable_text']; } - echo''; - echo ' '; - echo''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].'' . $lang['srv_analiza_opisne_m'] . '' . $lang['srv_analiza_num_units'] . '' . $lang['srv_analiza_opisne_povprecje'] . '' . $lang['srv_analiza_opisne_m'] . '' . $lang['srv_analiza_num_units'] . '' . $lang['srv_analiza_opisne_povprecje'] . '%%' . $lang['srv_analiza_opisne_odklon'].'' . $lang['srv_analiza_opisne_min'] . '' . $lang['srv_analiza_opisne_max'] . '' . $lang['srv_analiza_opisne_odklon'].'' . $lang['srv_analiza_opisne_min'] . '' . $lang['srv_analiza_opisne_max'] . '
' ; - } else { - echo '' ; - } - echo $_css_double_line; + + echo '' ; # za number (7) ne prikazujemo variable if ($spremenljivka['tip'] != 7 || ($show_enota == true && $spremenljivka['tip'] == 7 )) { if ($variable['variable'] == $spremenljivka['variable']) { echo $variable['variable'].'_1'; - } else { + } + else { echo $variable['variable']; } } echo '' ; - } else { - echo '' ; - } + + echo '' ; if ($show_enota) { echo (count($grid['variables']) > 1 && $spremenljivka['tip'] == 20 ? $grid['naslov'] . ' - ' : '' ).$variable['naslov']; - } else { - echo ' '; - } + } echo ''.$_tip.'' .$_oblika. ''.$_tip.'' .$_oblika. ''; + + echo ''; echo (int)self::$_FREQUENCYS[$_sequence]['validCnt']; echo ''; + + echo ''; echo (int)$_approp_cnt[$gid]; echo ''; + + echo ''; echo self::formatNumber(self::$_FREQUENCYS[$_sequence]['validAvg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); echo ''; + echo ''; echo self::formatNumber($_percent,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),'%'); echo ''; + + echo ''; echo self::formatNumber(self::$_FREQUENCYS[$_sequence]['validDiv'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''); echo ''; + + echo ''; echo (int)self::$_FREQUENCYS[$_sequence]['validMin']; - echo ''; + echo ''; echo (int)self::$_FREQUENCYS[$_sequence]['validMax'];; echo '
'; + echo '
'; echo $lang['srv_anl_suma1']; echo '     '; - echo self::formatNumber($sum_avg,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''); - echo '100%   
//'; + echo self::formatNumber($sum_avg,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''); + echo '100%///
'; + # izpišemo še tekstovne odgovore za polja drugo if (count($_answersOther) > 0 && self::$_FILTRED_OTHER) { foreach ($_answersOther AS $oAnswers) { @@ -3825,7 +4278,6 @@ class SurveyAnalysis { if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } @@ -3834,33 +4286,38 @@ class SurveyAnalysis { */ static function sumNagovor($spid,$_from) { global $lang; + $spremenljivka = self::$_HEADERS[$spid]; + $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - $cssBack = "anl_bck_freq_1 "; if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); - echo ''; - echo ''; - echo '
'; + echo ''; + + echo ''; + + echo ''; - echo ''; + echo ''; + echo '
'; echo self::showVariable($spid, $spremenljivka['variable']); echo ''.$spremenljivka['naslov'].''; + + echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } @@ -3873,12 +4330,12 @@ class SurveyAnalysis { global $lang; $spremenljivka = self::$_HEADERS[$spid]; - $lokacija=false; - $heatmap=false; - if($spremenljivka['tip'] == 26) - $lokacija=true; - else if ($spremenljivka['tip'] == 27) - $heatmap=true; + $lokacija=false; + $heatmap=false; + if($spremenljivka['tip'] == 26) + $lokacija=true; + else if ($spremenljivka['tip'] == 27) + $heatmap=true; $anketa = self::$sid; @@ -3890,7 +4347,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -3906,143 +4365,172 @@ class SurveyAnalysis { # koliko zapisov prikažemo naenkrat $num_show_records = self::getNumRecords(); - // $num_show_records = $_max_answers_cnt <= (int)$num_show_records ? $_max_answers_cnt : $num_show_records; - - //za tip lokacija (ne enota 3) se rabi user_id, ker se kasneje delajo linki - $need_user_id = !($spremenljivka['tip'] != 26 || ($spremenljivka['tip'] == 26 && $spremenljivka['enota'] == 3)); + //za tip lokacija (ne enota 3) se rabi user_id, ker se kasneje delajo linki + $need_user_id = !($spremenljivka['tip'] != 26 || ($spremenljivka['tip'] == 26 && $spremenljivka['enota'] == 3)); $_answers = self::getAnswers($spremenljivka, $num_show_records, $need_user_id); $_all_valid_answers_cnt = $_answers['validCnt']; $_valid_answers = $_answers['valid']; if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); + # tekst vprašanja - echo ''; + echo '
'; + + # naslovna vrstica - echo ''; - #variabla - echo ''; + + # variabla + echo ''; - #odgovori - echo ''; + echo ''; - echo ''; - #variabla - echo ''; + + # variabla + echo ''; - #odgovori - if(!$lokacija) - echo ''; + #odgovori + if(!$lokacija) + echo ''; + if (self::$_SHOW_LEGENDA){ - echo ''; - echo ''; + echo ''; + echo ''; } - if(!$lokacija){ - echo ''; - echo ''; - } + + if(!$lokacija){ + echo ''; + } + + echo ''; // konec naslovne vrstice + $_answersOther = array(); $_grids_count = count($spremenljivka['grids']); if ($_grids_count > 0) { + # naslovna vrstica $_row = $spremenljivka['grids'][0]; - if(!$lokacija){ - echo ''; - echo ''; - echo ''; - } + + echo ''; + + if(!$lokacija){ + echo ''; + echo ''; + } if (self::$_SHOW_LEGENDA){ - echo ''; - echo ''; + echo ''; + echo ''; } - if (count($_row['variables'])>0) + + if (count($_row['variables'])>0){ foreach ($_row['variables'] AS $rid => $_col ){ - $_sequence = $_col['sequence']; # id kolone z podatki - if ($_col['other'] != true) { - echo ''; - } else { - $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); - } + $_sequence = $_col['sequence']; # id kolone z podatki + if ($_col['other'] != true) { + echo ''; + } + else { + $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); + } + } } + echo ''; - $_css_bck = 'anl_bck_desc_2 anl_ac anl_bt_dot '; + + + $last = 0; - //anl_bck_desc_2 anl_bl anl_br anl_variabla_sub + foreach ($spremenljivka['grids'] AS $gid => $grid) { $_variables_count = count($grid['variables']); - echo ''; - echo ''; + + echo ''; - if(!$lokacija){ - echo ''; - } + + if(!$lokacija){ + echo ''; + } + if (self::$_SHOW_LEGENDA){ - echo ''; - echo ''; + echo ''; + echo ''; } if ($_variables_count > 0) { + # preštejemo max vrstic na grupo $_max_i = 0; foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $_max_i = max($_max_i,min($num_show_records,self::$_FREQUENCYS[$_sequence]['validCnt'])); + $_max_i = max($_max_i,min($num_show_records,(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])?self::$_FREQUENCYS[$_sequence]['validCnt']:0))); } # za barvanje @@ -4053,113 +4541,84 @@ class SurveyAnalysis { $_sequence = $variable['sequence']; # id kolone z podatki if ($variable['other'] != true) { + # tabela z navedbami - echo ''; + echo ''; } } + $last = $_max_i; - } + echo ''; } } @@ -4176,41 +4635,39 @@ class SurveyAnalysis { if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } - /** - * - * @global type $lang - * @param string $spid - [spremenljivka_id]_[loop_id] - */ - private static function displayMapDataAll($spid){ - global $lang; - - $sprid = explode('_',$spid); - $loopid = $sprid[1]; - $sprid = $sprid[0]; - - $spremenljivka = Cache::srv_spremenljivka($sprid); - $enota = $spremenljivka["enota"]; - - //za choose location naredi isto, kot za vsak userja posebej - dobi direkt iz baze ne glede na filterje - if($enota == 3){ - echo ''; - echo ''; - echo ''; - } - //prikaz glede na filterje - else{ - echo ''; - echo ''; - echo ''; - } - } + /** + * + * @global type $lang + * @param string $spid - [spremenljivka_id]_[loop_id] + */ + private static function displayMapDataAll($spid){ + global $lang; + + $sprid = explode('_',$spid); + $loopid = $sprid[1]; + $sprid = $sprid[0]; + + $spremenljivka = Cache::srv_spremenljivka($sprid); + $enota = $spremenljivka["enota"]; + //za choose location naredi isto, kot za vsak userja posebej - dobi direkt iz baze ne glede na filterje + if($enota == 3){ + echo ''; + echo ''; + echo ''; + } + //prikaz glede na filterje + else{ + echo ''; + echo ''; + echo ''; + } + } /** Izriše tekstovne odgovore v vertikalni obliki * @@ -4218,6 +4675,7 @@ class SurveyAnalysis { */ static function sumTextVertical($spid,$_from) { global $lang; + # dajemo v bufer, da da ne prikazujemo vprašanj brez veljavnih odgovorov če imamo tako nastavljeno $spremenljivka = self::$_HEADERS[$spid]; @@ -4229,7 +4687,9 @@ class SurveyAnalysis { if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -4247,21 +4707,25 @@ class SurveyAnalysis { $options=array('inline_legenda' => $inline_legenda, 'isTextAnswer' => false, 'isOtherAnswer' => false, 'num_show_records' => $num_show_records); if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); + # tekst vprašanja - echo '
'; + echo '
'; echo self::showVariable($spid, $spremenljivka['variable']); echo ''.$spremenljivka['naslov'].''; + + # odgovori + echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - } else { + } + else { $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; + + + echo '
'; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,$_from); + echo '
'; echo '
'.$lang['srv_analiza_opisne_subquestion'] . ''.$lang['srv_analiza_opisne_subquestion'] . ''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''. $lang['srv_analiza_opisne_arguments'] .'
'. $lang['srv_analiza_opisne_arguments'] .'
  
  '; - // echo $_col['variable']; - echo $_col['naslov']; - echo ''; + echo $_col['naslov']; + echo '
'; - if(!$lokacija) - echo $grid['variable']; - //else{ - else if ($lokacija && $heatmap == false){ - //echo $grid['naslov'].'
';//ni potrebno, ker je ze v glavi? - $sprid = explode('_',$spid); - $loopid = $sprid[1]; - $sprid = $sprid[0]; - - self::displayMapDataAll($spid); - } - elseif($heatmap){ - //echo $grid['naslov'].'
';//ni potrebno, ker je ze v glavi? - $sprid = explode('_',$spid); - $loopid = $sprid[1]; - $sprid = $sprid[0]; - SurveyUserSession::Init($anketa); - - $heatmapId = 'heatmap'.$sprid; - //echo $heatmapId; - //SurveyChart::displayExportIcons($sprid); - echo ''; - - echo 'Heatmap'; - echo ''; - } + + echo '
'; + if(!$lokacija){ + $sprid = $spid; + + echo isset($grid['variable'])?$grid['variable']:''; + } + else if ($lokacija && $heatmap == false){ + $sprid = explode('_',is_string($spid)?$spid:''); + $loopid = $sprid[1]; + $sprid = $sprid[0]; + + self::displayMapDataAll($spid); + } + elseif($heatmap){ + + $sprid = explode('_',is_string($spid)?$spid:''); + $loopid = $sprid[1]; + $sprid = $sprid[0]; + + SurveyUserSession::Init($anketa); + + $heatmapId = 'heatmap'.$sprid; + + echo ''; + + echo 'Heatmap'; + echo ''; + } echo ''; - echo $grid['naslov']; - echo ''; + echo $grid['naslov']; + echo ''.$_tip.''.$_oblika.''.$_tip.''.$_oblika.''; - echo ''; - #$_valid_cnt = count(self::$_FREQUENCYS[$_sequence]['valid']); - $index=0; - if (count($_valid_answers) > 0) { - foreach ($_valid_answers AS $key => $answer) { - $index++; - $cssBck = ' '.self::$cssColors['0_' . ($index & 1)]; - $_ans = $answer[$_sequence]; - - if($index <= $moreBound){ - //if($index < $moreBound){ - echo ''; - echo ''; - echo ''; - } - else { - echo ''; - echo ''; + + echo ''; + } + } + } + + echo '
'; - # narišemo printereček za izpis posameznih textovnih odgovorov - if ($index == 1) { - //echo ''; - - //TODO! zakomentiral, ker nima funkcije, ikona pa pokvarjena - /*echo ''; - echo ' '; - echo '';*/ - } - if ($_ans != null && $_ans != '') { - if(!($need_user_id && $lokacija)) - echo $_ans; - else - echo ''.$_ans.''; - } else { - echo ' '; - } + echo ''; - if($index == $moreBound){ - #more - več - echo '
'; - echo ' '; - echo ''; - #more - več - konec - } - echo '
'; - # narišemo printereček za izpis posameznih textovnih odgovorov - if ($index == 1) { - //echo ''; - - //TODO! zakomentiral, ker nima funkcije, ikona pa pokvarjena - /*echo ''; - echo ' '; - echo '';*/ - } - if ($_ans != null && $_ans != '') { - if(!($need_user_id && $lokacija)) - echo $_ans; - else - echo ''.$_ans.''; - } else { - echo ' '; - } + echo ''; + + $index=0; + if (count($_valid_answers) > 0) { + foreach ($_valid_answers AS $key => $answer) { + $index++; + $cssBck = ' '.self::$cssColors['0_' . ($index & 1)]; + $_ans = $answer[$_sequence]; + + if($index <= $moreBound){ + + echo ''; + + echo ''; + + echo ''; + } + else { + echo ''; + + echo ''; - echo ''; - } - } - } - - if ($_all_valid_answers_cnt > $index) { - $index++; - $cssBck = ' '.self::$cssColors['0_' . ($index & 1)]; - echo ''; - echo ''; - echo ''; - } - echo '
'; + + if ($_ans != null && $_ans != '') { + + if(!($need_user_id && $lokacija)) + echo $_ans; + else + echo ''.$_ans.''; + } + + #more - več + if($index == $moreBound){ + echo ''; + #more - več - konec + } + echo '
'; - if($index == $_max_i){ - #less - manj - echo '
'; - echo ' '; - echo ''; - } - echo '
'; - // Pri javni povezavi drugace izpisemo - if(self::$printPreview == false) - echo '
'.$lang['srv_anl_more'].'
'; - else - echo '
'.$lang['srv_anl_more'].'
'; - echo '
'; + if ($_ans != null && $_ans != '') { + if(!($need_user_id && $lokacija)) + echo $_ans; + else + echo ''.$_ans.''; + } + + #less - manj + if($index == $_max_i){ + echo ''; + } + echo '
'; - echo '
'; + echo '
'; + # naslovna vrstica - echo ''; + echo ''; + #variabla - echo ''; + #odgovori - echo ''; + echo ''; - echo ''; - #variabla - echo ''; + + # variabla - besedilo + echo ''; - #odgovori + + # odgovori + echo ''; - echo ''; if (self::$_SHOW_LEGENDA && $inline_legenda){ - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + + echo ''; + echo ''; if (self::$_HEADERS[$spid]['show_valid_percent'] == true) { - echo ''; + echo ''; } - echo ''; + echo ''; + echo ''; + + // konec naslovne vrstice $_answersOther = array(); $_grids_count = count($spremenljivka['grids']); @@ -4329,9 +4805,9 @@ class SurveyAnalysis { } } # izpišemo sumo veljavnih - $counter = self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,$options); + //$counter = self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,$options); } - if (count(self::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) { + /*if (count(self::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) { foreach (self::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) { if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0 $counter = self::outputInvalidAnswerVertical($counter,$ikey,$iAnswer,$_sequence,$spid,$options); @@ -4341,8 +4817,10 @@ class SurveyAnalysis { $counter = self::outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,$options); } #izpišemo še skupno sumo - $counter = self::outputSumaVertical($counter,$_sequence,$spid,$options); - } else { + $counter = self::outputSumaVertical($counter,$_sequence,$spid,$options);*/ + + } + else { $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); } } @@ -4360,7 +4838,6 @@ class SurveyAnalysis { if (self :: $show_spid_div == true) { echo ''; - echo '
'; } } @@ -4372,45 +4849,55 @@ class SurveyAnalysis { * @param $_options */ static function outputGridLabelVertical($gid,$grid,$vid,$variable,$spid,$_options=array()) { - echo ''; - echo ''; + + echo ''; - echo ''; + if (self::$_SHOW_LEGENDA) { $spremenljivka = self::$_HEADERS[$spid]; + if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); $_oblika = self::getSpremenljivkaLegenda($spremenljivka,'skala'); - } else { + } + else { global $lang; + $_tip = $lang['srv_analiza_vrsta_bese']; $_oblika = $lang['srv_analiza_oblika_nomi']; } - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; + + echo ''; if (self::$_HEADERS[$spid]['show_valid_percent']) { - echo ''; + echo ''; } - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; + $counter++; + return $counter; } static function outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,&$_kumulativa,$_options=array()) { global $lang; - # opcije - + + # opcije $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor 'isOtherAnswer' => false, # ali je odgovor Drugo 'inline_legenda' => true, # ali je legenda inline ali v headerju @@ -4419,111 +4906,127 @@ class SurveyAnalysis { foreach ($_options as $_oKey => $_option) { $options[$_oKey] = $_option; } - $cssBck = ' '.self::$cssColors['0_' . ($counter & 1)]; - $_valid = (self::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ) ? 100*$vAnswer['cnt'] / self::$_FREQUENCYS[$_sequence]['validCnt'] : 0; - $_percent = (self::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / self::$_FREQUENCYS[$_sequence]['allCnt'] : 0; + $_valid = (isset(self::$_FREQUENCYS[$_sequence]['validCnt']) && self::$_FREQUENCYS[$_sequence]['validCnt'] > 0) ? 100*$vAnswer['cnt'] / self::$_FREQUENCYS[$_sequence]['validCnt'] : 0; + $_percent = (isset(self::$_FREQUENCYS[$_sequence]['allCnt']) && self::$_FREQUENCYS[$_sequence]['allCnt'] > 0) ? 100*$vAnswer['cnt'] / self::$_FREQUENCYS[$_sequence]['allCnt'] : 0; $_kumulativa += $_valid; # če smo v arhivih dodamovse odgovore vendar so nekateri skriti + $cssHide = ''; if ($counter >= $options['num_show_records'] && self::$isArchive) { - $cssHide=' class="displayNone"'; + $cssHide = 'displayNone'; } - echo ' 0 ? ' vkey="'.$vkey.'"' : '').$cssHide.'>'; - echo ''; - echo ' 0 ? ' vkey="'.$vkey.'"' : ''). 'class="row_var '.$cssHide.'">'; + + echo ''; + + echo ''; + if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true ) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + if (self::$_HEADERS[$spid]['show_valid_percent']) { - echo ''; } - echo ''; + echo ''; + # če mamo več if ( $counter+1 == $options['num_show_records'] && $options['num_show_records'] < count(self::$_FREQUENCYS[$_sequence]['valid'])) { + if (self::$isArchive == false ) { - echo ''; - echo ''; - echo ''; + + echo ''; + + echo ''; + if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true ) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + + echo ''; + echo ''; if (self::$_HEADERS[$spid]['show_valid_percent']) { - echo ''; + echo ''; } - echo ''; + echo ''; + echo ''; - } else { - #v arhivie dodamo vse odgovore vendar so skriti - echo ''; - echo ''; - echo ''; + + echo ''; + + echo ''; + if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true ) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + + echo ''; + echo ''; if (self::$_HEADERS[$spid]['show_valid_percent']) { - echo ''; + echo ''; } - echo ''; + echo ''; + echo ''; } } $counter++; + return $counter; } + // Zadnja osnovna vrstica - suma z razipranjem missingov static function outputSumaValidAnswerVertical($counter,$_sequence,$spid,$_options=array()) { global $lang; + # opcije - $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor - 'isOtherAnswer' => false, # ali je odgovor Drugo - 'inline_legenda' => true, # ali je legenda inline ali v headerju + $options = array( + 'isTextAnswer' => false, # ali je tekstovni odgovor + 'isOtherAnswer' => false, # ali je odgovor Drugo + 'inline_legenda' => true, # ali je legenda inline ali v headerju ); + foreach ($_options as $_oKey => $_option) { $options[$_oKey] = $_option; } - // $cssBck = ' '.self::$cssColors['0_' . ($counter & 1)]; $_percent = (self::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*self::$_FREQUENCYS[$_sequence]['validCnt'] / self::$_FREQUENCYS[$_sequence]['allCnt'] : 0; - $cssBck = ' '.self::$cssColors['text_1']; - $_brez_MV = ((int)self::$missingProfileData['display_mv_type'] === 0 ) ? TRUE : FALSE; $_hide_minus = ((int)self::$missingProfileData['display_mv_type'] === 2 ) ? TRUE : FALSE; $value =((int)self::$missingProfileData['display_mv_type'] === 0 ) ? 0 : 1; @@ -4535,203 +5038,218 @@ class SurveyAnalysis { $_sufix = '_loop'.self::$_CURRENT_LOOP['cnt'].$_sufix; } - echo ''; - echo ''; - echo '  '; - echo '  '; + echo ''; - echo ''; + echo ''; - if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; + $_percent = self::$_FREQUENCYS[$_sequence]['allCnt'] > 0 - ? 100 * self::$_FREQUENCYS[$_sequence]['validCnt'] / self::$_FREQUENCYS[$_sequence]['allCnt'] - : 0; - echo ''; + ? 100 * (isset(self::$_FREQUENCYS[$_sequence]['validCnt'])?self::$_FREQUENCYS[$_sequence]['validCnt']:0) / self::$_FREQUENCYS[$_sequence]['allCnt'] + : 0; + echo ''; if (self::$_HEADERS[$spid]['show_valid_percent'] == true) { - echo ''; + echo ''; } - echo ''; + echo ''; + echo ''; - // $counter++; - return $counter; + return $counter; } + // Vrstica s posamezno missing vrednostjo static function outputInvalidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,$_options=array()) { global $lang; + # opcije - $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor - 'isOtherAnswer' => false, # ali je odgovor Drugo - 'inline_legenda' => true, # ali je legenda inline ali v headerju + $options = array( + 'isTextAnswer' => false, # ali je tekstovni odgovor + 'isOtherAnswer' => false, # ali je odgovor Drugo + 'inline_legenda' => true, # ali je legenda inline ali v headerju ); + foreach ($_options as $_oKey => $_option) { $options[$_oKey] = $_option; } - //$cssBck = ' '.self::$cssColors['text_' . ($counter & 1)]; - $cssBck = ' '.self::$cssColors['0_' . ($counter & 1)]; $_percent = (self::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / self::$_FREQUENCYS[$_sequence]['allCnt'] : 0; $_invalid = (self::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / self::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0; $_sufix = (self::$podstran == M_ANALYSIS_SUMMARY_NEW ? '_NEW' : ''); - # da deluje razpiranje manjkajočih tudi kadar imamo skupine + + # da deluje razpiranje manjkajočih tudi kadar imamo skupine if (isset(self::$_CURRENT_LOOP['cnt'])) { $_sufix = '_loop'.self::$_CURRENT_LOOP['cnt'].$_sufix; } $_Z_MV = ((int)self::$missingProfileData['display_mv_type'] === 2) ? TRUE : FALSE; - echo ''; - echo ''; - echo ''; + + echo ''; + + echo ''; + if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + if (self::$_HEADERS[$spid]['show_valid_percent']) { - echo ''; + echo ''; } - echo ''; + + echo ''; + echo ''; + $counter++; + return $counter; } + // Zadnja vrstica manjkajocih vrednosti - suma manjkajocih static function outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,$_options = array()) { global $lang; + # opcije - $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor - 'isOtherAnswer' => false, # ali je odgovor Drugo - 'inline_legenda' => true, # ali je legenda inline ali v headerju + $options = array( + 'isTextAnswer' => false, # ali je tekstovni odgovor + 'isOtherAnswer' => false, # ali je odgovor Drugo + 'inline_legenda' => true, # ali je legenda inline ali v headerju ); + foreach ($_options as $_oKey => $_option) { $options[$_oKey] = $_option; } - //$cssBck = ' '.self::$cssColors['text_' . ($counter & 1)]; - $cssBck = ' '.self::$cssColors['text_1']; - $_percent = (self::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*self::$_FREQUENCYS[$_sequence]['invalidCnt'] / self::$_FREQUENCYS[$_sequence]['allCnt'] : 0; + + if(isset(self::$_FREQUENCYS[$_sequence]['allCnt']) && self::$_FREQUENCYS[$_sequence]['allCnt'] > 0 && isset(self::$_FREQUENCYS[$_sequence]['invalidCnt'])) + $_percent = 100*self::$_FREQUENCYS[$_sequence]['invalidCnt'] / self::$_FREQUENCYS[$_sequence]['allCnt']; + else + $_percent = 0; $_brez_MV = ((int)self::$missingProfileData['display_mv_type'] === 0) ? TRUE : FALSE; $_hide_minus = ((int)self::$missingProfileData['display_mv_type'] === 1 || (int)self::$missingProfileData['display_mv_type'] === 0) ? TRUE : FALSE; $_sufix = (self::$podstran == M_ANALYSIS_SUMMARY_NEW ? '_NEW' : ''); - # da deluje razpiranje manjkajočih tudi kadar imamo skupine + + # da deluje razpiranje manjkajočih tudi kadar imamo skupine if (isset(self::$_CURRENT_LOOP['cnt'])) { $_sufix = '_loop'.self::$_CURRENT_LOOP['cnt'].$_sufix; } - echo ''; - echo ''; + + echo ''; - echo ''; + if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + if (self::$_HEADERS[$spid]['show_valid_percent']) { - echo ''; + echo ''; } - echo ''; + echo ''; + echo ''; + $counter++; + return $counter; } + // Cisto zadnja vrstica - suma vseh (manjkajoce + navadne) static function outputSumaVertical($counter,$_sequence,$spid, $_options = array()) { global $lang; - # opcije - $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor - 'isOtherAnswer' => false, # ali je odgovor Drugo - 'inline_legenda' => true, # ali je legenda inline ali v headerju + # opcije + $options = array( + 'isTextAnswer' => false, # ali je tekstovni odgovor + 'isOtherAnswer' => false, # ali je odgovor Drugo + 'inline_legenda' => true, # ali je legenda inline ali v headerju ); + foreach ($_options as $_oKey => $_option) { $options[$_oKey] = $_option; } - // $cssBck = ' '.self::$cssColors['0_' .($counter & 1)]; - $cssBck = ' anl_bck_text_0'; $_brez_MV = ((int)self::$missingProfileData['display_mv_type'] === 0) ? TRUE : FALSE; $_sufix = (self::$podstran == M_ANALYSIS_SUMMARY_NEW ? '_NEW' : ''); + # da deluje razpiranje manjkajočih tudi kadar imamo skupine if (isset(self::$_CURRENT_LOOP['cnt'])) { $_sufix = '_loop'.self::$_CURRENT_LOOP['cnt'].$_sufix; } - echo ''; - //echo ''; // $lang['srv_anl_appropriate'] - //echo ''; - echo ''; - echo ''; + echo ''; + + echo ''; + + echo ''; if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true) { - echo ''; - echo ''; + echo ''; + echo ''; } - echo ''; - echo ''; + + echo ''; + echo ''; if (self::$_HEADERS[$spid]['show_valid_percent']) { - echo ''; + echo ''; } - echo ''; - echo ''; + echo ''; + echo ''; } - - static function outputSumaValidAnswerHeatmap($counter,$_sequence,$spid,$_options=array(), $validHeatmapRegion) { + static function outputSumaValidAnswerHeatmap($counter,$_sequence,$spid=0,$_options=array(), $validHeatmapRegion=null) { global $lang; # opcije $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor @@ -4769,28 +5287,16 @@ class SurveyAnalysis { echo ''; } - //Veljavni - Skupaj + // Veljavni - Skupaj echo ''; - -/* $_percent = self::$_FREQUENCYS[$_sequence]['allCnt'] > 0 - ? 100 * self::$_FREQUENCYS[$_sequence]['validCnt'] / self::$_FREQUENCYS[$_sequence]['allCnt'] - : 0; - echo ''; - if (self::$_HEADERS[$spid]['show_valid_percent'] == true) { - echo ''; - } - echo ''; */ - echo ''; - // $counter++; return $counter; } - static function outputInvalidAnswerHeatmap($counter,$vkey,$vAnswer,$_sequence,$spid,$_options=array(), $manjkajoci) { + static function outputInvalidAnswerHeatmap($counter,$vkey,$vAnswer,$_sequence,$spid,$_options=array(), $manjkajoci=null) { global $lang; # opcije $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor @@ -4843,7 +5349,7 @@ class SurveyAnalysis { return $counter; } - static function outputSumaInvalidAnswerHeatmap($counter,$_sequence,$spid,$_options = array(), $manjkajoci) { + static function outputSumaInvalidAnswerHeatmap($counter,$_sequence,$spid,$_options = array(), $manjkajoci=null) { global $lang; # opcije $options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor @@ -4866,62 +5372,33 @@ class SurveyAnalysis { $_sufix = '_loop'.self::$_CURRENT_LOOP['cnt'].$_sufix; } - echo ''; + echo ''; echo ''; echo ''; + if (self::$_SHOW_LEGENDA && $options['isOtherAnswer'] == false && $options['inline_legenda'] == true) { echo ''; echo ''; } - //Mankajoci - Skupaj + // Mankajoci - Skupaj echo ''; - //stolpec "Veljavni kliki" -/* echo ''; - */ - -/* if (self::$_HEADERS[$spid]['show_valid_percent']) { - echo ''; - } */ - echo ''; echo ''; $counter++; return $counter; } - static function outputSumaHeatmap($counter,$_sequence,$spid, $_options = array(), $ustrezniHeatmapRegion) { + static function outputSumaHeatmap($counter,$_sequence,$spid, $_options = array(), $ustrezniHeatmapRegion=null) { global $lang; # opcije @@ -4943,9 +5420,7 @@ class SurveyAnalysis { $_sufix = '_loop'.self::$_CURRENT_LOOP['cnt'].$_sufix; } - echo ''; - //echo ''; // $lang['srv_anl_appropriate'] - //echo ''; + echo ''; echo ''; echo ''; @@ -4954,18 +5429,10 @@ class SurveyAnalysis { echo ''; } - //SKUPAJ + // SKUPAJ echo ''; - - //echo ''; - - //echo ''; - /*if (self::$_HEADERS[$spid]['show_valid_percent']) { - echo ''; - } */ - //echo ''; - echo ''; + echo ''; } /** izpišemo tabelo z tekstovnimi odgovori drugo @@ -5094,413 +5561,305 @@ class SurveyAnalysis { } - static public function showIcons($spid, $spremenljivka, $_from = 'freq', $additional=array()) { + // Ikone s povezavami na posamezno tabelo analize (popup) + static public function showIcons($spid, $spremenljivka, $_from='freq', $additional=array(), $onlyicons = false) { global $lang; - - $sccFloat = 'taCenter '; - #kateri skin - $skin = 0; - $options = array('sums'=>true,'sums*'=>true,'desc'=>true,'freq'=>true,'sums_spec'=>false); + + // Javna povezava nima teh ikon + if (self::$printPreview != false) + return; + $from_navedbe = (isset($additional['navedbe']) && $additional['navedbe'] == true) ? true : false; $showReport = (isset($additional['noReport']) && $additional['noReport'] == true) ? false: true; $showChart = (isset($additional['showChart']) && $additional['showChart'] == false) ? false: true; $printIcon = (isset($additional['printIcon']) && $additional['printIcon'] == true) ? true: false; - if ($_from == 'para') { - $showReport = false; - } - - switch ($_from) { - case 'freq': - case 'para': - case 'charts': - switch ($spremenljivka['tip']) { - case 1: # radio - prikjaže navpično - if ($spremenljivka['show_valid_percent'] == true && $spremenljivka['skala'] != 1) { - # če za ordinalno prikazujemo povprečje in st. oddklon - $options['sums'] = true; - $options['sums*'] = true; - } else { - # za nominalno ne prikazujemo povprečje in st. oddklon, zato je F == F* - $options['sums'] = false; - $options['sums*'] = false; - } - break; - case 2: #checkbox če je dihotomna: - break; - case 3: # dropdown - prikjaže navpično - break; - case 6: # multigrid - $options['sums*'] = false; - if ( $spremenljivka['enota'] == 3 ) { - $options['sums_spec'] = true; - } - break; - case 7: # variabla tipa »število« - $options['sums*'] = false; - break; - case 8: # datum - $options['sums'] = false; - $options['sums*'] = false; - break; - case 16: #multicheckbox če je dihotomna: - break; - case 17: #razvrščanje če je ordinalna - $options['sums'] = false; - break; - case 18: # vsota - $options['sums*'] = false; - break; - case 19: # multitext - $options['sums*'] = false; - break; - case 20: # multi number + $options = array(); + + // Texti z ikono + $texts = $onlyicons ? array( + 'freq' => '', + 'freq*' => '', + 'desc' => '', + 'table' => '', + 'table*' => '', + 'table_ver' => '', + 'text' => '', + 'chart' => '', + ) : + array( + 'freq' => ''.$lang['srv_frequency'].'', + 'freq*' => ''.$lang['srv_frequency*'].'', + 'desc' => ''.$lang['srv_descriptor'].'', + 'table' => ''.$lang['srv_table'].'', + 'table*' => ''.$lang['srv_table*'].'', + 'table_ver' => ''.$lang['srv_table_ver'].'', + 'text' => ''.$lang['srv_text_only'].'', + 'chart' => ''.$lang['srv_chart'].'', + ); - break; - case 4: # text - case 21: # besedilo* - if ($spremenljivka['cnt_all'] == 1) { - // če je enodimenzionalna prikažemo kot frekvence - // predvsem zaradi vprašanj tipa: language, email... - $options['sums'] = false; - } - $options['sums*'] = false; - break; - case 26: # lokacija - if ($spremenljivka['cnt_all'] == 1) { - $options['sums'] = false; - } - $options['sums*'] = false; - break; - case 27: # heatmap - if ($spremenljivka['cnt_all'] == 1) { - $options['sums'] = false; - } - $options['sums*'] = false; - break; - case 22: # kalkulacija - case 25: # kvota - $options['sums*'] = false; - break; # kalkulacija + // Parameter za odpiranje pravega popupa + $links = array( + 'freq' => M_ANALYSIS_FREQUENCY, + 'freq*' => M_ANALYSIS_SUMMARY, + 'desc' => M_ANALYSIS_DESCRIPTOR, + 'table' => M_ANALYSIS_SUMMARY_NEW, + 'table*' => M_ANALYSIS_SUMMARY_NEW, + 'table_ver' => M_ANALYSIS_SUMMARY_NEW, + 'text' => 'text', + 'chart' => M_ANALYSIS_CHARTS, + ); + + + // Nastavimo katere opcije imamo glede na tip vprasanja + switch ($spremenljivka['tip']) { + + // radio in dropdown + case 1: + case 3: + // ordinalna + if ($spremenljivka['skala'] != 1) { + $options['base'] = 'freq'; + $options['additional'][0] = 'desc'; + $options['additional'][1] = 'chart'; + } + // nominalna + else { + $options['base'] = 'freq'; + $options['additional'][1] = 'chart'; } - $export = ($_from == 'charts') ? 'charts' : 'frequency'; break; - case 'desc': - switch ($spremenljivka['tip']) { - case 1: # radio - prikjaže navpično - if ($spremenljivka['skala'] == 1) { - $options['sums'] = false; - $options['sums*'] = false; - } - break; - case 2: #checkbox če je dihotomna: - break; - case 3: # dropdown - prikjaže navpično - break; - case 6: # multigrid - $options['sums*'] = false; - if ( $spremenljivka['enota'] == 3 ) { - $options['sums_spec'] = true; - } - break; - case 7: # variabla tipa »število« - $options['sums*'] = false; - break; - case 8: # datum - $options['sums'] = false; - $options['sums*'] = false; - break; - case 16: #multicheckbox če je dihotomna: - break; - case 17: #razvrščanje če je ordinalna - $options['sums'] = false; - break; - case 18: # vsota - $options['sums*'] = false; - break; - case 19: # multitext - $options['sums*'] = false; - break; - case 20: # multi number - break; - case 4: # text - case 21: # besedilo* - if ($spremenljivka['cnt_all'] == 1) { - // če je enodimenzionalna prikažemo kot frekvence - // predvsem zaradi vprašanj tipa: language, email... - $options['sums'] = false; - } - $options['sums*'] = false; - break; - case 26: # Lokacija - if ($spremenljivka['cnt_all'] == 1) { - $options['sums'] = false; - } - $options['sums*'] = false; - break; - case 27: # heatmap - if ($spremenljivka['cnt_all'] == 1) { - $options['sums'] = false; - } - $options['sums*'] = false; - break; - case 22: # kalkulacija - case 25: # kvota - $options['sums*'] = false; - break; # kalkulacija + + // checkbox + case 2: + $options['base'] = 'freq*'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'desc'; + $options['additional'][2] = 'table'; + $options['additional'][3] = 'chart'; + break; + + // multigrid + case 6: + // ordinalna + if ($spremenljivka['skala'] != 1) { + $options['base'] = 'table'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'desc'; + $options['additional'][2] = 'chart'; + + // Dvojna tabela + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 3){ + $options['additional'][2] = 'table_ver'; + $options['additional'][3] = 'chart'; + + $links['table'] = M_ANALYSIS_SUMMARY; + } + } + // nominalna + else { + $options['base'] = 'table'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'chart'; + + // Dvojna tabela + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 3){ + $options['additional'][1] = 'table_ver'; + $options['additional'][2] = 'chart'; + + $links['table'] = M_ANALYSIS_SUMMARY; + } } - $export = 'statistics'; break; - case 'sums': - switch ($spremenljivka['tip']) { - case 1: # radio - prikjaže navpično - if ($spremenljivka['skala'] == 1) { - $options['sums'] = false; - $options['sums*'] = false; - $_from = 'freq'; - } else { - $_from = 'sums*'; - } - break; - case 2: #checkbox če je dihotomna - $_from = 'sums*'; - break; - case 3: # dropdown - prikjaže navpično - break; - case 6: # multigrid - $options['sums*'] = false; - if ( $spremenljivka['enota'] == 3 ) { - $options['sums_spec'] = true; - $_from = 'sums*'; - } - break; - case 7: # variabla tipa »število« - $options['sums*'] = false; - break; - case 8: # datum - $options['sums'] = false; - $options['sums*'] = false; - $_from = 'freq'; - break; - case 16: #multicheckbox če je dihotomna - break; - case 17: #razvrščanje če je ordinalna - $options['sums'] = false; - $_from = 'sums*'; - break; - case 18: # vsota - $options['sums*'] = false; - break; - case 19: # multitext - $options['sums*'] = false; - break; - case 20: # multi number - break; - case 21: # besedilo* - $_from = 'sums'; - if ($spremenljivka['cnt_all'] == 1) { - // če je enodimenzionalna prikažemo kot frekvence - // predvsem zaradi vprašanj tipa: language, email... - $options['sums'] = false; - $_from = 'freq'; - } + // number + case 7: + $options['base'] = 'desc'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'chart'; + break; - $options['sums*'] = false; - break; - case 26: # lokacija - $_from = 'sums'; - if ($spremenljivka['cnt_all'] == 1) { - $options['sums'] = false; - $_from = 'freq'; - } + // datum + case 8: + $options['base'] = 'freq'; + $options['additional'][0] = 'desc'; + break; - $options['sums*'] = false; - break; - case 27: # heatmap - $_from = 'sums'; - if ($spremenljivka['cnt_all'] == 1) { - $options['sums'] = false; - $_from = 'freq'; - } + // multicheckbox + case 16: + $options['base'] = 'table'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'desc'; + $options['additional'][2] = 'freq*'; + $options['additional'][3] = 'chart'; + + $links['table'] = M_ANALYSIS_SUMMARY; + $links['freq*'] = M_ANALYSIS_SUMMARY_NEW; - $options['sums*'] = false; - break; - case 4: # text - $options['sums'] = false; - $options['sums*'] = false; - $_from = 'freq'; - break; - case 22: # kalkulacija - case 25: # kvota - $options['sums*'] = false; - break; # kalkulacija - } - $export = 'sums'; break; - case 'sums*': - switch ($spremenljivka['tip']) { - case 1: # radio - prikjaže navpično - if ($spremenljivka['skala'] == 1) { - $options['sums'] = false; - $options['sums*'] = false; - $_from = 'freq'; - } else { - $_from = 'sums'; - } - break; - case 2: #checkbox če je dihotomna: - $_from = 'sums'; - break; - case 3: # dropdown - prikjaže navpično - break; - case 6: # multigrid - $options['sums*'] = false; - if ( $spremenljivka['enota'] == 3 ) { - $options['sums_spec'] = true; - $_from = 'sums'; - } - break; - case 7: # variabla tipa »število« - $options['sums*'] = false; - $_from = 'sums'; - break; - case 8: # datum - $options['sums'] = false; - $options['sums*'] = false; - break; - - case 16: #multicheckbox če je dihotomna: - break; - case 17: #razvrščanje če je ordinalna - $options['sums'] = false; - break; - case 18: # vsota - $options['sums*'] = false; - $_from = 'sums'; - break; - case 19: # multitext - $options['sums*'] = false; - break; - case 20: # multi number - break; - case 4: # text - $options['sums'] = false; - $options['sums*'] = false; - $_from = 'freq'; - break; - case 21: # besedilo* - if ($spremenljivka['cnt_all'] == 1) { - // če je enodimenzionalna prikažemo kot frekvence - // predvsem zaradi vprašanj tipa: language, email... - $options['sums'] = false; - } - $options['sums*'] = false; - $_from = 'freq'; - break; - case 26: # lokacija - if ($spremenljivka['cnt_all'] == 1) { - $options['sums'] = false; - } - $options['sums*'] = false; - $_from = 'freq'; - break; - case 27: # heatmap - if ($spremenljivka['cnt_all'] == 1) { - $options['sums'] = false; - } - $options['sums*'] = false; - $_from = 'freq'; - break; - case 22: # kalkulacija - case 25: # kvota - $options['sums*'] = false; - $_from = 'sums'; - break; # kalkulacija - } - $export = 'sums'; + + // ranking + case 17: + $options['base'] = 'table'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'desc'; + break; + + // vsota + case 18: + $options['base'] = 'table'; + $options['additional'][0] = 'freq'; + break; + + // multitext + case 19: + $options['base'] = 'table'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'desc'; + + $links['table'] = M_ANALYSIS_SUMMARY; + + break; + + // multinumber + case 20: + $options['base'] = 'table'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'desc'; + $options['additional'][2] = 'chart'; + + $links['table'] = M_ANALYSIS_SUMMARY; + + break; + + // text + case 4: + case 21: + $options['base'] = 'freq'; + $options['additional'][0] = 'text'; + break; + + // lokacija + case 26: + $options['base'] = 'table'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'desc'; + break; + + // heatmap + case 27: + $options['base'] = 'table'; + $options['additional'][0] = 'freq'; + $options['additional'][1] = 'desc'; + break; + + // kalkulacija + case 22: + $options['base'] = 'desc'; + $options['additional'][0] = 'freq'; + + $links['desc'] = M_ANALYSIS_SUMMARY; break; - case 'none': + + // kvota + case 25: + $options['base'] = 'desc'; + $options['additional'][0] = 'freq'; + break; + + default: break; } - - // Javna povezava nima teh ikon - if ($printIcon == false && self::$printPreview == false) { - - echo ''; - if ($options['sums'] == true) { - if ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 3 ) { - echo ''; - } else { - echo ''; - } - - echo ' '; - echo ''; - } - if ($options['sums_spec'] == true) { - echo ''; - echo ' '; - echo ''; - } + if(!$onlyicons){ + // Izrisemo vse ikone za vprasanje + echo '
'; - if ($options['sums*'] == true) { - if ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 3) { - echo ''; - }else { - echo ''; - } - echo ' '; - echo ''; - } - if ($options['desc'] == true) { - echo ''; - echo ' '; - echo ''; - } - if ($options['freq'] == true) { - echo ''; - echo ' '; - echo ''; - } + // Prva vrstica z linkom na osnovni prikaz + echo '
'; + echo $lang['srv_analysis_icon_show'].': '; + echo ' '; + echo $texts[$options['base']]; + echo ' '; + echo '
'; + + echo '
'; + echo $lang['srv_analysis_icon_show_other']; + echo '
'; - // Ikona za prikaz grafa - if($showChart == true && in_array($spremenljivka['tip'],array(1,2,3,6,7,8,16,17,18,20,22)) && $_from != 'charts'){ - echo ''; - echo ' '; - echo ''; - } + // Ostale vrstice - loop + foreach($options['additional'] as $line){ - // Ikona za vkljucitev v porocilo - switch ($_from) { - case 'sums': - case 'sums*': - $type=1; - break; - case 'freq': - $type=2; - break; - case 'desc': - $type=3; - break; - case 'charts': - $type=4; - break; - } - if ($showReport == true) { - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type, $sub_type=0, $spid); + // Text ima drugo js funkcijo + if($links[$line] == 'text') + echo '
'; + else + echo '
'; + + echo '
'.$texts[$line].'
'; + + echo '
'; + + echo '
'; } + echo '
'; + } + else{ + // Izrisemo vse ikone za vprasanje + echo '
'; + + // Prva vrstica z linkom na osnovni prikaz + echo ' '; + echo $texts[$options['base']]; + echo ' '; + + // Ostale vrstice - loop + foreach($options['additional'] as $line){ + + // Text ima drugo js funkcijo + if($links[$line] == 'text') + echo ' '; + else + echo ' '; + + echo $texts[$line]; + + echo ''; + } - echo ''; - } else { - + echo '
'; } + + return; } + // Preklop enote navedbe + static private function showEnoteNavedbe($spid, $status){ + global $lang; + + echo '
'; + + echo ''; + echo ''; + + echo'
'; + } + + // Preklop frekvence odstotki + static private function showFreqPercent($spid){ + global $lang; + + echo '
'; + + echo ''; + echo ''; + + echo'
'; + } + /** polovi opisne za vse spremenljivke * @@ -5571,7 +5930,7 @@ class SurveyAnalysis { unlink($tmp_files['frequency']); } - if ($_GET['debug'] == 1) { + if (isset($_GET['debug']) && $_GET['debug'] == 1) { print_r("
");
 			print_r("cl:".$command);
 			print_r("
Out".$out); @@ -5591,7 +5950,7 @@ class SurveyAnalysis { # preverjamo da ni meta variabla $vars_count = count(self::$_FILTRED_VARIABLES); # frekvence delamo samo za izbrane variable - if ($spremenljivka['tip'] != 'm' + if (isset($spremenljivka['tip']) && $spremenljivka['tip'] != 'm' # filter po id spremenljivki && ($vars_count == 0 || ($vars_count > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) ) ) # filter po tipu (kategorije, besedila, number, drugo) @@ -5613,8 +5972,10 @@ class SurveyAnalysis { #najprej odstranimo neveljavne, vse kaj ostane je veljavno foreach ($_invalidAnswers AS $ikey =>$iAnswer) { if (isset($_freq[$ikey])) { - self::$_DESCRIPTIVES[$_sequence]['invalidCnt'] += $_freq[$ikey]; - self::$_DESCRIPTIVES[$_sequence]['allCnt'] += $_freq[$ikey]; + self::$_DESCRIPTIVES[$_sequence]['invalidCnt'] = (isset(self::$_DESCRIPTIVES[$_sequence]['invalidCnt']) ? + self::$_DESCRIPTIVES[$_sequence]['invalidCnt']+= $_freq[$ikey] : $_freq[$ikey]); + self::$_DESCRIPTIVES[$_sequence]['allCnt'] = (isset(self::$_DESCRIPTIVES[$_sequence]['allCnt']) ? + self::$_DESCRIPTIVES[$_sequence]['allCnt']+= $_freq[$ikey] : $_freq[$ikey]); unset($_freq[$ikey]); @@ -5624,34 +5985,55 @@ class SurveyAnalysis { # opcijske odgovore dodamo samo vprašanjem ki niso tipa other in text # zloopamo skozi vse opcije in jih dodamo k veljavnim - if ($variable['text'] != true && $variable['other'] != true && count($spremenljivka['options']) > 0) { + if ($variable['text'] != true && $variable['other'] != true && isset($spremenljivka['options']) && count($spremenljivka['options']) > 0) { if (count($_freq) > 0) { foreach($_freq AS $fKey => $fCnt) { $flKey = (float)$fKey; - if (is_numeric($flKey) && trim($flkey) != '' ) { + if (is_numeric($flKey) && trim($flKey) != '' ) { - self::$_DESCRIPTIVES[$_sequence]['validCnt'] += $fCnt; - self::$_DESCRIPTIVES[$_sequence]['allCnt'] += $fCnt; + if(isset(self::$_DESCRIPTIVES[$_sequence]['validCnt'])) + self::$_DESCRIPTIVES[$_sequence]['validCnt'] += $fCnt; + else + self::$_DESCRIPTIVES[$_sequence]['validCnt'] = $fCnt; + + if(isset(self::$_DESCRIPTIVES[$_sequence]['allCnt'])) + self::$_DESCRIPTIVES[$_sequence]['allCnt'] += $fCnt; + else + self::$_DESCRIPTIVES[$_sequence]['allCnt'] = $fCnt; $min = $min === null ? $flKey : min($min,$flKey) ; $max = $max === null ? $flKey : max($max,$flKey) ; + self::$_DESCRIPTIVES[$_sequence]['sum_xi_fi'] += $flKey * $fCnt; + #vrednosti si shranimo za računanje divergence $_tmp_div[$flKey] = $fCnt; + unset($_freq[$fKey]); - } else if (is_numeric($fKey) ) { - self::$_DESCRIPTIVES[$_sequence]['validCnt'] += $fCnt; - self::$_DESCRIPTIVES[$_sequence]['allCnt'] += $fCnt; + } + else if (is_numeric($fKey) ) { + + if(isset(self::$_DESCRIPTIVES[$_sequence]['validCnt'])) + self::$_DESCRIPTIVES[$_sequence]['validCnt'] += $fCnt; + else + self::$_DESCRIPTIVES[$_sequence]['validCnt'] = $fCnt; + + if(isset(self::$_DESCRIPTIVES[$_sequence]['allCnt'])) + self::$_DESCRIPTIVES[$_sequence]['allCnt'] += $fCnt; + else + self::$_DESCRIPTIVES[$_sequence]['allCnt'] = $fCnt; $min = $min === null ? $fKey : min($min,$fKey) ; $max = $max === null ? $fKey : max($max,$fKey) ; + self::$_DESCRIPTIVES[$_sequence]['sum_xi_fi'] += $fKey * $fCnt; + #vrednosti si shranimo za računanje divergence $_tmp_div[$fKey] = $fCnt; + unset($_freq[$fKey]); - } } } @@ -5663,10 +6045,13 @@ class SurveyAnalysis { if (count($_freq) > 0) { foreach ($_freq AS $nkey => $nCnt) { $fnkey = (float)$nkey; # popravimo morebitne . - + if (is_numeric($nkey) && is_numeric($fnkey) && trim($fnkey) != '') { - self::$_DESCRIPTIVES[$_sequence]['validCnt'] += $nCnt; - self::$_DESCRIPTIVES[$_sequence]['allCnt'] += $nCnt; + self::$_DESCRIPTIVES[$_sequence]['validCnt'] = (isset(self::$_DESCRIPTIVES[$_sequence]['validCnt']) ? + self::$_DESCRIPTIVES[$_sequence]['validCnt']+= $nCnt : $nCnt); + + self::$_DESCRIPTIVES[$_sequence]['allCnt'] = (isset(self::$_DESCRIPTIVES[$_sequence]['allCnt']) ? + self::$_DESCRIPTIVES[$_sequence]['allCnt'] += $nCnt : $nCnt); $min = $min != null ? min($min,$fnkey) : $fnkey; $max = $max != null ? max($max,$fnkey) : $fnkey; @@ -5692,8 +6077,13 @@ class SurveyAnalysis { self::$_DESCRIPTIVES[$_sequence]['valid'][$tkey] = array('text'=>$text,'cnt'=>$tCnt); # samo prištejemo veljavne - self::$_DESCRIPTIVES[$_sequence]['validCnt'] += $tCnt; - self::$_DESCRIPTIVES[$_sequence]['allCnt'] += $tCnt; + self::$_DESCRIPTIVES[$_sequence]['validCnt'] = (isset(self::$_DESCRIPTIVES[$_sequence]['validCnt']) ? + self::$_DESCRIPTIVES[$_sequence]['validCnt']+= $tCnt : $tCnt); + + self::$_DESCRIPTIVES[$_sequence]['allCnt'] = (isset(self::$_DESCRIPTIVES[$_sequence]['allCnt']) ? + self::$_DESCRIPTIVES[$_sequence]['allCnt'] += $tCnt : $tCnt); + + unset($_freq[$tkey]); } } @@ -5762,15 +6152,14 @@ class SurveyAnalysis { { foreach (self::$_HEADERS AS $skey => $spremenljivka) { - $tip = $spremenljivka['tip']; - if (is_numeric($tip)) { + if (isset($spremenljivka['tip']) && is_numeric($spremenljivka['tip'])) { if (count($spremenljivka['grids'] ) > 0) { foreach ($spremenljivka['grids'] as $gid => $grid ){ - if (is_countable($grid['variables']) && count($grid['variables']) > 0) { + if (isset($grid['variables']) && count($grid['variables']) > 0) { foreach ($grid['variables'] as $vid => $variable ){ $end_sequence = max($end_sequence, (int)$variable['sequence']); @@ -5836,7 +6225,7 @@ class SurveyAnalysis { # preverjamo da ni meta variabla $vars_count = count(self::$_FILTRED_VARIABLES); # frekvence delamo samo za izbrane variable - if ($spremenljivka['tip'] != 'm' + if (isset($spremenljivka['tip']) && $spremenljivka['tip'] != 'm' # filter po id spremenljivki && ($vars_count == 0 || ($vars_count > 0 && isset(self::$_FILTRED_VARIABLES[$spid]) ) ) # filter po tipu (kategorije, besedila, number, drugo) @@ -5846,6 +6235,7 @@ class SurveyAnalysis { if ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3) { self::$_HEADERS[$spid]['show_valid_percent'] = true; } + if (count ($spremenljivka['grids']) > 0) foreach ($spremenljivka['grids'] AS $gid => $grid) { if (count ($grid['variables']) > 0) @@ -5861,8 +6251,16 @@ class SurveyAnalysis { if (isset($_freq[$ikey])) { if (self::$frequencyAddInvalid) { self::$_FREQUENCYS[$_sequence]['invalid'][$ikey]['cnt'] = $_freq[$ikey]; - self::$_FREQUENCYS[$_sequence]['invalidCnt'] += $_freq[$ikey]; - self::$_FREQUENCYS[$_sequence]['allCnt'] += $_freq[$ikey]; + + if (isset(self::$_FREQUENCYS[$_sequence]['invalidCnt'])) + self::$_FREQUENCYS[$_sequence]['invalidCnt'] += $_freq[$ikey]; + else + self::$_FREQUENCYS[$_sequence]['invalidCnt'] = $_freq[$ikey]; + + if (isset(self::$_FREQUENCYS[$_sequence]['allCnt'])) + self::$_FREQUENCYS[$_sequence]['allCnt'] += $_freq[$ikey]; + else + self::$_FREQUENCYS[$_sequence]['allCnt'] = $_freq[$ikey]; } unset($_freq[$ikey]); @@ -5872,17 +6270,25 @@ class SurveyAnalysis { } # opcijske odgovore dodamo samo vprašanjem ki niso tipa other in text # zloopamo skozi vse opcije in jih dodamo k veljavnim - if ($variable['text'] != true && $variable['other'] != true && is_countable($spremenljivka['options']) && count($spremenljivka['options']) > 0) { + if ($variable['text'] != true && $variable['other'] != true && isset($spremenljivka['options']) && is_countable($spremenljivka['options']) && count($spremenljivka['options']) > 0) { foreach ($spremenljivka['options'] AS $okey => $oAnswer) { self::$_FREQUENCYS[$_sequence]['valid'][$okey]['text'] = $oAnswer; - self::$_FREQUENCYS[$_sequence]['valid'][$okey]['text_graf'] = $spremenljivka['options_graf'][$okey]; + self::$_FREQUENCYS[$_sequence]['valid'][$okey]['text_graf'] = isset($spremenljivka['options_graf'][$okey]) ? isset($spremenljivka['options_graf'][$okey]) : ''; self::$_FREQUENCYS[$_sequence]['valid'][$okey]['cnt'] = 0; if (isset($_freq[$okey])) { self::$_FREQUENCYS[$_sequence]['valid'][$okey]['cnt'] = $_freq[$okey]; - self::$_FREQUENCYS[$_sequence]['validCnt'] += $_freq[$okey]; - self::$_FREQUENCYS[$_sequence]['allCnt'] += $_freq[$okey]; + + if (isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + self::$_FREQUENCYS[$_sequence]['validCnt'] += $_freq[$okey]; + else + self::$_FREQUENCYS[$_sequence]['validCnt'] = $_freq[$okey]; + + if (isset(self::$_FREQUENCYS[$_sequence]['allCnt'])) + self::$_FREQUENCYS[$_sequence]['allCnt'] += $_freq[$okey]; + else + self::$_FREQUENCYS[$_sequence]['allCnt'] = $_freq[$okey]; unset($_freq[$okey]); } @@ -5893,17 +6299,26 @@ class SurveyAnalysis { # vse kaj ostane so textovni ali numerični odgovori if (is_countable($_freq) && count($_freq) > 0) { $_ifreq = array(); + # nardimo case-insensitive foreach ($_freq AS $tkey => $tCnt) { - //if($spremenljivka['tip'] != 26) - if($spremenljivka['tip'] != 26 && $spremenljivka['tip'] != 27) - $tkey = mb_strtolower($tkey,'UTF-8'); - $_ifreq[$tkey] += $tCnt; + + //if($spremenljivka['tip'] != 26) + if($spremenljivka['tip'] != 26 && $spremenljivka['tip'] != 27) + $tkey = mb_strtolower($tkey,'UTF-8'); + + if(isset($_ifreq[$tkey])) + $_ifreq[$tkey] += $tCnt; + else + $_ifreq[$tkey] = $tCnt; } - $_average = array(); + $_average = array( + 'cnt' => 0, + 'product' => 0 + ); - if(is_countable($spremenljivka['options'])) + if(isset($spremenljivka['options']) && is_countable($spremenljivka['options'])) $i = count($spremenljivka['options']) + 1; else $i = 0; @@ -5918,12 +6333,24 @@ class SurveyAnalysis { $text = $tkey; } - self::$_FREQUENCYS[$_sequence]['valid'][$tkey] = array('text'=>$text,'cnt'=>$tCnt,'text_graf'=>$spremenljivka['options_graf'][$i]); - self::$_FREQUENCYS[$_sequence]['validCnt'] += $tCnt; - self::$_FREQUENCYS[$_sequence]['allCnt'] += $tCnt; - //Uros dodal, ker se drugace pri radio ne ve, kaksen je text opcije drugo - if($variable['other']) - self::$_FREQUENCYS[$_sequence]['valid'][$tkey]['other'] = $variable['naslov']; + self::$_FREQUENCYS[$_sequence]['valid'][$tkey] = array('text'=>$text,'cnt'=>$tCnt); + + if(isset($spremenljivka['options_graf'][$i])) + self::$_FREQUENCYS[$_sequence]['valid'][$tkey]['text_graf'] = $spremenljivka['options_graf'][$i]; + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + self::$_FREQUENCYS[$_sequence]['validCnt'] += $tCnt; + else + self::$_FREQUENCYS[$_sequence]['validCnt'] = $tCnt; + + if(isset(self::$_FREQUENCYS[$_sequence]['allCnt'])) + self::$_FREQUENCYS[$_sequence]['allCnt'] += $tCnt; + else + self::$_FREQUENCYS[$_sequence]['allCnt'] = $tCnt; + + //Uros dodal, ker se drugace pri radio ne ve, kaksen je text opcije drugo + if($variable['other']) + self::$_FREQUENCYS[$_sequence]['valid'][$tkey]['other'] = $variable['naslov']; # povprečje if (is_numeric($tkey)) { @@ -5942,7 +6369,6 @@ class SurveyAnalysis { } // end if tip != m } unset($frequency); - return self::$_FREQUENCYS; } @@ -6044,10 +6470,11 @@ class SurveyAnalysis { $_allMissing_answers = SurveyMissingValues::GetMissingValuesForSurvey(array(1,2,3)); $_result_answers = array(); $_result_answers['validCnt'] = 0; + $_result_answers['allCnt'] = 0; + $_result_answers['invalidCnt'] = 0; if (count($answers) > 0) { foreach ($answers AS $akey => $answer) { - $cnt++; $all_invalid = true; # ali je vse neveljavno foreach ($answer AS $seq => $value) { # preverimo ali je kateri odgovor od userja vlejaven @@ -6081,6 +6508,7 @@ class SurveyAnalysis { public static function showspremenljivkaSingleVarPopup($id) { global $lang; + global $site_url; self::$_forceShowEmpty = true; header('Cache-Control: no-cache'); @@ -6098,20 +6526,23 @@ class SurveyAnalysis { $lang_admin = $row['value']; } + $zaPodstran = $_POST['zaPodstran']; + $id = $_POST['id']; + $spremenljivka = self::$_HEADERS[$id]; + $_tip = self::getSpremenljivkaLegenda($spremenljivka,'tip'); + #izpišemo HTML echo ''; echo ''; echo ''; echo ''; echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; echo ''; - echo ''; - echo '"; echo ''; - echo ''; + echo ''; + echo ''; echo ''; - $id = $_POST['id']; - $spremenljivka = self::$_HEADERS[$id]; - $_tip = self::getSpremenljivkaLegenda($spremenljivka,'tip'); - $zaPodstran = $_POST['zaPodstran']; $legend = Cache::spremenljivkaLegenda($id); @@ -6168,281 +6594,213 @@ class SurveyAnalysis { echo '
'; self:: showPreviewSpremenljivka($id); echo '
'; + echo ''; + echo ''; echo ''; } - public static function showSpremenljivkaTextAnswersPopup($id,$seq) { + public static function showSpremenljivkaTextAnswersPopup($id) { global $lang; + global $site_url; + self::$_forceShowEmpty = true; - header('Cache-Control: no-cache'); - header('Pragma: no-cache'); - header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); $anketa = $_REQUEST['anketa']; - #izpišemo HTML - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - - echo ''; - - echo ''; - echo ''; - echo '
'; $id = $_POST['id']; - $seq = $_POST['seq']; $zaPodstran = $_POST['zaPodstran']; $spremenljivka = self::$_HEADERS[$id]; + # koliko zapisov prikažemo naenkrat - $num_show_records = self::getNumRecords(); - + //$num_show_records = self::getNumRecords(); $num_show_records = 9999999; + # poiščemo navedbe textovne spremenljivke tako kot v grafih - $_answers = self::getAnswers($spremenljivka,$num_show_records); - if (count($_answers['valid']) > 0) { - echo '
'; + echo ''; echo self::showVariable($spid, $spremenljivka['variable']); echo ''.$spremenljivka['naslov'].''; + echo ''.$spremenljivka['naslov'].''; if (self::$_SHOW_LEGENDA) { if ($variable['other'] != '1' && $variable['text'] != '1') { $_tip = self::getSpremenljivkaLegenda($spremenljivka,'izrazanje'); @@ -4278,26 +4742,38 @@ class SurveyAnalysis { echo '
'.$lang['srv_analiza_opisne_variable_type'].': '.self::getSpremenljivkaLegenda($spremenljivka,'tip').'
'; } echo '
'; + + + echo '
'; + echo ' '; + echo '
'; self::showIcons($spid,$spremenljivka,$_from); + echo '
'; echo '
'.$lang['srv_analiza_frekvence_titleAnswers'] . ''.$lang['srv_analiza_frekvence_titleAnswers'] . ''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''.$lang['srv_analiza_opisne_variable_expression'].''.$lang['srv_analiza_opisne_variable_skala'].''. $lang['srv_analiza_frekvence_titleFrekvenca'] .''. $lang['srv_analiza_frekvence_titleOdstotek'] .''. $lang['srv_analiza_frekvence_titleFrekvenca'] .''. $lang['srv_analiza_frekvence_titleOdstotek'] .''. $lang['srv_analiza_frekvence_titleVeljavni'] .''. $lang['srv_analiza_frekvence_titleVeljavni'] .''. $lang['srv_analiza_frekvence_titleKumulativa'] .''. $lang['srv_analiza_frekvence_titleKumulativa'] .'
'; + + echo '
'; echo $variable['variable']; echo ''; - //echo ($grid['naslov'] != '' ? $grid['naslov']. ' - ' : '').$variable['naslov']; + + echo ''; echo $variable['naslov']; echo ''.$_tip.''.$_oblika.''.$_tip.''.$_oblika.'    
 '; - echo '
'.$vkey.'
'; - echo (($options['isTextAnswer'] == false && (string)$vkey != $vAnswer['text']) ? ' ('.$vAnswer['text'] .')' : ''); + + + echo '
'; + echo ' '.$vkey.''; + echo (($options['isTextAnswer'] == false && (string)$vkey != $vAnswer['text']) ? ' ('.$vAnswer['text'] .')' : ''); echo '  '; + echo ''; echo (int)$vAnswer['cnt']; echo ''; + + echo ''; echo self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; + echo ''; echo self::formatNumber($_valid, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; - echo self::formatNumber($_kumulativa, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); + echo ''; + echo self::formatNumber($_kumulativa, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo '
 '; - // Pri javni povezavi drugace izpisemo - if(self::$printPreview == false){ - echo '
'.$lang['srv_anl_more'].'
'; - echo '
'.$lang['srv_anl_more'].'
'; - } - else{ - echo '
'.$lang['srv_anl_more'].'
'; - echo '
'.$lang['srv_anl_more'].'
'; - } + + echo '
'; + echo '
'.$lang['srv_anl_more'].'
'; echo '
  '.''.''.''.'
 '; - echo '
'.$lang['srv_anl_all'].'
'; - echo '
'.$lang['srv_anl_all'].'
'; + } + else { + + # v arhivie dodamo vse odgovore vendar so skriti + echo '
'; + echo '
'.$lang['srv_anl_all'].'
'; echo '
  '.''.''.''.'
'.$lang['srv_anl_valid']; + echo '
'; + echo ' '.$lang['srv_anl_valid'].''; echo ''.$lang['srv_anl_suma1'].''.$lang['srv_anl_suma1'].'  //'; - echo self::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ? self::$_FREQUENCYS[$_sequence]['validCnt'] : 0; + echo ''; + echo (isset(self::$_FREQUENCYS[$_sequence]['validCnt'])?self::$_FREQUENCYS[$_sequence]['validCnt']:0) > 0 ? self::$_FREQUENCYS[$_sequence]['validCnt'] : 0; echo '' . self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%') . '' . self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%') . '' . self::formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%') . '' . self::formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%') . ' /
 '; - echo '
'.'' . $vkey . '' . ' (' . $vAnswer['text'].')'.'
'; - echo '
'.self::formatNumber($_invalid, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%').'
'; - echo '
'.$vAnswer['cnt'].'
'; + + echo '
'; + echo '
'.'' . $vkey . '' . ' (' . $vAnswer['text'].')'.'
'; + //echo '
'.self::formatNumber($_invalid, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%').'
'; + //echo '
'.$vAnswer['cnt'].'
'; echo '
  //'; + + echo ''; echo (int)$vAnswer['cnt']; echo ''; + + echo ''; echo self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; - echo ' '; - echo '/'; - echo ' '; - echo '/
'; + echo '
'; echo $lang['srv_anl_missing']; echo ''; - echo $lang['srv_analiza_manjkajocevrednosti']; - // podrobno za missinge - echo '  '; - echo ' ' ; - //echo $lang['srv_analiza_missingSpremenljivke'] ; - echo ' '; - echo ''; - echo '  '; - echo ' ' ; - // echo $lang['srv_analiza_missingSpremenljivke'] ; - echo ' '; - echo ''; - echo '
100.0%
'; - echo '
'.self::$_FREQUENCYS[$_sequence]['invalidCnt'].'
'; + echo '
'; + echo $lang['srv_analiza_manjkajocevrednosti']; echo '    '; - $answer['cnt'] = self::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ? self::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0; + echo ''; + + if(isset(self::$_FREQUENCYS[$_sequence]['invalidCnt']) && self::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0) + $answer['cnt'] = self::$_FREQUENCYS[$_sequence]['invalidCnt']; + else + $answer['cnt'] = 0; + echo (int)$answer['cnt']; echo ''; + + echo ''; echo self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; - echo ' '; - echo '/ /
 '.$lang['srv_anl_suma2'].''.$lang['srv_anl_suma2'].' 
'.$lang['srv_anl_suma2'].'  //' . (self::$_FREQUENCYS[$_sequence]['allCnt'] ? self::$_FREQUENCYS[$_sequence]['allCnt'] : 0) . '' . self::formatNumber('100', SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%') . '' . (self::$_FREQUENCYS[$_sequence]['allCnt'] ? self::$_FREQUENCYS[$_sequence]['allCnt'] : 0) . '' . self::formatNumber('100', SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%') . ' / 
/
 '; echo $validHeatmapRegion; - //echo self::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ? self::$_FREQUENCYS[$_sequence]['validCnt'] : 0; echo '' . self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%') . '' . self::formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%') . ' 
'; echo $lang['srv_anl_missing']; echo ''; - echo $lang['srv_analiza_manjkajocevrednosti']; - - // podrobno za missinge - echo '  '; - echo ' ' ; - //echo $lang['srv_analiza_missingSpremenljivke'] ; - echo ' '; - echo ''; - echo '  '; - echo ' ' ; - // echo $lang['srv_analiza_missingSpremenljivke'] ; - echo ' '; - echo ''; - - echo '
100.0%
'; - //echo '
'.self::$_FREQUENCYS[$_sequence]['invalidCnt'].'
'; - echo '
'.$manjkajoci.'
'; + echo $lang['srv_analiza_manjkajocevrednosti']; echo '
  '; - echo $manjkajoci; - //$answer['cnt'] = self::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ? self::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0; - //echo (int)$answer['cnt']; + echo $manjkajoci; echo ''; - echo self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); - echo ''; - echo ' '; - echo ' 
 '.$lang['srv_anl_suma2'].'
'.$lang['srv_anl_suma2'].'  ' .$ustrezniHeatmapRegion. '' . (self::$_FREQUENCYS[$_sequence]['allCnt'] ? self::$_FREQUENCYS[$_sequence]['allCnt'] : 0) . '' . self::formatNumber('100', SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%') . '  
'; - foreach ($_answers['valid'] AS $vkey => $valid) { - $_valid = $valid[$seq]; + $_answers = self::getAnswers($spremenljivka, $num_show_records); + + + // Naslovna vrstica + echo ''; + echo '

'.$spremenljivka['variable'].' - '.$lang['srv_text_only'].'

'; + + + echo '
'; + + echo '
'; + + $_answersOther = array(); + + # dodamo opcijo kje izrisujemo legendo + $options=array('inline_legenda' => isset($inline_legenda)?$inline_legenda:null, 'isTextAnswer' => false, 'isOtherAnswer' => false, 'num_show_records' => $num_show_records); + + # izpišemo vlejavne odgovore + $_current_grid = null; + if (count($spremenljivka['grids']) > 0) + foreach ($spremenljivka['grids'] AS $gid => $grid) { + $_variables_count = count($grid['variables']); + + # dodamo dodatne vrstice z albelami grida + if ($_variables_count > 0 ) + foreach ($grid['variables'] AS $vid => $variable){ + $_sequence = $variable['sequence']; # id kolone z podatki + + // Naslovna vrstica - lahko jih je vec, ce je text z vec polji + echo ''; + + echo ''; + + echo ''; + + echo ''; + - echo ''; + // Vrstice z responsi + foreach ($_answers['valid'] AS $vkey => $valid) { + $_valid = $valid[$_sequence]; + + echo ''; + echo ' '; + echo ' '; + echo ''; + } } - echo '
'; + echo $variable['variable']; + echo ''; + echo $variable['naslov']; + echo '
'; - echo $_valid; - echo '
'.$_valid.'
'; - echo '
'; } + + echo '
'; + echo '
'; - echo '
'; echo '
'; # izpišemo še tekstovne odgovore za polja drugo @@ -7533,7 +7899,6 @@ class SurveyAnalysis { if (self :: $show_spid_div == true) { echo '
'; - echo '
'; } } @@ -7582,8 +7947,10 @@ class SurveyAnalysis { # dodamo dodatne vrstice z albelami grida if (count($grid['variables']) > 0 ) foreach ($grid['variables'] AS $vid => $variable ){ - $_sequence = $variable['sequence']; # id kolone z podatki - $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; + $_sequence = $variable['sequence']; # id kolone z podatki + + if(isset(self::$_FREQUENCYS[$_sequence]['validCnt'])) + $only_valid += (int)self::$_FREQUENCYS[$_sequence]['validCnt']; } } } @@ -7607,169 +7974,177 @@ class SurveyAnalysis { $_valid_answers = $_answers['valid']; if (self :: $show_spid_div == true) { - echo '
'; + echo '
'; } self::displaySpremenljivkaIcons($spid); + # tekst vprašanja echo ''; //zacetek tabele + # 1. vrstica - naslovna vrstica - echo ''; - #variabla - echo ''; - #odgovori - //echo ''; + + #variabla + echo ''; + + #odgovori + echo ''; - echo ''; echo ''; //konec 1. vrstice + //2. vrstica - prikazovanje povezave do heatmap - echo ''; - #variabla - echo ''; - echo ''; + + #variabla + echo ''; + + echo ''; + echo ''; + echo 'Heatmap '; + echo ''; + + echo ''; echo ''; //konec - 2. vrstice + //Koordinate //naslovna vrstica za koordinate - echo ''; - echo ''; + echo ''; + echo ''; echo ''; //naslovna vrstica za koordinate - konec + + //vrstica s podnaslovi celic - echo ''; - echo ''; - - echo ''; - - echo ''; - - echo ''; - - echo ''; - - echo ''; - - echo ''; + echo ''; + echo ''; + + echo ''; + + echo ''; + + echo ''; + + echo ''; + + echo ''; + + echo ''; echo ''; //vrstica s podnaslovi celic - konec + //vrstica za x echo ''; - //1. stolpcev z imenom koordinate - echo ''; - //1. stolpcev z imenom koordinate - konec - - //2. stolpec - Veljavni - $validHeatmapRegion = self::validHeatmapRegion($spremenljivka['grids'], $spid, $_valid_answers); - echo ''; - //2. stolpec - Veljavni - konec - - //3. stolpec - Ustrezni - $ustrezniHeatmapRegion = self::ustrezniHeatmapRegion($spid, $_valid_answers, $_sequence); //vsi mozni kliki - echo ''; - //3. stolpec - Ustrezni - konec - - //4. stolpec - Povprecje - $povprecjeHeatmapClicksX = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'x', $validHeatmapRegion, 'povprecje'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; - //4. stolpec - Povprecje - konec - - //5. stolpec - Standardni odklon - $stdevHeatmapClicksX = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'x', $validHeatmapRegion, 'stdev'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; - //5. stolpec - Standardni odklon - konec - - //6. stolpec - Minimum - $minHeatmapClicksX = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'x', $validHeatmapRegion, 'min'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; - //6. stolpec - Minimum - konec - - //7. stolpec - Max - $maxHeatmapClicksX = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'x', $validHeatmapRegion, 'max'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; - //7. stolpec - Max - konec + //1. stolpcev z imenom koordinate + echo ''; + //1. stolpcev z imenom koordinate - konec + + //2. stolpec - Veljavni + $validHeatmapRegion = self::validHeatmapRegion($spremenljivka['grids'], $spid, $_valid_answers); + echo ''; + //2. stolpec - Veljavni - konec + + //3. stolpec - Ustrezni + $ustrezniHeatmapRegion = self::ustrezniHeatmapRegion($spid, $_valid_answers, $_sequence); //vsi mozni kliki + echo ''; + //3. stolpec - Ustrezni - konec + + //4. stolpec - Povprecje + $povprecjeHeatmapClicksX = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'x', $validHeatmapRegion, 'povprecje'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + //4. stolpec - Povprecje - konec + + //5. stolpec - Standardni odklon + $stdevHeatmapClicksX = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'x', $validHeatmapRegion, 'stdev'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + //5. stolpec - Standardni odklon - konec + + //6. stolpec - Minimum + $minHeatmapClicksX = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'x', $validHeatmapRegion, 'min'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + //6. stolpec - Minimum - konec + + //7. stolpec - Max + $maxHeatmapClicksX = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'x', $validHeatmapRegion, 'max'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + //7. stolpec - Max - konec echo ''; //vrstica za x - konec //vrstica za y echo ''; - //1. stolpcev z imenom koordinate - echo ''; - //1. stolpcev z imenom koordinate - konec - - //2. stolpec - Veljavni - echo ''; - //2. stolpec - Veljavni - konec - - //3. stolpec - Ustrezni - echo ''; - //3. stolpec - Ustrezni - konec - - //4. stolpec - Povprecje - $povprecjeHeatmapClicksY = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'y', $validHeatmapRegion, 'povprecje'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; - //4. stolpec - Povprecje - konec - - //5. stolpec - Standardni odklon - $stdevHeatmapClicksY = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'y', $validHeatmapRegion, 'stdev'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; - //5. stolpec - Standardni odklon - konec - - //6. stolpec - Minimum - $minHeatmapClicksY = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'y', $validHeatmapRegion, 'min'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; - //6. stolpec - Minimum - konec - - //7. stolpec - Max - $maxHeatmapClicksY = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'y', $validHeatmapRegion, 'max'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); - echo ''; - //7. stolpec - Max - konec + //1. stolpcev z imenom koordinate + echo ''; + //1. stolpcev z imenom koordinate - konec + + //2. stolpec - Veljavni + echo ''; + //2. stolpec - Veljavni - konec + + //3. stolpec - Ustrezni + echo ''; + //3. stolpec - Ustrezni - konec + + //4. stolpec - Povprecje + $povprecjeHeatmapClicksY = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'y', $validHeatmapRegion, 'povprecje'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + //4. stolpec - Povprecje - konec + + //5. stolpec - Standardni odklon + $stdevHeatmapClicksY = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'y', $validHeatmapRegion, 'stdev'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + //5. stolpec - Standardni odklon - konec + + //6. stolpec - Minimum + $minHeatmapClicksY = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'y', $validHeatmapRegion, 'min'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + //6. stolpec - Minimum - konec + + //7. stolpec - Max + $maxHeatmapClicksY = self::formatNumber(self::heatmapClicksCalc($spremenljivka['grids'], $spid, $_valid_answers, 'y', $validHeatmapRegion, 'max'),SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + //7. stolpec - Max - konec echo ''; //vrstica za y - konec @@ -7780,89 +8155,95 @@ class SurveyAnalysis { $RegionPresent = self::HeatmapRegionPresence($spremenljivka['grids'], $spid, $_valid_answers); //preveri, ali je prisotno kaksno obmocje, nadaljuj izris tabele - konec - if($RegionPresent){ //ce imamo obmocja + //ce imamo obmocja + if($RegionPresent){ + //3. vrstica - naslovna za obmocja - echo ''; - echo ''; + echo ''; + echo ''; echo ''; //konec - 3. vrstice + $_answersOther = array(); $_grids_count = count($spremenljivka['grids']); - $_css_bck = 'anl_bck_desc_2 anl_ac anl_bt_dot '; $last = 0; if ($_grids_count > 0) { $_row = $spremenljivka['grids'][0]; $indeks = 0; - //$veljavnaSkupnaFreq = 0; + if (count($_row['variables'])>0) foreach ($_row['variables'] AS $rid => $_col ){ $_sequence = $_col['sequence']; # id kolone z podatki if ($_col['other'] != true) { - echo ''; - if($indeks == 0) //4. vrstica, naslovna vrstica - { - echo ''; + + if($indeks == 0){ + echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - }else //od 5. vrstice dalje, kjer so po vrsticah obmocja in njihovi podatki - { + } + //od 5. vrstice dalje, kjer so po vrsticah obmocja in njihovi podatki + else{ + //1. stolpcev z imenom obmocja - echo ''; //1. stolpcev z imenom obmocja - konec //2. stolpec - Frekvenca $freqHeatmapRegion = self::freqHeatmapRegion($spremenljivka['grids'], $spid, $_valid_answers, $indeks); - $veljavnaSkupnaFreq = $veljavnaSkupnaFreq + $freqHeatmapRegion; - echo ''; + + echo ''; //2. stolpec - Frekvenca - konec //3. stolpec - Veljavni //$validHeatmapRegion = self::validHeatmapRegion($spremenljivka['grids'], $spid, $_valid_answers); - echo ''; + echo ''; //3. stolpec - Veljavni - konec //4. stolpec - % Veljavni $_procentValidHeatmapRegion = ($validHeatmapRegion > 0 ) ? 100*$freqHeatmapRegion / $validHeatmapRegion : 0; $_procentValidHeatmapRegion = self::formatNumber($_procentValidHeatmapRegion, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%'); - echo ''; + echo ''; //4. stolpec - % Veljavni - konec //5. stolpec - Ustrezni $ustrezniHeatmapRegion = self::ustrezniHeatmapRegion($spid, $_valid_answers, $_sequence); //vsi mozni kliki - echo ''; + echo ''; //5. stolpec - Ustrezni - konec //6. stolpec - % Ustrezni $_procentUstrezniHeatmapRegion = ($ustrezniHeatmapRegion > 0 ) ? 100*$freqHeatmapRegion / $ustrezniHeatmapRegion : 0; $_procentUstrezniHeatmapRegion = self::formatNumber($_procentUstrezniHeatmapRegion, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'),'%'); - echo ''; + echo ''; //6. stolpec - % Ustrezni - konec } @@ -7870,27 +8251,29 @@ class SurveyAnalysis { echo ''; //*********** Izris veljavnih in manjkajocih vrednosti - if($indeks != 0) //ce ni naslovna vrsticam je potrebno dodati se dodatne poglede veljavnih in manjkajocih vrednosti - { + //ce ni naslovna vrsticam je potrebno dodati se dodatne poglede veljavnih in manjkajocih vrednosti + if($indeks != 0){ + echo ''; - $counter = 0; - $options['isTextAnswer'] = false; - $manjkajoci = $ustrezniHeatmapRegion - $validHeatmapRegion; - $counter = self::outputSumaValidAnswerHeatmap($counter,$_sequence,$spid,$options, $validHeatmapRegion); - - if (count(self::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) { - foreach (self::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) { - if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki niso 0 - $counter = self::outputInvalidAnswerHeatmap($counter,$ikey,$iAnswer,$_sequence,$spid,$options, $manjkajoci); - } - } - # izpišemo sumo veljavnih - $counter = self::outputSumaInvalidAnswerHeatmap($counter,$_sequence,$spid,$options, $manjkajoci); + + $counter = 0; + $options['isTextAnswer'] = false; + $manjkajoci = $ustrezniHeatmapRegion - $validHeatmapRegion; + $counter = self::outputSumaValidAnswerHeatmap($counter,$_sequence,$spid,$options, $validHeatmapRegion); + + if (count(self::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) { + foreach (self::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) { + if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki niso 0 + $counter = self::outputInvalidAnswerHeatmap($counter,$ikey,$iAnswer,$_sequence,$spid,$options, $manjkajoci); + } } - #izpišemo še skupno sumo - $counter = self::outputSumaHeatmap($counter,$_sequence,$spid,$options, $ustrezniHeatmapRegion); + # izpišemo sumo veljavnih + $counter = self::outputSumaInvalidAnswerHeatmap($counter,$_sequence,$spid,$options, $manjkajoci); + } + #izpišemo še skupno sumo + $counter = self::outputSumaHeatmap($counter,$_sequence,$spid,$options, $ustrezniHeatmapRegion); + echo ''; - $veljavnaSkupnaFreq = 0; } //*********** Izris veljavnih in manjkajocih vrednosti - konec @@ -7904,7 +8287,7 @@ class SurveyAnalysis { echo '
'; - echo self::showVariable($spid, $spremenljivka['variable']); - echo ''.$spremenljivka['naslov'].''; - echo ''.$spremenljivka['naslov'].''; + echo '
'; + echo self::showVariable($spid, $spremenljivka['variable']); + echo ''.$spremenljivka['naslov'].''; + + echo '
'; - //self::showIcons($spid,$spremenljivka,$_from); //za enkrat skrijem ikone za izvoze in druge moznosti - echo ''; - //echo $grid['naslov'].'
';//ni potrebno, ker je ze v glavi? - $sprid = explode('_',$spid); - $loopid = $sprid[1]; - $sprid = $sprid[0]; - SurveyUserSession::Init($anketa); - - $heatmapId = 'heatmap'.$sprid; - //echo $heatmapId; - //SurveyChart::displayExportIcons($sprid); - echo ''; - //echo 'Smiley face'; - echo 'Heatmap '; - echo ''; + echo '
'; + //self::showIcons($spid,$spremenljivka,$_from); //za enkrat skrijem ikone za izvoze in druge moznosti + echo ''; + $sprid = explode('_',(is_string($spid)?$spid:'')); + $loopid = $sprid[1]; + $sprid = $sprid[0]; + SurveyUserSession::Init($anketa); + + $heatmapId = 'heatmap'.$sprid; - echo '
'; - echo ''.$lang['srv_analiza_heatmap_clicked_coords'].''; - echo '
'; + echo $lang['srv_analiza_heatmap_clicked_coords']; + echo '
'; - echo $lang['coordinates']; - echo ''; - echo $lang['srv_analiza_opisne_valid_heatmap']; - echo ''; - echo $lang['srv_analiza_num_units_valid_heatmap']; - echo ''; - echo $lang['srv_means_label']; - echo ''; - echo $lang['srv_analiza_opisne_odklon']; - echo ''; - echo $lang['srv_analiza_opisne_min']; - echo ''; - echo $lang['srv_analiza_opisne_max']; - echo '
'; + echo $lang['coordinates']; + echo ''; + echo $lang['srv_analiza_opisne_valid_heatmap']; + echo ''; + echo $lang['srv_analiza_num_units_valid_heatmap']; + echo ''; + echo $lang['srv_means_label']; + echo ''; + echo $lang['srv_analiza_opisne_odklon']; + echo ''; + echo $lang['srv_analiza_opisne_min']; + echo ''; + echo $lang['srv_analiza_opisne_max']; + echo '
'; - echo 'x'; - echo ''.$validHeatmapRegion.''.$ustrezniHeatmapRegion.''.$povprecjeHeatmapClicksX.''.$stdevHeatmapClicksX.''.$minHeatmapClicksX.''.$maxHeatmapClicksX.''; + echo 'x'; + echo ''.$validHeatmapRegion.''.$ustrezniHeatmapRegion.''.$povprecjeHeatmapClicksX.''.$stdevHeatmapClicksX.''.$minHeatmapClicksX.''.$maxHeatmapClicksX.'
'; - echo 'y'; - echo ''.$validHeatmapRegion.''.$ustrezniHeatmapRegion.''.$povprecjeHeatmapClicksY.''.$stdevHeatmapClicksY.''.$minHeatmapClicksY.''.$maxHeatmapClicksY.''; + echo 'y'; + echo ''.$validHeatmapRegion.''.$ustrezniHeatmapRegion.''.$povprecjeHeatmapClicksY.''.$stdevHeatmapClicksY.''.$minHeatmapClicksY.''.$maxHeatmapClicksY.'
'; - echo ''.$lang['srv_analiza_heatmap_clicked_regions'].''; - echo '
'; + echo ''.$lang['srv_analiza_heatmap_clicked_regions'].''; + echo '
'; + + //4. vrstica, naslovna vrstica + echo '
'; echo $lang['srv_hot_spot_regions_menu']; echo ''; + echo ''; echo $lang['srv_analiza_opisne_frequency_heatmap']; echo ''; + echo ''; echo $lang['srv_analiza_opisne_valid_heatmap']; echo ''; + echo ''; echo '% - '.$lang['srv_analiza_opisne_valid_heatmap']; echo ''; + echo ''; echo $lang['srv_analiza_num_units_valid_heatmap']; echo ''; + echo ''; echo '% - '.$lang['srv_analiza_num_units_valid_heatmap']; echo ''; + echo ''; echo $_col['naslov']; echo ''.$freqHeatmapRegion.''.$freqHeatmapRegion.''.$validHeatmapRegion.''.$validHeatmapRegion.''.$_procentValidHeatmapRegion.''.$_procentValidHeatmapRegion.''.$ustrezniHeatmapRegion.''.$ustrezniHeatmapRegion.''.$_procentUstrezniHeatmapRegion.''.$_procentUstrezniHeatmapRegion.'
'; # izpišemo še tekstovne odgovore za polja drugo - if (count($_answersOther) > 0 && self::$_FILTRED_OTHER) { + if (is_countable($_answersOther) && count($_answersOther) > 0 && self::$_FILTRED_OTHER) { foreach ($_answersOther AS $oAnswers) { echo '
'; self::outputOtherAnswers($oAnswers); @@ -7914,7 +8297,6 @@ class SurveyAnalysis { if (self :: $show_spid_div == true) { echo '
'; - echo '
'; } } @@ -7925,17 +8307,7 @@ class SurveyAnalysis { { $_variables_count = count($grid['variables']); if ($_variables_count > 0) - { - # preštejemo max vrstic na grupo - $_max_i = 0; - //$numObmocij = 0; - foreach ($grid['variables'] AS $vid => $variable ) - { - $_sequence = $variable['sequence']; # id kolone z podatki - $_max_i = max($_max_i,min($num_show_records,self::$_FREQUENCYS[$_sequence]['validCnt'])); - //$numObmocij++; - } - + { $indeksZaObmocja = 0; foreach ($grid['variables'] AS $vid => $variable ) { @@ -8023,28 +8395,20 @@ class SurveyAnalysis { } static function HeatmapRegionPresence($spremenljivkaGrids, $spid, $_valid_answers){ + $HeatmapRegionPresence = false; - foreach ($spremenljivkaGrids AS $gid => $grid) - { + + foreach ($spremenljivkaGrids AS $gid => $grid){ + $_variables_count = count($grid['variables']); - if ($_variables_count > 0) - { - # preštejemo max vrstic na grupo - $_max_i = 0; - //$numObmocij = 0; - foreach ($grid['variables'] AS $vid => $variable ) - { - $_sequence = $variable['sequence']; # id kolone z podatki - $_max_i = max($_max_i,min($num_show_records,self::$_FREQUENCYS[$_sequence]['validCnt'])); - //$numObmocij++; - } - + + if ($_variables_count > 0){ + $indeksZaObmocja = 0; - foreach ($grid['variables'] AS $vid => $variable ) - { + foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - if ($variable['other'] != true) - { + + if ($variable['other'] != true){ if (count($_valid_answers) > 0) { foreach ($_valid_answers AS $answer) { @@ -8057,11 +8421,10 @@ class SurveyAnalysis { } } } - - } - + } } } + return $HeatmapRegionPresence; } @@ -8070,48 +8433,39 @@ class SurveyAnalysis { $stdevCoordsArray = array(); $minCoords = 0; $maxCoords = 0; - foreach ($spremenljivkaGrids AS $gid => $grid) - { + + foreach ($spremenljivkaGrids AS $gid => $grid){ + $_variables_count = count($grid['variables']); - if ($_variables_count > 0) - { - # preštejemo max vrstic na grupo - $_max_i = 0; - //$numObmocij = 0; - foreach ($grid['variables'] AS $vid => $variable ) - { - $_sequence = $variable['sequence']; # id kolone z podatki - $_max_i = max($_max_i,min($num_show_records,self::$_FREQUENCYS[$_sequence]['validCnt'])); - //$numObmocij++; - } + + if ($_variables_count > 0){ $indeksZaObmocja = 0; - foreach ($grid['variables'] AS $vid => $variable ) - { + + foreach ($grid['variables'] AS $vid => $variable ){ + $_sequence = $variable['sequence']; # id kolone z podatki - if ($variable['other'] != true) - { - #$_valid_cnt = count(self::$_FREQUENCYS[$_sequence]['valid']); + + if ($variable['other'] != true){ if (count($_valid_answers) > 0) { foreach ($_valid_answers AS $answer) { $_ans = $answer[$_sequence]; - if ($_ans != null && $_ans != '' && $_ans >= 0 && $indeksZaObmocja < count($_valid_answers)) - { - //$validHeatmapRegion = $validHeatmapRegion + $_ans; - //echo '
'.$_ans.'
'; + echo ''; - echo '
'; - } + //Stolpec za ikone - prazen header + echo ''; - echo '
'; - echo ''; - if ($defaultFields['delete']) - echo ''; - if ($defaultFields['edit']) - echo ''; - if ($defaultFields['email']) - echo ''; if ($defaultFields['name']) - echo ''; + echo ''; if ($defaultFields['note']) - echo ''; - if ($defaultFields['access']) - echo ''; + echo ''; if ($defaultFields['type']) - echo ''; + echo ''; if ($defaultFields['date']) - echo ''; + echo ''; if ($defaultFields['duration']) - echo ''; + echo ''; if ($defaultFields['insert']) - echo ''; + echo ''; if ($defaultFields['edit']) - echo ''; + echo ''; + if ($defaultFields['access']) + echo ''; + echo ''; while ($row = mysqli_fetch_assoc($s)) { echo ''; - if ($defaultFields['delete']) { - echo ''; - } - if ($defaultFields['edit']) { - echo ''; - } - if ($defaultFields['email']) { - echo ''; - } + + //Stolpec za ikone - vrstice + echo ''; + + + if ($defaultFields['name']) { echo ''; } - if ($defaultFields['access']) { - echo ''; - } if ($defaultFields['type']) { $key = $lang['srv_analiza_arhiviraj_type_'.$row['type']]; echo ''; @@ -212,17 +214,30 @@ class SurveyAnalysisArchive { echo $row['eemail']; echo ''; } + if ($defaultFields['access']) { + echo ''; + } echo ''; } echo '
'.$lang['srv_analiza_archive_lbl_delete'].''.$lang['srv_analiza_archive_lbl_edit'].''.$lang['srv_analiza_archive_lbl_send'].''.$lang['srv_analiza_archive_lbl_name'].''.$lang['srv_analiza_archive_lbl_name'].''.$lang['srv_analiza_archive_lbl_note'].''.$lang['srv_analiza_archive_lbl_access'].''.$lang['srv_analiza_archive_lbl_note'].''.$lang['srv_analiza_archive_lbl_type'].''.$lang['srv_analiza_archive_lbl_type'].''.$lang['srv_analiza_archive_lbl_date'].''.$lang['srv_analiza_archive_lbl_date'].''.$lang['srv_analiza_archive_lbl_duration'].''.$lang['srv_analiza_archive_lbl_duration'].''.$lang['srv_analiza_archive_lbl_author'].''.$lang['srv_analiza_archive_lbl_author'].''.$lang['srv_analiza_archive_lbl_editor'].''.$lang['srv_analiza_archive_lbl_editor'].''.$lang['srv_analiza_archive_lbl_access'].'
'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + echo '
'; + + echo ''; + + if ($defaultFields['email']) + echo ''; + if ($defaultFields['edit']) + echo ''; + if ($defaultFields['delete']) + echo ''; + + echo '
'; + echo '
'; echo ''; @@ -180,9 +185,6 @@ class SurveyAnalysisArchive { if ($defaultFields['note']) { echo ''.$row['note'].''.$lang['srv_analiza_arhiviraj_access_'.$row['access']].''.$key.''.$lang['srv_analiza_arhiviraj_access_'.$row['access']].'
'; + + echo '
'; + echo '
'; + + echo ''; + } else { echo '
'; echo ''.$lang['srv_archive_analysis'].''; - echo $lang['srv_analiza_archive_note_no_archive']; - echo '

'; - echo $lang['srv_analiza_archive_generate_quick']; + echo '

'.$lang['srv_analiza_archive_note_no_archive'].'

'; + echo '

'.$lang['srv_analiza_archive_note1'].'

'; + echo '

'.$lang['srv_analiza_archive_generate_quick'].'

'; + + echo '
'; + echo ''; + echo '
'; echo '
'; } @@ -297,7 +312,7 @@ class SurveyAnalysisArchive { $text .= $creport_title; } else{ - $text .= $lang['srv_analiza_archive_title'].$lang['srv_analiza_arhiviraj_type_'.$type]; + $text .= $lang['srv_analiza_archive_title'].($type!==null?$lang['srv_analiza_arhiviraj_type_'.$type]:''); } $text .= ($survey_hide_title == 1) ? '' : ''; @@ -317,98 +332,129 @@ class SurveyAnalysisArchive { static function DisplayDoArchive() { global $lang, $site_url; - echo '
'."\n"; + echo '
'; echo ''; - echo '

'.$lang['srv_analiza_arhiv'].'

'; - - echo $lang['srv_analiza_arhiviraj_ime']; - echo ': '."\n"; + echo '

'.$lang['srv_analiza_archive_generate_quick_button'].'

'; - echo '
'; + echo '
'; + echo ''.$lang['srv_analiza_arhiviraj_ime'].':'; + echo ''; + echo '
'; - echo '
'; - echo $lang['srv_analiza_archive_note'].':'; - echo ''; + echo '
'; + echo ''.$lang['srv_analiza_archive_note'].':'; + echo ''; echo '
'; - echo '
'; - echo '
'; + + echo '
'; // dostop - echo '
'; - echo $lang['srv_analiza_archive_access'].':'; - echo '
 '.$lang['srv_analiza_archive_access_all']; - echo '
 '.$lang['srv_analiza_archive_access_admins']; - echo '
 '.$lang['srv_analiza_archive_access_password']; - echo '
'; - echo '
 
'; - + echo '
'; + + echo '
'; + echo ''.$lang['srv_analiza_archive_access'].':'; + + echo '
'; + echo ''; + echo ''; + echo '
'; + echo '
'; + echo ''; + echo ''; + echo '
'; + echo '
'; + echo ''; + echo ''; + echo '
'; + echo '
'; + echo $lang['srv_analiza_archive_access_password_label'].':'; + echo ''; + echo '
'; + + echo '
'; + echo '
'; //left + // trajanje - echo '
'; - echo $lang['srv_analiza_archive_duration'].':'; - echo '
'; + echo '
'; + + echo '
'; + echo ''.$lang['srv_analiza_archive_duration'].':'; + $date = date("Y-m-d");// current date $duration = strtotime(date("Y-m-d", strtotime($date)) . " +3 month"); $duration = date("d.m.Y",$duration); + + echo '
'; echo ''; + echo ''; echo '
'; - - echo '
'; + echo '
'; + echo ''; + echo ''; + echo ''; + echo ' + + '; echo '
'; - - echo '
'."\n"; - echo $lang['srv_analiza_current_archives']; - if (true) { - self :: ListArchive(array('create_new'=>false, 'delete'=>false, 'edit'=>false, 'email'=>false, 'access'=>false, 'note'=>false, 'type'=>true, 'access'=>false, 'name_link'=>true,'duration'=>false, 'insert'=>true, 'edit'=>false)); - #self :: ListArchive(array('delete'=>false, 'edit'=>false, 'email'=>false, 'access'=>false, 'note'=>false, 'type'=>false, 'access'=>false, 'name_link'=>true, 'duration'=>false, 'insert'=>false, 'edit'=>false)); - } else { - echo $lang['srv_analiza_no_current_archives']; - } - - echo '
'."\n"; // end: div_curent_archives - - - if ($_GET['podstran'] == M_ANALYSIS_CROSSTAB || $_POST['podstran'] == M_ANALYSIS_CROSSTAB) { - echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; - } else if ($_GET['podstran'] == M_ANALYSIS_MEANS || $_POST['podstran'] == M_ANALYSIS_MEANS) { - echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; - } else if ($_GET['podstran'] == M_ANALYSIS_TTEST || $_POST['podstran'] == M_ANALYSIS_TTEST) { - echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; - } else if ($_GET['podstran'] == M_ANALYSIS_BREAK || $_POST['podstran'] == M_ANALYSIS_BREAK) { - echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; - } else if ($_GET['podstran'] == M_ANALYSIS_CHARTS || $_POST['podstran'] == M_ANALYSIS_CHARTS) { - echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; - } else if ($_GET['podstran'] == M_ANALYSIS_CREPORT || $_POST['podstran'] == M_ANALYSIS_CREPORT) { - echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; - } else { - echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; - } - echo ''.$lang['srv_analiza_arhiviraj_cancle'].''."\n"; + echo '
'; + echo ''; + echo ''; + echo '
'; + + echo '
'; + + echo '
'; //right - echo '
'."\n"; // end div_analiza_archive_name + echo '
'; //wrap + + echo '
'; + echo ''; + + $action = ''; + + if(isset($_GET['podstran'])){ + if ($_GET['podstran'] == M_ANALYSIS_CROSSTAB || $_POST['podstran'] == M_ANALYSIS_CROSSTAB) { + $action = 'submitArchiveCrosstabs();'; + } else if ($_GET['podstran'] == M_ANALYSIS_MEANS || $_POST['podstran'] == M_ANALYSIS_MEANS) { + $action = 'submitArchiveMeans();'; + } else if ($_GET['podstran'] == M_ANALYSIS_TTEST || $_POST['podstran'] == M_ANALYSIS_TTEST) { + $action = 'submitArchiveTTest();'; + } else if ($_GET['podstran'] == M_ANALYSIS_BREAK || $_POST['podstran'] == M_ANALYSIS_BREAK) { + $action = 'submitArchiveBreak();'; + } else if ($_GET['podstran'] == M_ANALYSIS_CHARTS || $_POST['podstran'] == M_ANALYSIS_CHARTS) { + $action = 'submitArchiveChart();'; + } else if ($_GET['podstran'] == M_ANALYSIS_CREPORT || $_POST['podstran'] == M_ANALYSIS_CREPORT) { + $action = 'submitArchiveCReport();'; + } else { + $action = 'submitArchiveAnaliza();'; + } + } + else { + $action = 'submitArchiveAnaliza();'; + } + + echo ''; + + echo '
'; + + echo '
'; // end div_analiza_archive_name } static function DisplayCreatedArchive($aid=null, $name) { global $lang, $site_url; - echo '
'."\n"; + echo '
'; echo ''; @@ -416,39 +462,29 @@ class SurveyAnalysisArchive { $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { - echo '
'; + echo '

'; printf( $lang['srv_analiza_arhiviraj_success'],$name); - echo '

'; - echo '
'; + echo '

'; - echo '
'; + $archive_link = $site_url.'admin/survey/AnalysisArchive.php?anketa='.self::$sid.'&aid='. $aid; + + echo '

'; echo $lang['srv_analiza_arhiviraj_success_note']; - echo '
'; - echo ''; - echo ''; - echo $site_url.'admin/survey/AnalysisArchive.php?anketa='.self::$sid.'&aid='. $aid; + echo ': '; + echo $archive_link; echo ''; - echo ''; + echo ''; + echo '

'; + + echo '
'; + echo ''; + //echo ''; echo '
'; - - echo ''.$lang['srv_analiza_arhiviraj_close'].''."\n"; - echo ' '.$lang['srv_analiza_arhiviraj_send_mail'].''."\n"; } else { self::DisplayError($CAE); } - - # seznam arhivov - echo '
'; - echo '
'."\n"; - echo $lang['srv_analiza_current_archives']; - if (true) { - self :: ListArchive(array('delete'=>false, 'edit'=>false, 'email'=>false, 'access'=>false, 'note'=>false, 'type'=>true, 'access'=>false, 'name_link'=>true,'duration'=>false, 'insert'=>true, 'edit'=>false)); - } else { - echo $lang['srv_analiza_no_current_archives']; - } - echo '
'."\n"; // end: div_curent_archives - echo '
'."\n"; // end div_analiza_archive_name + echo '
'; // end div_analiza_archive_name } static function EmailArchive($aid) { @@ -458,63 +494,74 @@ class SurveyAnalysisArchive { echo ''; - echo '

'.$lang['srv_analiza_arhiv'].'

'; + echo '

'.$lang['srv_export_hover_archive_mail'].'

'; # preverimo obstoj datoteke, in dostop $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { # vsebina emaila in naslovi - echo '
'."\n"; - - echo '

'.$lang['srv_analiza_archive_message_note'].'

'; - - echo '
'."\n"; - echo ''."\n"; - echo '
'; - - echo '
'; + + echo '
'; + echo ''; + echo ''; + echo '
'; + + echo '
'; + echo ''; + echo ''; + echo '
'; - echo '
'; - echo '
'; - echo '

'; - echo '

'."\n"; + echo '' . $lang['message'] . ':'; + + echo '

'; + echo '
'; $signature = Common::getEmailSignature(); echo ''."\n"; - echo '
'; + echo ''."\n"; - - echo '
'."\n"; - #gumbi + + echo '
'; #left + echo '
'."\n"; + + //Navodila + echo '
'; + + echo '

'.$lang['srv_alert_instruction1'].'

'; + echo '

'.$lang['srv_alert_instruction1c'].'

'; - echo '
'; - echo ''.$lang['srv_analiza_arhiviraj_do_send_mail'].''."\n"; - echo ''.$lang['srv_analiza_arhiviraj_close'].''."\n"; - echo '
'; + echo '
'; + echo '

'.$lang['srv_alert_instruction_link_archive'].'

'; + echo '

'.$lang['srv_alert_instruction_URL_archive'].'

'; + echo '

'.$lang['srv_alert_instruction_name_archive'].'

'; + echo '

'.$lang['srv_alert_instruction_survey'].'

'; + echo '

'.$lang['srv_alert_instruction_date'].'

'; + echo '

'.$lang['srv_alert_instruction_site'].'

'; echo '
'; - echo '
'; - # navodila - echo $lang['srv_analiza_arhiviraj_mail_note_0']; - echo '
'; - echo '
'; - echo '
'; - echo '
'; - # navodila - echo $lang['srv_analiza_arhiviraj_mail_note_1']; + echo '
'; + + echo '
'; //right + + echo '
'; //wrap + + #gumbi + echo '
'; + echo ''; + echo ''; echo '
'; - echo '
'; + } else { self::DisplayError($CAE); } - echo '
'."\n"; // end div_analiza_archive_name + echo '
'; // end div_analiza_archive_name } static function SendEmailArchive($aid = null, $subject, $text, $emails) { @@ -524,7 +571,7 @@ class SurveyAnalysisArchive { echo ''; - echo '

'.$lang['srv_analiza_arhiv'].'

'; + echo '

'.$lang['srv_export_hover_archive_mail'].'

'; $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { @@ -625,19 +672,21 @@ class SurveyAnalysisArchive { echo 'Pri pošiljanju e-mailov je prišlo do napake!'; } - echo ''.$lang['srv_analiza_arhiviraj_close'].''."\n"; - echo '
'; + echo '
'; + echo ''; + echo '
'; + } else { self::DisplayError($CAE); } - echo '
'."\n"; // end div_analiza_archive_name + echo '
'; // end div_analiza_archive_name } static function EditArchive($aid) { global $lang, $site_url, $site_path, $global_user_id; - echo '
'."\n"; + echo '
'."\n"; echo ''; @@ -649,31 +698,53 @@ class SurveyAnalysisArchive { $s = sisplet_query("SELECT *, UNIX_TIMESTAMP(duration) as duration_d FROM srv_analysis_archive WHERE id='".$aid."' AND sid='".self::$sid."'"); $row = mysqli_fetch_assoc($s); - echo $lang['srv_analiza_arhiviraj_ime']; - echo ': '."\n"; - echo '
'; - echo '
'; - echo $lang['srv_analiza_archive_note'].':'; - echo ''; - echo '
'; - echo '
'; - // dostop - echo '
'; - echo $lang['srv_analiza_archive_access'].':'; - echo '
 '.$lang['srv_analiza_archive_access_all']; - echo '
 '.$lang['srv_analiza_archive_access_admins']; - echo '
 '.$lang['srv_analiza_archive_access_password']; - echo '
'.$lang['srv_analiza_archive_access_password_label'].''; - echo '
'; - - echo '
 
'; - // trajanje - echo '
'; - echo $lang['srv_analiza_archive_duration'].':'; - echo '
'; - echo ' - + echo '
'; + echo ''.$lang['srv_analiza_arhiviraj_ime'].':'; + echo ''; + echo '
'; + + echo '
'; + echo ''.$lang['srv_analiza_archive_note'].':'; + echo ''; + echo '
'; + + echo '
'; + // dostop + echo '
'; + + echo '
'; + echo ''.$lang['srv_analiza_archive_access'].':'; + + echo '
'; + echo ''; + echo ''; + echo '
'; + echo '
'; + echo ''; + echo ''; + echo '
'; + echo '
'; + echo ''; + echo ''; + echo '
'; + echo '
'; + echo $lang['srv_analiza_archive_access_password_label'].':'; + echo ''; + echo '
'; + + echo '
'; + echo '
'; //left + + // trajanje + echo '
'; + + echo '
'; + echo ''.$lang['srv_analiza_archive_duration'].':'; + + echo '
'; + echo ''; + echo ' '; - - echo '
'; - echo '
'; - echo '
'; + echo '
'; + + echo '
'; + + + echo '
'; //right + + echo '
'; //wrap + + echo '
'; + echo ''; + echo ''; + echo '
'; - echo ''.$lang['srv_analiza_arhiviraj_save'].''."\n"; - echo ''.$lang['srv_analiza_arhiviraj_close'].''."\n"; - echo '
'; } else { self::DisplayError($CAE); } @@ -744,7 +821,7 @@ class SurveyAnalysisArchive { #podtki profila $s = sisplet_query("SELECT filename, access FROM srv_analysis_archive WHERE id='".$aid."' AND sid='".self::$sid."'"); - if ($_GET['debug'] == 1) { + if (isset($_GET['debug'])&&$_GET['debug'] == 1) { print_r("SELECT * FROM srv_analysis_archive WHERE id='".$aid."' AND sid='".self::$sid."'"); } if (mysqli_num_rows($s)) { @@ -811,10 +888,6 @@ class SurveyAnalysisArchive { static function ViewArchive($aid) { global $site_path, $global_user_id, $lang, $site_url; - #izpišemo osnovni html - $sql = sisplet_query("SELECT * FROM misc WHERE what='name'"); - $row = mysqli_fetch_array($sql); - // nastavimo jezik if (self::$sid > 0) { $sql = sisplet_query("SELECT lang_admin FROM srv_anketa WHERE id = '".self::$sid."'"); @@ -836,10 +909,10 @@ class SurveyAnalysisArchive { echo ''."\n"; echo ''."\n"; echo ''."\n"; - echo ''.$row['value'].''."\n"; + echo ''.(isset($row['value'])?$row['value']:'').''."\n"; echo ''."\n"; echo ''; - if ($_GET['mode'] != 'old') { + if (isset($_GET['mode'])&&$_GET['mode'] != 'old') { echo ''."\n"; } else { echo ''."\n"; @@ -933,8 +1006,9 @@ class SurveyAnalysisArchive { echo '
'; if ($showButton) { - echo ''.$lang['srv_analiza_arhiviraj_close'].''."\n"; - echo '
'; + echo '
'; + echo ''; + echo '
'; } } @@ -990,11 +1064,14 @@ class SurveyAnalysisArchive { $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { - echo '

Ali ste prepričani?

'; - echo ''.$lang['srv_analiza_arhiviraj_delete'].''."\n"; - echo ''.$lang['srv_analiza_arhiviraj_cancle'].''."\n"; - - echo '
'; + echo '

'.$lang['srv_analiza_archive_list_delete'].'

'; + + echo '

'.$lang['srv_analiza_archive_list_delete_text'].'

'; + + echo '
'; + echo ' '; + echo ' '; + echo '
'; } else { #izpišemo error @@ -1208,7 +1285,10 @@ class SurveyAnalysisArchive { * */ static function createArchiveFromAnaliza() { + $content = null; + $settings = array(); + if($_POST['podstran'] == 'charts'){ # kreiramo arhiv za grafe $SC = new SurveyChart(); @@ -1229,13 +1309,15 @@ class SurveyAnalysisArchive { if ($_POST['podstran'] == 'anal_arch') { $_POST['podstran'] = 'sumarnik'; } + if (!isset($_POST['content'])) { SurveyAnalysis::Init(self::$sid); SurveyAnalysis::setUpIsForArchive(true); SurveyAnalysis::setUpReturnAsHtml(true); $content = SurveyAnalysis::Display(); - } else { + } + else { $content = $_POST['content']; } } @@ -1249,13 +1331,13 @@ class SurveyAnalysisArchive { $ArchiveTypes = array(M_ANALIZA_SUMS => 0, M_ANALIZA_DESCRIPTOR=>1, M_ANALIZA_FREQUENCY=>2, M_ANALIZA_CROSSTAB=>3, M_ANALYSIS_MEANS=>4, M_ANALYSIS_TTEST=>5, M_ANALYSIS_BREAK=>6, M_ANALYSIS_CHARTS=>7, M_ANALYSIS_CREPORT=>8); if (isset($_POST['podstran'])) - $type = $ArchiveTypes[$_POST['podstran']]; - if (isset($content) && trim($content) != null && self::$sid > 0) { + $type = isset($ArchiveTypes[$_POST['podstran']])?$ArchiveTypes[$_POST['podstran']]:null; + if (isset($content) && trim($content) != null && self::$sid > 0) { SurveyAnalysisArchive :: Init(self::$sid); - SurveyAnalysisArchive :: CreateArchive($content,$name,$note,$access,$type,$duration,$durationType,$settings,$access_password); - - } else { + SurveyAnalysisArchive :: CreateArchive($content,$name,$note,$access,$type,$duration,$durationType,$settings,$access_password); + } + else { echo 'Error! (SurveyAnalysisArchive :: CreateArchive)'; } diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyAnalysisHelper.php b/admin/survey/classes/surveyAnalysis/class.SurveyAnalysisHelper.php index 5c0a562..9e944a7 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyAnalysisHelper.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyAnalysisHelper.php @@ -28,9 +28,8 @@ class SurveyAnalysisHelper { self::$anketa = $anketa; SurveyInfo::getInstance()->SurveyInit(self::$anketa); - if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) - self::$db_table = '_active'; - + + self::$db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); } } @@ -38,7 +37,7 @@ class SurveyAnalysisHelper { global $lang; global $global_user_id; - if($_GET['m'] != 'analysis_creport' && $_GET['t'] != 'custom_report'){ + if((!isset($_GET['m']) || $_GET['m'] != 'analysis_creport') && $_GET['t'] != 'custom_report'){ $creportProfile = SurveyUserSetting :: getInstance()->getSettings('default_creport_profile'); $creportProfile = isset($creportProfile) ? $creportProfile : 0; @@ -48,15 +47,17 @@ class SurveyAnalysisHelper { $sql = sisplet_query("SELECT id FROM srv_custom_report WHERE ank_id='".self::$anketa."' AND usr_id='".$creportAuthor."' AND type='$type' AND sub_type='$sub_type' AND spr1='$spr1' AND spr2='$spr2' AND profile='$creportProfile'"); $insert = (mysqli_num_rows($sql)) ? 0 : 1; $id = $type.'-'.$sub_type.'-'.$spr1.'-'.$spr2; + // Samo zvezdica (sums, grafi, freq...) if($type < 5) - echo ''; + echo '
'.$lang['srv_custom_report_insert_title'].'
'; + // Zvezdica s textom else{ echo '
'; echo ''; - echo ''; + echo ' '; echo ''; echo ''; echo ''; @@ -69,58 +70,67 @@ class SurveyAnalysisHelper { function displayMissingLegend(){ global $lang; - echo '
'; - echo '
'; - echo ''; - echo ' '.$lang['srv_bottom_data_legend_note']; + echo '
'; + + echo '
'; + echo ''.$lang['srv_bottom_data_legend_note']; echo '
'; - echo ''; } function displayStatusLegend(){ global $lang; - - echo '
'; - echo '
'; - echo ''; - echo ' '.$lang['srv_bottom_data_legend_status_note']; + + echo '
'; + + echo '
'; + echo ' '.$lang['srv_bottom_data_legend_status_note'].''; echo '
'; - echo ''; + echo '
'; } function displayTestLegend(){ global $lang; - echo '
'; - echo '
'; - echo ''; - echo ' '.$lang['srv_bottom_data_legend_test_note']; + echo '
'; + + echo '
'; + echo ' '.$lang['srv_bottom_data_legend_test_note'].''; echo '
'; - echo ''; } } \ No newline at end of file diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyBreak.php b/admin/survey/classes/surveyAnalysis/class.SurveyBreak.php index aa2a829..e510b2a 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyBreak.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyBreak.php @@ -8,8 +8,8 @@ * */ -define("EXPORT_FOLDER", "admin/survey/SurveyData"); -define("BREAK_OPTION_LIMIT", 15); +if(!defined("EXPORT_FOLDER"))define("EXPORT_FOLDER", "admin/survey/SurveyData"); +if(!defined("BREAK_OPTION_LIMIT"))define("BREAK_OPTION_LIMIT", 15); class SurveyBreak { @@ -42,17 +42,24 @@ class SurveyBreak private $num_digit_percent = NUM_DIGIT_PERCENT; function __construct($sid) { + global $global_user_id; + if ((int)$sid > 0) { + $this->sid = $sid; SurveyAnalysisHelper::getInstance()->Init($this->sid); # polovimo vrsto tabel (aktivne / neaktivne) SurveyInfo :: getInstance()->SurveyInit($this->sid); - if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) { - $this->db_table = '_active'; - } + $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); + $this->_CURRENT_STATUS_FILTER = STATUS_FIELD.' ~ /6|5/'; + + // Pri glasovanju tega ne pustimo + if(SurveyInfo::getInstance()->getSurveyColumn("survey_type") == 0){ + die(); + } #inicializiramo class za datoteke $this->SDF = SurveyDataFile::get_instance(); @@ -204,16 +211,9 @@ class SurveyBreak $SSH -> displayTestDataBar(true); } - /*echo '
'; - SurveyStatusProfiles::displayOnlyValidCheckbox(); - echo '
';*/ - # ali prikazujemo tabele ali grafe $this->break_charts = (isset($this->sessionData['break']['break_show_charts']) && (int)$this->sessionData['break']['break_show_charts'] == 1) ? 1 : 0; - //$this->DisplayLinks(); - //$this->DisplayFilters(); - echo '
'; $this->displayData(); echo '
'; #id="div_break_data" @@ -256,43 +256,58 @@ class SurveyBreak function displayData() { global $lang; - echo '
'; + $variables = $this->getVariableList(2); - - echo ''; - echo $lang['srv_break_label1']; - echo '
'; - echo ''; echo ''; if (count($variables)) { foreach ($variables as $variable) { - echo ''; } } - echo ''; # name="breakSpremenljivka" - echo '
'; + echo ''; - echo '' ; + echo '
'; + + // Dodatne nastavitve + echo '
' ; + + echo ''.$lang['settings'].':'; + + echo ''; $this->displayLinePercent(); - $this->displayLineCharts(); // V DELU... - echo ''; + echo ''; + + echo ''; + $this->displayLineCharts(); + echo ''; + + echo '
'; - echo '
'; - echo '
'; # id="break_variables" + echo '
'; + + + echo '
'; if (isset($this->sessionData['break']['spr']) && (int)$this->sessionData['break']['spr'] > 0 && isset($this->sessionData['break']['seq']) && (int)$this->sessionData['break']['seq'] > 0) { - echo '
'; + $this->doBreakForSpremenljivka(); - echo '
'; # id="breakResults" - } else { - echo '
'; - } + } + echo '
'; # id="breakResults" } /** funkcija vrne seznam primern variabel za crostabe @@ -304,7 +319,7 @@ class SurveyBreak # zloopamo skozi header in dodamo variable (potrebujemo posamezne sekvence) foreach ($this->_HEADERS AS $skey => $spremenljivka) { - $tip = $spremenljivka['tip']; + $tip = isset($spremenljivka['tip'])?$spremenljivka['tip']:null; { #drugi dropdown # tekstovnih in numeričnih tipov ne dodajamo @@ -410,7 +425,7 @@ class SurveyBreak if (count($spremenljivka['grids']) == 1 ) { # če imamo samo en grid ( lahko je več variabel zaradi polja drugo. $grid = $spremenljivka['grids'][0]; - if (count ($grid['variables']) > 0) { + if (isset($grid['variables'])&&count ($grid['variables']) > 0) { foreach ($grid['variables'] AS $vid => $variable ){ if ($variable['other'] != 1) { $this->variablesList[] = array( @@ -428,7 +443,7 @@ class SurveyBreak # imamo multicheckbox foreach($spremenljivka['grids'] AS $gid => $grid) { $sub = 0; - if ($grid['variable'] != '') { + if (isset($grid['variable'])&&$grid['variable'] != '') { $sub++; $this->variablesList[] = array( 'tip'=>$tip, @@ -444,7 +459,7 @@ class SurveyBreak # imamo več gridov - tabele foreach($spremenljivka['grids'] AS $gid => $grid) { $sub = 0; - if ($grid['variable'] != '') { + if (isset($grid['variable'])&&$grid['variable'] != '') { $sub++; $this->variablesList[] = array( 'tip'=>$tip, @@ -525,10 +540,10 @@ class SurveyBreak } } } + $this->displayBreak($spr,$frequencys); - - } else { - echo '
'; + } + else { echo '

'.$lang['srv_break_error_note_1'].'

'; } } @@ -574,11 +589,8 @@ class SurveyBreak } function displayBreak($forSpr, $frequencys) { - - + ob_start(); // outer buffer - # če imamo filter spremenljivk ga izpišemo - echo '
'; # če ne uporabljamo privzetega časovnega profila izpišemo opozorilo SurveyTimeProfiles :: printIsDefaultProfile(false); @@ -592,13 +604,16 @@ class SurveyBreak # filtriranje po spremenljivkah $_FILTRED_VARIABLES = SurveyVariablesProfiles::getProfileVariables(SurveyVariablesProfiles::checkDefaultProfile(), true); + + foreach ($this->_HEADERS AS $skey => $spremenljivka) { - if ((int)$spremenljivka['hide_system'] == 1 && in_array($spremenljivka['variable'],array('email','ime','priimek','telefon','naziv','drugo'))) { + if (isset($spremenljivka['hide_system'])&&(int)$spremenljivka['hide_system'] == 1 && in_array($spremenljivka['variable'],array('email','ime','priimek','telefon','naziv','drugo'))) { continue; } + $spremenljivka['id'] = $skey; - $tip = $spremenljivka['tip']; + $tip = isset($spremenljivka['tip'])?$spremenljivka['tip']:null; if ( is_numeric($tip) && $tip != 4 #text && $tip != 5 #label @@ -610,7 +625,8 @@ class SurveyBreak ) { $this->displayBreakSpremenljivka($forSpr,$frequencys,$spremenljivka); - } else if ( is_numeric($tip) + } + else if ( is_numeric($tip) && ( $tip == 4 #text || $tip == 19 #multitext @@ -618,6 +634,7 @@ class SurveyBreak || $tip == 20 #multi numer* ) && ( count($_FILTRED_VARIABLES) == 0 || (count($_FILTRED_VARIABLES) > 0 && isset($_FILTRED_VARIABLES[$skey]) ) ) ) { + $this->displayBreakSpremenljivka($forSpr,$frequencys,$spremenljivka); } @@ -654,9 +671,10 @@ class SurveyBreak # checkbox case 2: - $this->displayCrosstabTable($forSpr,$frequencys,$spremenljivka); - break; - #number + $this->displayCrosstabTable($forSpr,$frequencys,$spremenljivka); + break; + + #number case 7: #ranking case 17: @@ -666,10 +684,11 @@ class SurveyBreak case 20: $this->displayBreakTableNumber($forSpr,$frequencys,$spremenljivka); break ; - + case 19: $this->displayBreakTableText($forSpr,$frequencys,$spremenljivka); break ; + #multicheck case 16: $this->displayCrosstabTable($forSpr,$frequencys,$spremenljivka); @@ -679,8 +698,6 @@ class SurveyBreak case 21: # po novem besedilo izpisujemo v klasični tabeli $this->displayBreakTableText($forSpr,$frequencys,$spremenljivka); - - #$this->displayCrosstabTable($forSpr,$frequencys,$spremenljivka); break; default: @@ -727,38 +744,53 @@ class SurveyBreak # ce imamo vec kot 20 kategorij,izpisujemo samo tiste ki imajo vrednosti $displayAll = (count($options) > 20) ? false : true; - echo '
'; - if (isset($spremenljivka['double']) && $spremenljivka['double'] > 1) { + if (isset($spremenljivka['double']) && $spremenljivka['double'] > 1) { $doubleGridParts = $spremenljivka['double']; $multiply = 1; $isDoubleGrid = true; - } else { + } + else { $doubleGridParts[1]['subtitle'] = ''; $multiply = 2; $isDoubleGrid = false; } - - + # če imamo dvojno tabelo - $rowspan = ' rowspan="3"'; $colspan = ' colspan="'.($multiply*count($sequences)).'"'; + foreach ($doubleGridParts AS $part => $doubleGridTitle) { - echo '
'; + + echo '
'; + + + // Zvezdica za vkljucitev v porocilo + echo '
'; + + $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; + $spr2 = $spremenljivka['grids'][0]['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); + + echo '
'; + + # če ni multicheck in multi grid - echo ''; - echo ''; - echo ''; + echo '
'; + + + echo ''; + + echo ''; + + echo ''; + echo ''; - echo ''; + + echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { if ($isDoubleGrid == false || ($isDoubleGrid == true && $grid['part'] == $part)) { foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; } } } + echo ''; - echo ''; + + + echo ''; foreach ($spremenljivka['grids'] AS $gkey => $grid) { if ($isDoubleGrid == false || ($isDoubleGrid == true && $grid['part'] == $part)) { foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; - echo ''; + echo ''; + echo ''; } } } echo ''; + + $cnt=0; foreach ($frequencys AS $fkey => $fkeyFrequency) { $cbxLabel = $forSpremenljivka['grids'][0]['variables'][$cnt]['naslov']; $cnt++; foreach ($options AS $oKey => $option) { if ($means[$fkey][$oKey] != null || $displayAll) { - echo ''; - echo ''; + + echo ''; + + echo ''; - $css = ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { if ($isDoubleGrid == false || ($isDoubleGrid == true && $grid['part'] == $part)) { foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + #povprečja - echo ''; + echo ''; + # enote - echo ''; $totalMeans[$sequence] += ($means[$fkey][$oKey][$sequence]*(int)$frequencys[$fkey][$oKey][$sequence]['validCnt']); @@ -831,44 +874,48 @@ class SurveyBreak } } } + echo ''; } } } + + #dodamo še skupno sumo in povprečje echo ''; - echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { if ($isDoubleGrid == false || ($isDoubleGrid == true && $grid['part'] == $part)) { foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + #povprečja - echo ''; + # enote - echo ''; } - } } } + echo ''; - echo '
'; echo ''; echo ''; echo $forSpremenljivka['naslov']; echo '('.$forSpremenljivka['variable'].')'; echo ''; echo ''; - - echo ''; - echo ''; + echo ''; echo ''; echo ''; echo $spremenljivka['naslov']; @@ -768,60 +800,71 @@ class SurveyBreak echo ' - '.$doubleGridTitle['subtitle']; } echo ''; - echo ''; + echo '
'; + echo ''; echo $variable['naslov']; echo '('.$variable['variable'].')'; - echo ''; + echo '
Povprečje'.$lang['']; - echo 'Št. enot'.$lang['']; - echo 'PovprečjeŠt. enot
'; if ($forSpremenljivka['tip'] == 2) { echo $cbxLabel; - } else { + } + else { echo $forSpremenljivka['options'][$oKey]; } echo ''; echo $this->formatNumber($means[$fkey][$oKey][$sequence],$this->num_digit_average,''); echo ''; + echo ''; echo (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; echo '
'; + + echo ''; echo 'Skupaj'; echo ''; + echo ''; $totalMean = $totalFreq[$sequence] > 0 ? $totalMeans[$sequence] / $totalFreq[$sequence] : 0; echo $this->formatNumber($totalMean ,$this->num_digit_average,''); echo ''; + echo ''; echo (int)$totalFreq[$sequence]; echo '
';//$forSpremenljivka['grids'][0]['variables'] - + + echo '
'; + + echo '
'; } - // Zvezdica za vkljucitev v porocilo - $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; - $spr2 = $spremenljivka['grids'][0]['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); - echo ''; } } @@ -877,7 +924,8 @@ class SurveyBreak #ranking - 17: #vsota - 18: #multinumber - 20: - + global $lang; + $keysCount = count($frequencys); $sequences = explode('_',$spremenljivka['sequences']); $forSpremenljivka = $this->_HEADERS[$forSpr]; @@ -939,11 +987,10 @@ class SurveyBreak } // Ce izrisujemo tabelo else{ - - echo '
'; - echo '
'; + # za multi number naredimo po skupinah if ($tip != 20 ) { + $rowspan = ' rowspan="3"'; $colspan = ' colspan="'.(2*count($sequences)).'"'; @@ -951,90 +998,126 @@ class SurveyBreak if ((int)$this->break_percent > 0) { $break_percentRowSpan = ' rowspan="2"'; } + + echo '
'; + + + // Zvezdica za vkljucitev v porocilo + echo '
'; + + $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; + $spr2 = $spremenljivka['grids'][0]['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); + + echo '
'; + + # če ni multicheck in multi grid - echo ''; - echo ''; - echo ''; + echo '
'; + + + echo ''; + + echo ''; + + echo ''; + echo ''; + - echo ''; + echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; } } + echo ''; - echo ''; + + + echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; - echo ''; + echo ''; + echo ''; } } + echo ''; + foreach ($frequencys AS $fkey => $fkeyFrequency) { foreach ($options AS $oKey => $option) { if ($displayAll || $means[$fkey][$oKey] != null) { + echo ''; - echo ''; + + echo ''; - $css = ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + + $means1 = isset($means[$fkey][$oKey][$sequence])?$means[$fkey][$oKey][$sequence]:0; + $validCnt1 = isset($frequencys[$fkey][$oKey][$sequence]['validCnt'])?$frequencys[$fkey][$oKey][$sequence]['validCnt']:0; + #povprečja - echo ''; - echo $this->formatNumber($means[$fkey][$oKey][$sequence],$this->num_digit_average,''); - #echo $this->formatNumber($means[$fkey][$sequence],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + # enote - echo ''; - #$totalMeans[$sequence] += ($this->getMeansFromKey($fkeyFrequency[$sequence])*(int)$frequencys[$fkey][$sequence]['validCnt']); - #$totalFreq[$sequence]+= (int)$frequencys[$fkey][$sequence]['validCnt']; - $totalMeans[$sequence] += ($means[$fkey][$oKey][$sequence]*(int)$frequencys[$fkey][$oKey][$sequence]['validCnt']); - $totalFreq[$sequence]+= (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; + + $totalMeans[$sequence] = (isset($totalMeans[$sequence])? + $totalMeans[$sequence] += ($means1*(int)$validCnt1): $means1*(int)$validCnt1); + $totalFreq[$sequence] = (isset($totalFreq[$sequence])? + $totalFreq[$sequence] += ((int)$validCnt1): (int)$validCnt1); } } } + echo ''; + + if ((int)$this->break_percent) { + echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { if ($variable['other'] != 1) { + $sequence = $variable['sequence']; - echo ''; } } } } + + #dodamo še skupno sumo in povprečje echo ''; - echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + #povprečja - echo ''; + # enote - echo ''; } } - } + echo ''; + echo '
'; echo ''; echo ''; echo $forSpremenljivka['naslov']; echo '('.$forSpremenljivka['variable'].')'; echo ''; echo ''; - - echo ''; - echo ''; + echo ''; echo ''; echo ''; echo $spremenljivka['naslov']; echo '('.$spremenljivka['variable'].')'; echo ''; echo ''; - echo ''; + echo '
'; + echo ''; echo $variable['naslov']; echo '('.$variable['variable'].')'; - echo ''; + echo '
Povprečje'.$lang['']; - echo 'Št. enot'.$lang['']; - echo 'PovprečjeŠt. enot
'; echo $forSpremenljivka['options'][$oKey]; echo ''; + echo $this->formatNumber($means1,$this->num_digit_average,''); echo ''; - echo (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; - #echo (int)$frequencys[$fkey][$sequence]['validCnt']; + echo ''; + echo (int)$validCnt1; echo '
'; - #echo (int)$frequencys[$fkey][$sequence]['validCnt']; + + echo ''; $percent = 0; if ($frequencys[$fkey][$sequence]['validCnt'] > 0 ) { $percent = 100; @@ -1045,81 +1128,103 @@ class SurveyBreak } } + echo '
'; - echo $lang[''].'Skupaj'; + + echo ''; + echo 'Skupaj'; echo ''; + echo ''; $totalMean = $totalFreq[$sequence] > 0 ? $totalMeans[$sequence] / $totalFreq[$sequence] : 0; echo $this->formatNumber($totalMean ,$this->num_digit_average,''); echo ''; + echo ''; echo (int)$totalFreq[$sequence]; echo '
'; - - // Zvezdica za vkljucitev v porocilo - $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; - $spr2 = $spremenljivka['grids'][0]['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; - - #xxxxx - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); - - - } else if ($tip == 20){ + echo '
'; + } + else if ($tip == 20){ + # za multi number razdelimo na grupe - skupine $rowspan = ' rowspan="3"'; $colspan = ' colspan="'.(2*count($spremenljivka['grids'][0]['variables'])).'"'; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { // Ce smo v porocilu po meri in ni prava tabela jo preskocimo if(isset($spremenljivka['break_sub_table']['key']) && $spremenljivka['break_sub_table']['key'] != $gkey){ continue; } + + echo '
'; + + echo '
'; + // Ce smo v porocilu po meri in je prava tabelo jo izpisemo brez naslova if(!isset($spremenljivka['break_sub_table']['sequence'])){ - echo '
'.$lang['srv_break_table_for']; + echo '
'; + + echo $lang['srv_break_table_for']; echo $spremenljivka['naslov'].' ('; echo $spremenljivka['variable'].') = '; echo $grid['naslov']; echo ' ('.$grid['variable'].')'; - echo ''; + + echo '
'; } + + // Zvezdica za vkljucitev v porocilo + $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; + $spr2 = $grid['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); + + echo '
'; + - echo ''; + echo '
'; + + #labele - echo ''; - echo ''; + echo ''; + + echo ''; - echo ''; + echo ''; + echo''; + + #labele - echo ''; + echo ''; + foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; } echo ''; - echo ''; + + + echo ''; + foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; - echo ''; + echo ''; + echo ''; } + echo ''; + + $cnt=0; foreach ($frequencys AS $fkey => $fkeyFrequency) { $cbxLabel = $forSpremenljivka['grids'][0]['variables'][$cnt]['naslov']; $cnt++; + foreach ($forSpremenljivka['options'] AS $oKey => $option) { if ($displayAll || $means[$fkey][$oKey] != null) { + # če je osnova checkbox vzamemo samo tam ko je 1 if(($forSpremenljivka['tip'] == 2 && $option == 1) || $forSpremenljivka['tip'] != 2 ) { - echo ''; - echo ''; + + echo ''; + + echo ''; + foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; + #povprečje - echo ''; + # enote - echo ''; + $totalMeans[$sequence] += ($means[$fkey][$oKey][$sequence]*(int)$frequencys[$fkey][$oKey][$sequence]['validCnt']); $totalFreq[$sequence]+= (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; @@ -1183,46 +1304,46 @@ class SurveyBreak } } } + + #dodamo še skupno sumo in povprečje echo ''; - echo ''; + foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + #povprečja - echo ''; + # enote - echo ''; } } + echo ''; + echo '
'; echo ''; echo ''; echo $forSpremenljivka['naslov']; echo '('.$forSpremenljivka['variable'].')'; echo ''; echo ''; - echo ''; + echo ''; echo ''; echo ''; echo $spremenljivka['naslov']. ' - '; @@ -1127,53 +1232,69 @@ class SurveyBreak echo '('.$grid['variable'].')'; echo ''; echo ''; - echo ''; + echo '
'; + echo ''; echo $variable['naslov']; echo '('.$variable['variable'].')'; - echo ''; + echo '
Povprečje'.$lang['']; - echo 'Št. enot'.$lang['']; - echo 'PovprečjeŠt. enot
'; if ($forSpremenljivka['tip'] == 2) { echo $cbxLabel; - } else { + } + else { echo $forSpremenljivka['options'][$oKey]; } - #echo ' ('.$oKey.')'; echo ''; + echo ''; echo $this->formatNumber($means[$fkey][$oKey][$sequence],$this->num_digit_average,''); echo ''; + echo ''; echo (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; echo '
'; + + echo ''; echo 'Skupaj'; echo ''; + echo ''; $totalMean = $totalFreq[$sequence] > 0 ? $totalMeans[$sequence] / $totalFreq[$sequence] : 0; echo $this->formatNumber($totalMean ,$this->num_digit_average,''); echo ''; + echo ''; echo (int)$totalFreq[$sequence]; echo '
'; - - - // Zvezdica za vkljucitev v porocilo - $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; - $spr2 = $grid['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); - - echo '
'; + + echo '
'; } - - } - echo '
'; - } - + } + } } + #text - 21: + #multi text - 19: function displayBreakTableText($forSpr,$frequencys,$spremenljivka){ - #text - 21: - #multi text - 19: + global $lang; $keysCount = count($frequencys); $sequences = explode('_',$spremenljivka['sequences']); $forSpremenljivka = $this->_HEADERS[$forSpr]; @@ -1234,11 +1355,12 @@ class SurveyBreak $totalFreq = array(); $forSequences = array(); $cnt = array(); + foreach ($frequencys AS $fkey => $fkeyFrequency) { $forSequences[] = $fkey; foreach ($forSpremenljivka['options'] AS $oKey => $option) { foreach ($sequences AS $sequence) { - $txt = $this->getTextFromKey($fkeyFrequency[$oKey][$sequence]); + $txt = isset($fkeyFrequency[$oKey][$sequence])?$this->getTextFromKey($fkeyFrequency[$oKey][$sequence]):array(); if ($txt) { $cnt[$fkey]++; $texts[$fkey][$oKey][$sequence] = $txt; @@ -1248,123 +1370,143 @@ class SurveyBreak } # če imamo več kot 20 kategorij,izpisujemo samo tiste ki imajo vrednosti - $displayAll = (count($forSpremenljivka['options']) > 20) ? false : true; - - echo '
'; - echo '
'; - # za multi text razdelimo na grupe - skupine - $rowspan = ' rowspan="2"'; - $colspan = ' colspan="'.(count($spremenljivka['grids'][0]['variables'])).'"'; - foreach ($spremenljivka['grids'] AS $gkey => $grid) { - - // Ce smo v porocilu po meri in ni prava tabela jo preskocimo - if(isset($spremenljivka['break_sub_table']['sequence']) && $spremenljivka['break_sub_table']['key'] != $gkey){ - continue; - } - - // Ce smo v porocilu po meri in je prava tabelo jo izpisemo brez naslova - if(!isset($spremenljivka['break_sub_table']['sequence'])){ - echo '
'; - if($tip != '21'){ - echo ''; - echo $lang['srv_break_table_for']; - echo $spremenljivka['naslov'].' ('; - echo $spremenljivka['variable'].') = '; - echo $grid['naslov']; - echo ' ('.$grid['variable'].')'; - echo ''; - } - } - - echo ''; - #labele - echo ''; - echo ''; - echo ''; - echo ''; - echo $forSpremenljivka['naslov']; - echo '('.$forSpremenljivka['variable'].')'; - echo ''; - echo ''; - echo ''; - - echo ''; - echo ''; - echo ''; - echo $spremenljivka['naslov']. ' - '; - echo $grid['naslov']; - echo '('.$grid['variable'].')'; - echo ''; - echo ''; - echo ''; - echo''; - #labele - echo ''; - foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; - } - echo ''; - $cntCbx= 0; - foreach ($forSequences AS $fKey => $forSequence) { - $cbxLabel = $forSpremenljivka['grids'][0]['variables'][$cntCbx]['naslov']; - $cntCbx++; - foreach ($forSpremenljivka['options'] AS $oKey => $option) { - if ($displayAll || $texts[$forSequence][$oKey] != null) { - if(($forSpremenljivka['tip'] == 2 && $option == 1) || $forSpremenljivka['tip'] != 2 ) { - echo ''; - echo ''; - if ($forSpremenljivka['tip'] == 2) { - echo $cbxLabel; - } else { - echo $forSpremenljivka['options'][$oKey]; - } - echo ''; - foreach ($grid['variables'] AS $vkey => $variable) { - $sequence = $variable['sequence']; - #povprečje - echo ''; - - } - echo ''; - } - } - } - } - echo '
'; - echo $variable['naslov']; - echo '('.$variable['variable'].')'; - echo '('.$variable['sequence'].')'; - echo '
'; - if (count($texts[$forSequence][$oKey][$sequence]) > 0) { - $cnt=1; - $count = count($texts[$forSequence][$oKey][$sequence]); - foreach ($texts[$forSequence][$oKey][$sequence] AS $ky => $units) { - echo '
'; - echo $units['text']; - echo '
'; - $cnt++; - } - } - - - #echo $this->formatNumber($texts[$oKey][$sequence],$this->num_digit_average,''); - echo '
'; - - - // Zvezdica za vkljucitev v porocilo - $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; - $spr2 = $grid['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); - - echo '
'; - } + $displayAll = (count($forSpremenljivka['options']) > 20) ? false : true; + + # za multi text razdelimo na grupe - skupine + $rowspan = ' rowspan="2"'; + $colspan = ' colspan="'.(count($spremenljivka['grids'][0]['variables'])).'"'; + + + foreach ($spremenljivka['grids'] AS $gkey => $grid) { + + // Ce smo v porocilu po meri in ni prava tabela jo preskocimo + if(isset($spremenljivka['break_sub_table']['sequence']) && $spremenljivka['break_sub_table']['key'] != $gkey){ + continue; + } + + echo '
'; + + + echo '
'; + + // Ce smo v porocilu po meri in je prava tabelo jo izpisemo brez naslova + if(!isset($spremenljivka['break_sub_table']['sequence'])){ - echo '
'; - + if($tip != '21'){ + echo '
'; + + echo $lang['srv_break_table_for']; + echo $spremenljivka['naslov'].' ('; + echo $spremenljivka['variable'].') = '; + echo $grid['naslov']; + echo ' ('.$grid['variable'].')'; + + echo '
'; + } + } + + // Zvezdica za vkljucitev v porocilo + $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; + $spr2 = $grid['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); + + echo '
'; + + + echo ''; + + + #labele + echo ''; + + echo ''; + + echo ''; + + echo''; + + + #labele + echo ''; + + foreach ($grid['variables'] AS $vkey => $variable) { + echo ''; + } + + echo ''; + + + $cntCbx= 0; + foreach ($forSequences AS $fKey => $forSequence) { + $cbxLabel = $forSpremenljivka['grids'][0]['variables'][$cntCbx]['naslov']; + $cntCbx++; + + foreach ($forSpremenljivka['options'] AS $oKey => $option) { + if ($displayAll || $texts[$forSequence][$oKey] != null) { + if(($forSpremenljivka['tip'] == 2 && $option == 1) || $forSpremenljivka['tip'] != 2 ) { + + echo ''; + + echo ''; + + foreach ($grid['variables'] AS $vkey => $variable) { + $sequence = $variable['sequence']; + #povprečje + echo ''; + } + + echo ''; + } + } + } + } + + echo '
'; + echo ''; + echo ''; + echo $forSpremenljivka['naslov']; + echo '('.$forSpremenljivka['variable'].')'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo $spremenljivka['naslov']. ' - '; + echo $grid['naslov']; + echo isset($grid['variable'])?'('.$grid['variable'].')':''; + echo ''; + echo ''; + echo '
'; + echo $variable['naslov']; + echo '('.$variable['variable'].')'; + echo '('.$variable['sequence'].')'; + echo '
'; + if ($forSpremenljivka['tip'] == 2) { + echo $cbxLabel; + } + else { + echo $forSpremenljivka['options'][$oKey]; + } + echo ''; + if (isset($texts[$forSequence][$oKey][$sequence])&&count($texts[$forSequence][$oKey][$sequence]) > 0) { + $cnt=1; + $count = count($texts[$forSequence][$oKey][$sequence]); + foreach ($texts[$forSequence][$oKey][$sequence] AS $ky => $units) { + echo '
'; + echo $units['text']; + echo '
'; + $cnt++; + } + } + + echo '
'; + + echo '
'; + } } function displayCrosstabTable($forSpr,$frequencys,$spremenljivka){ - + global $lang; #polovimo sekvence in spremenljivke // Ce smo v creportu imamo nastavljeno prvo spremenljivko posebej (ne v sessionu) if(isset($spremenljivka['break_sub_table']['sequence'])){ @@ -1406,14 +1548,18 @@ class SurveyBreak // Ce smo v porocilu po meri in je prava tabelo jo izpisemo brez naslova if(!isset($spremenljivka['break_sub_table']['sequence']) && ($spremenljivka['tip'] == 16 || $spremenljivka['tip'] == 6) && $this->break_charts != 1){ - echo '
'.$lang['srv_break_table_for']; + + echo '
'; + + echo $lang['srv_break_table_for']; echo $spremenljivka['naslov'].' ('; echo $spremenljivka['variable'].') = '; echo $grid['naslov']; if ($spremenljivka['tip'] != 6) { echo ' ('.$grid['variable'].')'; } - echo ''; + + echo '
'; } $seq2 = $grid['variables'][0]['sequence']; @@ -1435,26 +1581,24 @@ class SurveyBreak $this->SurveyCrosstab->setVariables($seq1,$spr1,$grd1,$seq2,$spr2,$grd2); $this->SurveyCrosstab->displayCrosstabsTable(); } - - echo '
'; } - } + function getMeansFromKey($frequencys) { $sum = 0; - if (count($frequencys['valid']) > 0) { + if (isset($frequencys['valid'])&&count($frequencys['valid']) > 0) { foreach ($frequencys['valid'] AS $fkey => $tmp) { $sum += (int)$fkey * (int)$tmp['cnt']; } } - $mean = (int)$frequencys['validCnt'] > 0 ? (int)$sum / (int)$frequencys['validCnt'] : 0; + $mean = isset($frequencys['validCnt'])&&(int)$frequencys['validCnt'] > 0 ? (int)$sum / (int)$frequencys['validCnt'] : 0; return $mean; } function getTextFromKey($frequencys) { $texts = array(); - if (count($frequencys['valid']) > 0) { + if (isset($frequencys['valid'])&&count($frequencys['valid']) > 0) { foreach ($frequencys['valid'] AS $fkey => $tmp) { $texts[] = $tmp; } @@ -1514,21 +1658,21 @@ class SurveyBreak echo '
'; - echo ''.$lang['srv_custom_report_comments_add'].''; - - echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + + echo ''; + //echo ''; + //echo ''; echo ''; - echo ''; + echo ''; echo '
'; // Javascript s katerim povozimo urlje za izvoze, ki niso na voljo v paketu - global $app_settings; - if($app_settings['commercial_packages'] == true){ + if(AppSettings::getInstance()->getSetting('app_settings-commercial_packages') === true){ echo ''; } } @@ -1561,18 +1705,19 @@ class SurveyBreak function displayLinePercent() { global $lang; - echo ''; + + echo 'break_percent == 1 ? ' checked="checked" ' : '') . ' autocomplete="off"/>'; + echo ''; } function displayLineCharts() { global $lang; - echo ''; - - echo ' '; - echo ' '; - - echo ''; + echo 'break_charts == 0 ? ' checked="checked" ' : '').' onClick="change_break_charts(this.value)" />'; + echo ''; + + echo 'break_charts == 1 ? ' checked="checked" ' : '').' onClick="change_break_charts(this.value)" />'; + echo ''; } + } \ No newline at end of file diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyChart.php b/admin/survey/classes/surveyAnalysis/class.SurveyChart.php index 461468f..521b1f4 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyChart.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyChart.php @@ -4,7 +4,7 @@ * @date Februar 2011 */ -define("SAA_FOLDER", "AnalysisArchive"); +if(!defined("SAA_FOLDER")) define("SAA_FOLDER", "AnalysisArchive"); class SurveyChart { @@ -149,29 +149,27 @@ class SurveyChart { } // Pobrisemo stare (starejse od $expire_time v dnevih) slike grafov iz cache folderja - static function clearCache($expire_time = 14){ + static function clearCache($expire_time_days = 14){ $folderPath = dirname(__FILE__).'/../../pChart/Cache/'; $fileTypes = '*'; - - // Pobrisemo file starejse od - $expire_time = $expire_time * 24 * 60 * 60; - - foreach (glob($folderPath . $fileTypes) as $Filename) { + + foreach (glob($folderPath . $fileTypes) as $file_name) { // preberemo cas dostopa do fila - //$FileCreationTime = fileatime($Filename); - // preberemo cas ustvarjanja fila - $FileCreationTime = filemtime($Filename); + $file_creation_time = filemtime($file_name); - // starost v dnevih - $FileAge = round( (time() - $FileCreationTime) / $expire_time ); + // starost fila + $file_age = time() - $file_creation_time; + + // Starost fila v dnevih + $file_age_days = floor($file_age / (60 * 60 * 24)); - if ($FileAge >= ($expire_time)){ + if ($file_age_days >= ($expire_time_days)){ // brisemo stare file - //echo 'Datoteka '.$Filename.' je starejša od '.$expire_time.' min in je bila zbrisana.
'; - unlink($Filename); + //echo 'Datoteka '.$file_name.' je starejša od '.$expire_time_days.' dni in je bila zbrisana.
'; + unlink($file_name); } } } @@ -313,7 +311,6 @@ class SurveyChart { // prikazemo nastavitve if (self::$isArchive != true && self::$publicChart != true) { self::displayGlobalSettings(); - echo "
\n"; } # preberemo header @@ -348,8 +345,17 @@ class SurveyChart { echo ''; + if (self::$dataFileStatus == FILE_STATUS_NO_DATA + || self::$dataFileStatus == FILE_STATUS_NO_FILE + || self::$dataFileStatus == FILE_STATUS_SRV_DELETED){ + + $noDataAlert ="noDataAlert"; + } else { + $noDataAlert =""; + } + if (self::$isArchive != true && self::$publicChart != true) { - self::displayBottomSettings(); + self::displayBottomSettings($noDataAlert); } @@ -380,7 +386,7 @@ class SurveyChart { foreach (SurveyAnalysis::$_HEADERS AS $spid => $spremenljivka) { # preverjamo ali je meta - if (($spremenljivka['tip'] != 'm' + if (isset($spremenljivka['tip']) && ($spremenljivka['tip'] != 'm' && in_array($spremenljivka['tip'], SurveyAnalysis::$_FILTRED_TYPES )) && (!isset($_spid) || (isset($_spid) && $_spid == $spid)) && $spremenljivka['tip'] != 5) { @@ -405,13 +411,13 @@ class SurveyChart { } else{ // Ce imamo radio tip in manj kot 5 variabel in numeric oz 2 variabli - po defaultu prikazemo piechart - $vars = (is_countable($spremenljivka['options'])) ? count($spremenljivka['options']) : 0; + $vars = (isset($spremenljivka['options']) && is_countable($spremenljivka['options'])) ? count($spremenljivka['options']) : 0; if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3) && (($vars < 5 && $spremenljivka['skala'] == 1) || $vars < 3) ){ self::$settings['type'] = 2; } // Ce imamo radio tip in vec kot 20 variabel -> po defaultu ne prikazujemo praznih - $vars = (is_countable($spremenljivka['options'])) ? count($spremenljivka['options']) : 0; + $vars = (isset($spremenljivka['options']) && is_countable($spremenljivka['options'])) ? count($spremenljivka['options']) : 0; if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3) && $vars > 20 ){ self::$settings['hideEmptyVar'] = 1; } @@ -436,8 +442,8 @@ class SurveyChart { } // Ce imamo semanticni diferencial po defaultu prikazemo vertikalno crto - $vars = (is_countable($spremenljivka['options'])) ? count($spremenljivka['options']) : 0; - if($spremenljivka['tip'] == 6 && $spremenljivka['enota'] == 1){ + $vars = (isset($spremenljivka['options']) && is_countable($spremenljivka['options'])) ? count($spremenljivka['options']) : 0; + if($spremenljivka['tip'] == 6 && isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1){ self::$settings['type'] = 6; } // Ce imamo mg tip in manj kot 4 gridov po defaultu prikazemo strukturne stolpce @@ -515,7 +521,7 @@ class SurveyChart { case 6: # multigrid // dvojna tabela - if($spremenljivka['enota'] == 3) + if(isset($spremenljivka['enota'])&&$spremenljivka['enota'] == 3) self::displayDoubleMultigridChart($spid, self::$settings); else self::displayMultigridChart($spid, self::$settings); @@ -610,13 +616,15 @@ class SurveyChart { echo '
'; + self::displayExportIcons($spid, $hide_button=true); + $vars_count = count(SurveyAnalysis::$_FILTRED_VARIABLES); - $spremenljivka = SurveyAnalysis::$_HEADERS[$spid]; + $spremenljivka = isset(SurveyAnalysis::$_HEADERS[$spid])?SurveyAnalysis::$_HEADERS[$spid]:array(); SurveyAnalysis::getFrequencys(); # preverjamo ali je meta - if (($spremenljivka['tip'] != 'm' + if ((isset($spremenljivka['tip']) && $spremenljivka['tip'] != 'm' && in_array($spremenljivka['tip'], SurveyAnalysis::$_FILTRED_TYPES )) && (!isset($_spid) || (isset($_spid) && $_spid == $spid)) && $spremenljivka['tip'] != 5) { @@ -648,7 +656,7 @@ class SurveyChart { self::$settings['type'] = 2; }*/ // Ce imamo semanticni diferencial po defaultu prikazemo vertikalno crto - if($spremenljivka['tip'] == 6 && $spremenljivka['enota'] == 1){ + if($spremenljivka['tip'] == 6 && isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1){ self::$settings['type'] = 6; } // Ce imamo mg tip in manj kot 5 gridov po defaultu prikazemo strukturne stolpce @@ -700,7 +708,7 @@ class SurveyChart { break; case 6: # multigrid // dvojna tabela - if($spremenljivka['enota'] == 3) + if(isset($spremenljivka['enota'])&&$spremenljivka['enota'] == 3) self::displayDoubleMultigridChart($spid, self::$settings); else self::displayMultigridChart($spid, self::$settings); @@ -742,7 +750,7 @@ class SurveyChart { self::sumMultiText($spid); break; case 21: # besedilo* - if ($spremenljivka['cnt_all'] == 1) { + if (isset($spremenljivka['cnt_all'])&&$spremenljivka['cnt_all'] == 1) { // če je enodimenzionalna prikažemo kot frekvence // predvsem zaradi vprašanj tipa: language, email... //SurveyAnalysis::sumTextVertical($spid,'sums'); @@ -765,7 +773,7 @@ class SurveyChart { } // end if $spremenljivka['tip'] != 'm' echo '
'; - + //self::displayBottomSettings(); } // end if else ($_headFileName == null) @@ -800,7 +808,7 @@ class SurveyChart { } } else{ - if((self::$sessionData[$spid]['type'] != 2 && $settings['type'] == 2) || (self::$sessionData[$spid]['type'] != 8 && $settings['type'] == 8)){ + if(!isset(self::$sessionData[$spid]['type']) || (self::$sessionData[$spid]['type'] != 2 && $settings['type'] == 2) || (self::$sessionData[$spid]['type'] != 8 && $settings['type'] == 8)){ $settings['sort'] = 1; self::$settings['sort'] = 1; } @@ -837,7 +845,7 @@ class SurveyChart { } // Popravimo pri preklopu na povprecje - prikazujemo notranje vrednosti in izklopimo prikaz povprecja - if(self::$sessionData[$spid]['type'] != 9 && $settings['type'] == 9){ + if((!isset(self::$sessionData[$spid]['type']) || self::$sessionData[$spid]['type'] != 9) && $settings['type'] == 9){ $settings['barLabel'] = 1; self::$settings['barLabel'] = 1; @@ -1203,19 +1211,19 @@ class SurveyChart { } else{ // Ce smo ravnokar preklopili na linijski - po skupinah imamo default vse intervale - if(self::$sessionData[$spid]['type'] != 2 && $settings['type'] == 2){ + if((!isset(self::$sessionData[$spid]['type']) || self::$sessionData[$spid]['type'] != 2) && $settings['type'] == 2){ $settings['interval'] = -1; self::$settings['interval'] = -1; } // Ce smo ravnokar preklopili na navaden - po skupinah imamo default 10 intervalov - if(self::$sessionData[$spid]['type'] >= 2 && $settings['type'] < 2){ + if(isset(self::$sessionData[$spid]['type']) && self::$sessionData[$spid]['type'] >= 2 && $settings['type'] < 2){ $settings['interval'] = 10; self::$settings['interval'] = 10; } } // Popravimo pri preklopu na povprecje - prikazujemo notranje vrednosti in izklopimo prikaz povprecja - if(self::$sessionData[$spid]['type'] != 9 && $settings['type'] == 9){ + if((!isset(self::$sessionData[$spid]['type']) || self::$sessionData[$spid]['type'] != 9) && $settings['type'] == 9){ $settings['barLabel'] = 1; self::$settings['barLabel'] = 1; @@ -2346,6 +2354,7 @@ class SurveyChart { $ID = self::$anketa.'_chart_'.$spid.'_mv_'.SurveyAnalysis::$missingProfileData['display_mv_type']; foreach ($settings AS $key => $val) { + if($key == 'colors'){ $ID .= '_colors'; @@ -2356,7 +2365,7 @@ class SurveyChart { } elseif($key != 'name') - $ID .= '_'.$key.'_'.$val; + $ID = !is_array($val) ? $ID .= '_'.$key.'_'.$val : $ID .= '_'.$key.'_'; } $ID .= '_skin_'.self::$skin; @@ -3089,9 +3098,9 @@ class SurveyChart { foreach (SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] AS $vkey => $vAnswer) { if ($vAnswer['cnt'] > 0 || true) { # izpisujemo samo tiste ki nisno 0 - - $_valid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : 0; - $_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0; + + $_valid = (isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt']) && SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : 0; + $_percent = (isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt']) && SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0; $tempArray = array(); @@ -3101,7 +3110,7 @@ class SurveyChart { if($vAnswer['cnt'] > 0) $emptyData = false; - $N = ($settings['value_type'] == 0) ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt']; + $N = ($settings['value_type'] == 0 && isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'])) ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt']; $tempArray['percent'] = $_percent; $tempArray['valid'] = $_valid; @@ -3112,17 +3121,19 @@ class SurveyChart { $tempArray['variable'] = $text; $fullPercent += $tempArray['percent']; - + // ce imamo vklopljeno da izpuscamo 0 in prikazujemo pie chart spustimo nicelne vrednosti - if($_valid != 0 || SurveyDataSettingProfiles :: getSetting('chartPieZeros') == 1 || ($settings['type'] != 2 && $settings['type'] != 8)) + if($_valid != 0 || SurveyDataSettingProfiles :: getSetting('chartPieZeros') == 1 || ($settings['type'] != 2 && $settings['type'] != 8)){ $dataArray[] = $tempArray; + } + // Ce je ordinalen racunamo povprecje if($spremenljivka['skala'] != 1){ $xi = (int)$vkey; $fi = (int)$vAnswer['cnt']; - $sum_xi_fi += $xi * $fi; + $sum_xi_fi = isset($sum_xi_fi) ? $sum_xi_fi += $xi * $fi : $xi * $fi; $N_average += $fi; } } @@ -3134,7 +3145,7 @@ class SurveyChart { $_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence); } } - + $displayMV = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 2) ? TRUE : FALSE; if ( (count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalid'])> 0) && $displayMV) { foreach (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) { @@ -3166,7 +3177,7 @@ class SurveyChart { $i++; } - + // zascita pred praznimi vprasanji (brez variabel) if($_variables_count == 0) return -1; @@ -3494,7 +3505,7 @@ class SurveyChart { } // napolnimo podatke za DVOJNI MULTIGRID - elseif($spremenljivka['tip'] == 6 && $spremenljivka['enota'] == 3){ + elseif(isset($spremenljivka['enota']) && $spremenljivka['tip'] == 6 && $spremenljivka['enota'] == 3){ $DataSet = new pData; $dataArray = array(); $fullPercent = array(); @@ -3747,7 +3758,7 @@ class SurveyChart { $_variables_count = count($stolpci); - + $gidsCanShow=array(); # odstranimo še možne nepotrebne zapise za multigride if($settings['hideEmptyVar'] == 1){ $allGrids = count($spremenljivka['grids']); @@ -3781,8 +3792,7 @@ class SurveyChart { $legendTitle = ''; // Kontrola ce ne prikazujemo praznih variabel - if ((!is_array($gidsCanShow) && !isset($gidsCanShow[$gid])) - || (is_array($gidsCanShow) && isset($gidsCanShow[$gid]) && $gidsCanShow[$gid]== true)){ + if (!isset($gidsCanShow[$gid]) || (isset($gidsCanShow[$gid]) && $gidsCanShow[$gid]== true)){ # dodamo dodatne vrstice z albelami grida foreach ($grid['variables'] AS $vid => $variable ){ @@ -3825,7 +3835,7 @@ class SurveyChart { $tempArray['variable'] = $text; // dodamo vrednosti na desni ce imamo vklopljen diferencial - if($spremenljivka['enota'] == 1){ + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1){ $sqlV = sisplet_query("SELECT naslov2 FROM srv_vrednost WHERE spr_id='$spid' AND id='$variable[vr_id]'"); $rowV = mysqli_fetch_array($sqlV); $tempArray['variable2'] = strip_tags($rowV['naslov2']); @@ -3941,7 +3951,7 @@ class SurveyChart { $tempArray['grid'] = $textGrid; // dodamo vrednosti na desni ce imamo vklopljen diferencial - if($spremenljivka['enota'] == 1){ + if(isset($spremenljivka['enota'])&&$spremenljivka['enota'] == 1){ $sqlV = sisplet_query("SELECT naslov2 FROM srv_vrednost WHERE spr_id='$spid' AND id='$variable[vr_id]'"); $rowV = mysqli_fetch_array($sqlV); $tempArray['variable2'] = strip_tags($rowV['naslov2']); @@ -3949,7 +3959,7 @@ class SurveyChart { $dataArray[] = $tempArray; - $fullPercent[$gridCount] += $tempArray['percent']; + $fullPercent[$gridCount] = isset($fullPercent[$gridCount]) ? $fullPercent[$gridCount] += $tempArray['percent'] : $tempArray['percent']; } } } @@ -3982,7 +3992,7 @@ class SurveyChart { $dataArray[] = $tempArray; - $fullPercent[$gridCount] += $tempArray['percent']; + $fullPercent[$gridCount] = isset($fullPercent[$gridCount]) ? $fullPercent[$gridCount] += $tempArray['percent'] : $tempArray['percent']; } } } @@ -4029,7 +4039,7 @@ class SurveyChart { $vrednostiVariable[] = $dataArray[$i]['variable']; // se vrednosti na desni pri sem. diferencialu - if($spremenljivka['enota'] == 1) + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1) $vrednostiVariable2[] = $dataArray[$i]['variable2']; } @@ -4059,7 +4069,7 @@ class SurveyChart { //$DataSet->AddPoint($vrednostiKey,"Variable"); // se vrednosti na desni pri sem. diferencialu - if($spremenljivka['enota'] == 1){ + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1){ $DataSet->AddPoint($vrednostiVariable2,"Variable2"); $DataSet->SetRightLabelSerie("Variable2"); } @@ -4156,7 +4166,7 @@ class SurveyChart { $vrednostiGrid[] = $dataArray[$offset]['grid']; // se vrednosti na desni pri sem. diferencialu - if($spremenljivka['enota'] == 1) + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1) $vrednostiVariable2[] = $dataArray[$offset]['variable2']; } @@ -4185,7 +4195,7 @@ class SurveyChart { $DataSet->AddPoint($vrednostiGrid,"Variable"); // se vrednosti na desni pri sem. diferencialu - if($spremenljivka['enota'] == 1){ + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1){ $DataSet->AddPoint($vrednostiVariable2,"Variable2"); $DataSet->SetRightLabelSerie("Variable2"); } @@ -4263,7 +4273,7 @@ class SurveyChart { $vrednostiVariable[] = $dataArray[$offset]['variable']; // se vrednosti na desni pri sem. diferencialu - if($spremenljivka['enota'] == 1) + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1) $vrednostiVariable2[] = $dataArray[$offset]['variable2']; } @@ -4295,7 +4305,7 @@ class SurveyChart { $DataSet->AddPoint($vrednostiVariable,"Variable"); // se vrednosti na desni pri sem. diferencialu - if($spremenljivka['enota'] == 1){ + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1){ $DataSet->AddPoint($vrednostiVariable2,"Variable2"); $DataSet->SetRightLabelSerie("Variable2"); } @@ -4342,7 +4352,7 @@ class SurveyChart { $_sequence = $variable['sequence']; # id kolone z podatki if ($spremenljivka['tip'] == 22 || (($variable['text'] != true && $variable['other'] != true) || (in_array($spremenljivka['tip'],array(4,8,21))))){ - if (is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0) { + if (isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0) { if($field == 0) $N = SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt']; @@ -4475,8 +4485,8 @@ class SurveyChart { array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray); } - $max = (double)$dataArray[count($dataArray,0)-1]['variable']; - $min = (double)$dataArray[0]['variable']; + $max = isset($dataArray[count($dataArray,0)-1]['variable']) ? (double)$dataArray[count($dataArray,0)-1]['variable'] : 0; + $min = isset($dataArray[0]['variable']) ? (double)$dataArray[0]['variable'] : 0; $stIntervalov = ((int)$settings['interval'] == 0 ? 10 : (int)$settings['interval']); @@ -5084,10 +5094,13 @@ class SurveyChart { // napolnimo podatke za MULTICHECKBOX elseif($spremenljivka['tip'] == 16){ + $DataSet = new pData; $dataArray = array(); $fullPercent = array(); + $gidsCanShow = array(); + $vrednostiGrid = array(); # odstranimo še možne nepotrebne zapise if($settings['hideEmptyVar'] == 1){ @@ -5107,7 +5120,8 @@ class SurveyChart { # preverjamo ali lahko prikazujemo podkategorije if((int)$cntValidInGrid > 0) { $gidsCanShow[$gid] = true; - } else { + } + else { $gidsCanShow[$gid] = false; } } @@ -5116,20 +5130,23 @@ class SurveyChart { $gridCount=0; + $_variables_count=0; $nValid = array(); $nAll = 0; $nNavedbe = array(); + if (count($spremenljivka['grids']) > 0) foreach ($spremenljivka['grids'] AS $gid => $grid) { $legendTitle = ''; // Kontrola ce ne prikazujemo praznih variabel - if ((!is_array($gidsCanShow) && !isset($gidsCanShow[$gid])) - || (is_array($gidsCanShow) && isset($gidsCanShow[$gid]) && $gidsCanShow[$gid]== true)){ + if (!isset($gidsCanShow[$gid]) || (isset($gidsCanShow[$gid]) && $gidsCanShow[$gid]== true)){ + - # dodamo dodatne vrstice z albelami grida $_variables_count=0; + + # dodamo dodatne vrstice z albelami grida foreach ($grid['variables'] AS $vid => $variable ){ if ($variable['text'] != true && $variable['other'] != true){ @@ -5140,12 +5157,12 @@ class SurveyChart { $legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_')); $vAnswer = SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][1]['cnt']; - $_valid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ) ? 100*$vAnswer / SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : 0; - $_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0; + $_valid = ( isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt']) && SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ) ? 100*$vAnswer / SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : 0; + $_percent = ( isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt']) && SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0; $tempArray = array(); - $nValid[] = SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt']; + $nValid[] = isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt']) ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : 0; $nAll = SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt']; $nNavedbe[$gid] += SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][1]['cnt']; @@ -5167,8 +5184,15 @@ class SurveyChart { $dataArray[] = $tempArray; - $fullPercent[$gridCount] += $tempArray['percent']; - $fullPercentReverse[$_variables_count] += $tempArray['percent']; + if(isset($fullPercent[$gridCount])) + $fullPercent[$gridCount] += $tempArray['percent']; + else + $fullPercent[$gridCount] = $tempArray['percent']; + + if(isset($fullPercentReverse[$_variables_count])) + $fullPercentReverse[$_variables_count] += $tempArray['percent']; + else + $fullPercentReverse[$_variables_count] = $tempArray['percent']; $_variables_count++; } @@ -5216,7 +5240,7 @@ class SurveyChart { // Normalno obrnjen graf - gridi v stolpcih, variable v legendi (deli stolpcev) if($settings['rotate'] != 1){ - + // Sortiramo podaatke ce je potrebno if($settings['sort'] == 1){ @@ -5491,7 +5515,7 @@ class SurveyChart { $_sequence = $variable['sequence']; # id kolone z podatki if (($variable['text'] != true && $variable['other'] != true) || (in_array($spremenljivka['tip'],array(4,8,21)))){ - if (is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0) { + if (isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0) { # za povprečje $sum_xi_fi=0; @@ -5828,7 +5852,7 @@ class SurveyChart { $_sequence = $variable['sequence']; # id kolone z podatki if (($variable['text'] != true && $variable['other'] != true) || (in_array($spremenljivka['tip'],array(4,8,21)))){ - if (is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0) { + if (isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0) { # za povprečje $sum_xi_fi=0; @@ -6119,7 +6143,7 @@ class SurveyChart { //$DataSet->SetYAxisName($lang['srv_analiza_sums_average']); } - + // Nastavimo other vrednosti $DataSet->SetOther($_answersOther); @@ -6176,7 +6200,7 @@ class SurveyChart { $Test->setGraphArea(self::$quality*100,self::$quality*40,self::$quality*650,self::$quality*220); $Test->drawFilledRoundedRectangle(self::$quality*7,self::$quality*7,self::$quality*793,self::$quality*(243+$addHeight),5,255,255,255); //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(245+$addHeight),200,200,200); + //self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(245+$addHeight),200,200,200); $Test->drawGraphArea(255,255,255,TRUE); // Pri checkboxu lahko naredimo fiksno skalo @@ -6318,7 +6342,7 @@ class SurveyChart { $Test->drawFilledRoundedRectangle(self::$quality*7,self::$quality*7,self::$quality*793,self::$quality*(243+$addHeight+$addLegendSpace),5,255,255,255); //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(245+$addHeight+$addLegendSpace),200,200,200); + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(245+$addHeight+$addLegendSpace),200,200,200); $Test->drawGraphArea(255,255,255,TRUE); // Pri ordinalnih multigridih prikazemo skalo od 1 do stevila variabel (ce prikazujemo povprecja) @@ -6480,7 +6504,7 @@ class SurveyChart { $Test->drawFilledRoundedRectangle(self::$quality*7,self::$quality*7,self::$quality*793,self::$quality*(243+$addHeight),5,255,255,255); //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(245+$addHeight),200,200,200); + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(245+$addHeight),200,200,200); $Test->drawGraphArea(255,255,255,TRUE); $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0,0,0,0,TRUE,$angle,0,TRUE,1,FALSE,$roundText); $Test->drawGrid(4,TRUE,230,230,230,50); @@ -6543,7 +6567,7 @@ class SurveyChart { $addHeight = $countGrids > 5 ? ($countGrids-5)*30 : 0; // Imamo semanticni dif. - izpisujemo labele na desni - $rightScale = ($spremenljivka['tip'] == 6 && $spremenljivka['enota'] == 1 && self::$settings['scale_limit'] == 1) ? true : false; + $rightScale = ($spremenljivka['tip'] == 6 && isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1 && self::$settings['scale_limit'] == 1) ? true : false; // Initialise the graph $Test = new MyHorBar(self::$quality*800,self::$quality*(250+$addHeight+50)); @@ -6572,8 +6596,7 @@ class SurveyChart { if($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 3){ $Test->setGraphArea(self::$quality*200,self::$quality*50,self::$quality*630,self::$quality*220); $Test->drawFilledRoundedRectangle(self::$quality*7,self::$quality*7,self::$quality*793,self::$quality*243,5,255,255,255); - //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*295,200,200,200); + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*295,200,200,200); $Test->drawGraphArea(255,255,255,TRUE); $Test->drawHorScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0,0,0,0,TRUE,0,0,TRUE); $Test->drawHorGrid(4,TRUE,230,230,230,50); @@ -6582,8 +6605,7 @@ class SurveyChart { elseif($rightScale){ $Test->setGraphArea(self::$quality*270,self::$quality*50,self::$quality*530,self::$quality*(220+$addHeight)); $Test->drawFilledRoundedRectangle(7,7,793,243+$addHeight,5,255,255,255); - //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(295+$addHeight),200,200,200); + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(295+$addHeight),200,200,200); $Test->drawGraphArea(255,255,255,TRUE); $Test->drawHorScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0/*SCALE_START0*/,0,0,0,TRUE,0,0,TRUE,1,$rightScale,$roundText=40); @@ -6592,8 +6614,7 @@ class SurveyChart { else{ $Test->setGraphArea(self::$quality*$startX,self::$quality*50,self::$quality*650,self::$quality*(220+$addHeight)); $Test->drawFilledRoundedRectangle(7,7,793,243+$addHeight,5,255,255,255); - //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(295+$addHeight),200,200,200); + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(295+$addHeight),200,200,200); $Test->drawGraphArea(255,255,255,TRUE); $Test->drawHorScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0,0,0,0,TRUE,0,0,TRUE,1,FALSE,$roundText); $Test->drawHorGrid(4,TRUE,230,230,230,50); @@ -6667,12 +6688,8 @@ class SurveyChart { $Test->setLineStyle(self::$quality,$DotSize=0); $Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize); - //$Test->setGraphArea(50,40,685,220); $Test->drawFilledRoundedRectangle(self::$quality*7,self::$quality*7,self::$quality*793,self::$quality*273,5,255,255,255); - //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*275,200,200,200); - //$Test->createColorGradientPalette(195,204,56,223,110,41,3); - //$Test->createColorGradientPalette(168,188,56,248,255,136,5); + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*275,200,200,200); // Pri vsoti ne izpisujemo procentov @@ -6743,13 +6760,8 @@ class SurveyChart { $Test->setLineStyle(self::$quality,$DotSize=0); $Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize); - //$Test->setGraphArea(50,40,685,220); $Test->drawFilledRoundedRectangle(self::$quality*7,self::$quality*7,self::$quality*793,self::$quality*273,5,255,255,255); - //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*275,200,200,200); - //$Test->createColorGradientPalette(195,204,56,223,110,41,3); - //$Test->createColorGradientPalette(168,188,56,248,255,136,5); - + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*275,200,200,200); // Pri vsoti ne izpisujemo procentov if($spremenljivka['tip'] == 18 || ($spremenljivka['tip'] == 1 && self::$settings['type'] == 2 && self::$settings['value_type'] == 1)) @@ -6838,8 +6850,7 @@ class SurveyChart { $Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize); $Test->setGraphArea(self::$quality*100,self::$quality*40,self::$quality*650,self::$quality*220); $Test->drawFilledRoundedRectangle(self::$quality*7,self::$quality*7,self::$quality*793,self::$quality*273,5,255,255,255); - //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*275,200,200,200); + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*275,200,200,200); $Test->drawGraphArea(255,255,255,TRUE); // Pri checkboxu lahko naredimo fiksno skalo @@ -6909,7 +6920,7 @@ class SurveyChart { $addHeight = $countGrids > 5 ? ($countGrids-5)*30 : 0; // Imamo semanticni dif. - izpisujemo labele na desni - $rightScale = ($spremenljivka['enota'] == 1 && self::$settings['scale_limit'] == 1) ? true : false; + $rightScale = (isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1 && self::$settings['scale_limit'] == 1) ? true : false; // Initialise the graph $Test = new MyHorBar(self::$quality*800,self::$quality*(250+$addHeight)); @@ -6931,8 +6942,7 @@ class SurveyChart { $Test->setGraphArea(self::$quality*270,self::$quality*50,self::$quality*530,self::$quality*(220+$addHeight)); $Test->drawFilledRoundedRectangle(self::$quality*7,self::$quality*7,self::$quality*793,self::$quality*(243+$addHeight),5,255,255,255); - //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(245+$addHeight),200,200,200); + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*(245+$addHeight),200,200,200); $Test->drawGraphArea(255,255,255,TRUE); $Test->drawHorScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,0,0,0,TRUE,0,0,TRUE,1,$rightScale,$roundText=40); @@ -6996,11 +7006,7 @@ class SurveyChart { $Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize); $Test->setGraphArea(self::$quality*100,self::$quality*40,self::$quality*650,self::$quality*320); $Test->drawFilledRoundedRectangle(self::$quality*7,self::$quality*7,self::$quality*793,self::$quality*343,5,255,255,255); - //$Test->drawRoundedRectangle(5,5,795,245,5,128,128,128); - $Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*345,200,200,200); - //$Test->drawGraphArea(255,255,255,TRUE); - //$Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,20,20,20,TRUE,$angle,0,TRUE,1,FALSE,$roundText); - //$Test->drawGrid(4,TRUE,230,230,230,50); + //$Test->drawRectangle(self::$quality*5,self::$quality*5,self::$quality*795,self::$quality*345,200,200,200); // Draw the 0 line $Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize); @@ -7072,7 +7078,7 @@ class SurveyChart { //moznost osvezevanja grafov - ne uporabljamo zaenkrat if($admin_type < 2 && false) - echo ''; + echo ''; // Izrisemo ostale filtre SurveyAnalysis::DisplayFilters(self::$quality); @@ -7098,7 +7104,7 @@ class SurveyChart { $SR = new SurveyRecoding(self::$anketa); $SR -> getProfileString(); - SurveyDataSettingProfiles :: getVariableTypeNote($doNewLine); + SurveyDataSettingProfiles :: getVariableTypeNote(); echo ''; } @@ -7109,8 +7115,8 @@ class SurveyChart { echo '
    '; echo '
  • '; - echo $lang['srv_chart_hq'].': '; - echo ''; + echo ' '; + echo ' '; echo '
  • '; # nastavitev skina grafov @@ -7123,21 +7129,23 @@ class SurveyChart { } // Nastavitve na dnu - static function displayBottomSettings(){ + + static function displayBottomSettings($noDataAlert = ""){ global $site_path; global $lang; - echo '
    '; - - echo ''.$lang['srv_custom_report_comments_add'].''; + echo '
    '; - echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; - echo ''; - echo ''; + echo ''; + echo ''; echo '
    '; } @@ -7172,25 +7180,29 @@ class SurveyChart { static function displaySingleSettings($spid, $settings=0){ global $site_path; global $lang; + if (self::$publicChart == true) { return false; } + $spremenljivka = SurveyAnalysis::$_HEADERS[$spid]; // Ikone izvoza na vrhu posameznih nastavitev self::displayExportIcons($spid); - echo '
    '.$lang['srv_chart_settings_basic'].'
    '; - //echo ''; - echo '
    '.$lang['srv_chart_settings_advanced'].'
    '; + echo '
    '; + + + echo '
    '; + echo '
    '.$lang['srv_chart_settings_basic'].'
    '; + echo '
    '.$lang['srv_chart_settings_advanced'].'
    '; + echo '
    '; // OSNOVNE NASTAVITVE echo ''; @@ -7278,7 +7273,7 @@ class SurveyChart { break; case 6: - if($spremenljivka['enota'] == 3) + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 3) self::displayAdvancedDoubleMultigridSettings($spid, $settings); else self::displayAdvancedMultigridSettings($spid, $settings); @@ -7311,58 +7306,86 @@ class SurveyChart { default: break; - } + } + + echo '
    '; + + echo '
    '; + } + + // Nastavitve posamezne tabele (odprti odgovori) + static function displaySingleSettingsTable($spid, $settings=0){ + global $site_path; + global $lang; + + if (self::$publicChart == true) { + return false; + } + + $spremenljivka = SurveyAnalysis::$_HEADERS[$spid]; - // Link na urejanje label - echo ''.$lang['srv_chart_advancedLink_labels'].''; - // Vprasajcek za pomoc - echo Help :: display('displaychart_settings_labels'); + // Ikone izvoza na vrhu posameznih nastavitev + self::displayExportIcons($spid, $hide_button=true); - // Link na urejanje barv - echo ''.$lang['srv_chart_advancedLink_colors'].''; - // Vprasajcek za pomoc - echo Help :: display('displaychart_settings_colors'); - // Link na rekodiranje - echo ''.$lang['srv_chart_advancedLink_recoding'].''; - // Vprasajcek za pomoc - echo Help :: display('displaychart_settings_recoding'); + echo '
    '; + + + echo '
    '.$lang['srv_chart_open_answers_settings'].'
    '; + + // OSNOVNE NASTAVITVE + echo '
    '; - // Link na napredne number (radio dropdown numeric, number, date) nastavitve - if(($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)) || $spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 8 || $spremenljivka['tip'] == 22){ - echo ''.$lang['srv_chart_advancedLink_limits'].''; - // Vprasajcek za pomoc - //echo Help :: display('displaychart_settings_number'); + switch($spremenljivka['tip']){ + case 21: + case 4: + self::displayTableSettings($spid); + break; + + case 19: + self::displayMultitextSettings($spid, $settings); + break; + + default: + break; } - - + + // Preview vprasanja + echo '
    '; + echo ' '.$spremenljivka['variable'].''; + echo ' '; + SurveyAnalysis::showIcons($spid,$spremenljivka,$_from='charts'); + echo '
    '; + + echo '
    '; + + echo '
    '; } // ikone na vrhu posameznih nastavitev (izvozi) - static function displayExportIcons($spid){ + static function displayExportIcons($spid, $hide_button=false){ global $site_path; global $lang; - $spremenljivka = SurveyAnalysis::$_HEADERS[$spid]; + $spremenljivka = isset(SurveyAnalysis::$_HEADERS[$spid])?SurveyAnalysis::$_HEADERS[$spid]:array(); $loop = (isset(SurveyAnalysis::$_CURRENT_LOOP)) ? SurveyAnalysis::$_CURRENT_LOOP['cnt'] : 'undefined'; // linki echo ''; } @@ -7371,13 +7394,13 @@ class SurveyChart { global $site_path; global $lang; - $spremenljivka = SurveyAnalysis::$_HEADERS[$spid]; + $spremenljivka = isset(SurveyAnalysis::$_HEADERS[$spid])?SurveyAnalysis::$_HEADERS[$spid]:array(); // Nastavitve numeric dropdowna - obravnavamo kot number - if($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)){ + if(isset($spremenljivka['tip'])&&$spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)){ // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; echo ' '; echo ' '; @@ -7390,7 +7413,7 @@ class SurveyChart { // tip izpisa vrednosti echo '
    '; - echo $lang['srv_chart_valtype'].': '; echo ' '; echo ' '; @@ -7403,7 +7426,7 @@ class SurveyChart { if($settings['type'] < 5){ echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -7417,7 +7440,7 @@ class SurveyChart { // stevilo intervalov if($settings['type'] > 4){ echo '
    '; - echo $lang['srv_chart_interval'].': '; for($i=3; $i<=10; $i++){ echo ' '; @@ -7435,8 +7458,8 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 3 || $settings['type'] == 4){ echo '
    '; - echo $lang['srv_chart_barLabel'].': '; echo ''; + echo ''; echo '
    '; } @@ -7446,7 +7469,7 @@ class SurveyChart { else{ // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; echo ' '; echo ' '; @@ -7464,7 +7487,7 @@ class SurveyChart { if($settings['type'] != 9){ echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -7478,7 +7501,7 @@ class SurveyChart { // tip izpisa vrednosti if($settings['type'] != 9){ echo '
    '; - echo $lang['srv_chart_valtype'].': '; echo ' '; echo ' '; @@ -7493,8 +7516,8 @@ class SurveyChart { if($settings['type'] == 2 || $settings['type'] == 8){ echo '
    '; - echo $lang['srv_analiza_legenda'].': '; echo ''; + echo ''; echo '
    '; } @@ -7503,8 +7526,8 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 3 || $settings['type'] == 4 || $settings['type'] == 9){ echo '
    '; - echo $lang['srv_chart_barLabel'].': '; echo ''; + echo ''; echo '
    '; } @@ -7523,8 +7546,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -7535,8 +7558,8 @@ class SurveyChart { $vars = count($spremenljivka['options']); $checked = ($settings['show_avg']=='1' || ($settings['show_avg']=='-1' && $vars == 5 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showAvg'].': '; echo ''; + echo ''; echo '
    '; } @@ -7545,7 +7568,7 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 3){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -7555,23 +7578,13 @@ class SurveyChart { echo '
    '; } - - // 3D strukturni krog - /*if($settings['type'] == 2){ - echo '
    '; - - echo $lang['srv_chart_3d_pie'].': '; - echo ''; - - echo '
    '; - }*/ - + // Izpusti variable brez odgovora if(($spremenljivka['tip'] != 3 || !self::checkDropdownNumeric($spid)) && $settings['type'] != 9){ echo '
    '; - echo $lang['srv_chart_hideEmtyVar'].': '; echo ''; + echo ''; echo '
    '; } @@ -7580,8 +7593,8 @@ class SurveyChart { if($settings['barLabel'] == 1 && ($settings['type'] == 0 || $settings['type'] == 1)){ echo '
    '; - echo $lang['srv_chart_barLabelSmall'].': '; echo ''; + echo ''; echo '
    '; } @@ -7592,15 +7605,13 @@ class SurveyChart { $lestvica = SurveyAnalysis::getSpremenljivkaLegenda($spremenljivka,'skalaAsValue'); - echo $lang['srv_skala'].': '; - // Vprasajcek za pomoc - echo Help :: display('srv_skala_edit'); + echo ''; - echo ''; - echo ''.$lang['srv_skala_short_0'].''; - echo ' / '; - echo ''.$lang['srv_skala_short_1'].''; - + echo '
    '; + echo ''; + echo ''; + echo '
    '; + echo '
    '; } } @@ -7612,7 +7623,7 @@ class SurveyChart { // omejitev skale echo '
    '; - echo $lang['srv_chart_base'].': '; echo ' '; echo ' '; @@ -7622,7 +7633,7 @@ class SurveyChart { // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; echo ' '; echo ' '; @@ -7643,7 +7654,7 @@ class SurveyChart { // Tip radarja if($settings['type'] == '5'){ echo '
    '; - echo $lang['srv_chart_radar_type'].': '; echo ' '; echo ' '; @@ -7655,7 +7666,7 @@ class SurveyChart { // Postavitev skale pri radarju if($settings['type'] == '5'){ echo '
    '; - echo $lang['srv_chart_radar_scale'].': '; echo ' '; echo ' '; @@ -7666,7 +7677,7 @@ class SurveyChart { // tip izpisa vrednosti echo '
    '; - echo $lang['srv_chart_valtype'].': '; if($settings['base'] != '1') echo ' '; @@ -7680,7 +7691,7 @@ class SurveyChart { if($settings['type'] != 5){ echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -7695,8 +7706,8 @@ class SurveyChart { if($settings['type'] == 2 || $settings['type'] == 7){ echo '
    '; - echo $lang['srv_analiza_legenda'].': '; echo ''; + echo ''; echo '
    '; } @@ -7705,8 +7716,8 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 3 || $settings['type'] == 4){ echo '
    '; - echo $lang['srv_chart_barLabel'].': '; echo ''; + echo ''; echo '
    '; } @@ -7722,8 +7733,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -7731,7 +7742,7 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 3){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -7745,8 +7756,8 @@ class SurveyChart { // Izpusti variable brez odgovora echo '
    '; - echo $lang['srv_chart_hideEmtyVar'].': '; echo ''; + echo ''; echo '
    '; @@ -7754,8 +7765,8 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 6){ echo '
    '; - echo $lang['srv_chart_settings_fullScale'].': '; echo ''; + echo ''; echo '
    '; } @@ -7764,21 +7775,11 @@ class SurveyChart { if($settings['barLabel'] == 1 && ($settings['type'] == 0 || $settings['type'] == 1)){ echo '
    '; - echo $lang['srv_chart_barLabelSmall'].': '; echo ''; + echo ''; echo '
    '; } - - // 3D strukturni krog - /*if($settings['type'] == 2){ - echo '
    '; - - echo $lang['srv_chart_3d_pie'].': '; - echo ''; - - echo '
    '; - }*/ } // Nastavitve za number grafe (tip 7) @@ -7788,7 +7789,7 @@ class SurveyChart { // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; echo ' '; echo ' '; @@ -7803,7 +7804,7 @@ class SurveyChart { // tip izpisa vrednosti if($settings['type'] != 9){ echo '
    '; - echo $lang['srv_chart_valtype'].': '; echo ' '; echo ' '; @@ -7817,7 +7818,7 @@ class SurveyChart { if($settings['type'] > 2 && $settings['type'] != 9){ echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -7831,14 +7832,12 @@ class SurveyChart { // stevilo intervalov if($settings['type'] < 3){ echo '
    '; - echo $lang['srv_chart_interval'].': '; for($i=3; $i<=10; $i++){ echo ' '; } echo ' '; - //echo ' '; - //echo ' '; echo ' '; echo ''; @@ -7848,47 +7847,10 @@ class SurveyChart { // prikaz legende echo '
    '; - echo $lang['srv_analiza_legenda'].': '; echo ''; + echo ''; echo '
    '; - - // div z nastavitvami za zgornjo in spodnjo mejo - /*echo '
    '.$lang['srv_chart_num_limit'].''; - - // min - echo '
    '; - - echo $lang['srv_chart_min'].': '; - echo ''; - - echo '
    '; - - // polodprt interval navzdol - echo '
    '; - - echo $lang['srv_chart_open_down'].': '; - echo ''; - - echo '
    '; - - // max - echo '
    '; - - echo $lang['srv_chart_max'].': '; - echo ''; - - echo '
    '; - - // polodprt interval navzgor - echo '
    '; - - echo $lang['srv_chart_open_up'].': '; - echo ''; - - echo '
    '; - - echo '
    ';*/ } // Nastavitve za number grafe (tip 7) @@ -7901,8 +7863,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -7912,8 +7874,8 @@ class SurveyChart { $checked = ($settings['show_avg']=='1' || ($settings['show_avg']=='-1' && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showAvg'].': '; echo ''; + echo ''; echo '
    '; } @@ -7922,8 +7884,8 @@ class SurveyChart { if($settings['type'] != 2){ echo '
    '; - echo $lang['srv_chart_barLabel'].': '; echo ''; + echo ''; echo '
    '; } @@ -7932,8 +7894,8 @@ class SurveyChart { if($settings['barLabel'] == 1 && $settings['type'] != 2 && $settings['type'] != 9){ echo '
    '; - echo $lang['srv_chart_barLabelSmall'].': '; echo ''; + echo ''; echo '
    '; } @@ -7942,7 +7904,7 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 3){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -7961,7 +7923,7 @@ class SurveyChart { // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; echo ' '; echo ' '; @@ -7975,7 +7937,7 @@ class SurveyChart { // tip izpisa vrednosti if($settings['type'] < 3){ echo '
    '; - echo $lang['srv_chart_valtype'].': '; echo ' '; echo ' '; @@ -7989,7 +7951,7 @@ class SurveyChart { if($settings['type'] > 2){ echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -8003,56 +7965,17 @@ class SurveyChart { // stevilo intervalov if($settings['type'] < 3){ echo '
    '; - echo $lang['srv_chart_interval'].': '; for($i=3; $i<=10; $i++){ echo ' '; } echo ' '; - //echo ' '; - //echo ' '; echo ' '; echo ''; echo '
    '; } - - // div z nastavitvami za zgornjo in spodnjo mejo - /*echo '
    '.$lang['srv_chart_num_limit'].''; - - // min - echo '
    '; - - echo $lang['srv_chart_min'].': '; - echo ''; - - echo '
    '; - - // polodprt interval navdol - echo '
    '; - - echo $lang['srv_chart_open_down'].': '; - echo ''; - - echo '
    '; - - // max - echo '
    '; - - echo $lang['srv_chart_max'].': '; - echo ''; - - echo '
    '; - - // polodprt interval navgor - echo '
    '; - - echo $lang['srv_chart_open_up'].': '; - echo ''; - - echo '
    '; - - echo '
    ';*/ } // Nastavitve za datum grafe (tip 8) @@ -8065,8 +7988,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -8074,7 +7997,7 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 3){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -8095,7 +8018,7 @@ class SurveyChart { // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; // Pri nominalnih ne prikazujemo povprecij if($spremenljivka['skala'] != 1 && $spremenljivka['cnt_all'] != 1){ @@ -8120,15 +8043,13 @@ class SurveyChart { echo '
    '; if($settings['rotate']=='1'){ echo $lang['srv_chart_rotate_grids'].' '; - //echo ''; - echo ''; + echo ''; echo ''; echo ' '.$lang['srv_chart_rotate_vars'].' '; } else{ echo $lang['srv_chart_rotate_vars'].' '; - //echo ''; - echo ''; + echo ''; echo ''; echo ' '.$lang['srv_chart_rotate_grids']; } @@ -8139,7 +8060,7 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 5 || $settings['type'] == 6){ echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -8153,7 +8074,7 @@ class SurveyChart { else{ echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -8169,7 +8090,7 @@ class SurveyChart { // tip izpisa vrednosti if(($settings['type'] > 0 && $settings['type'] < 5) || $settings['type'] == 7){ echo '
    '; - echo $lang['srv_chart_valtype'].': '; echo ' '; echo ' '; @@ -8182,7 +8103,7 @@ class SurveyChart { // Tip radarja if($settings['type'] == 5 || $settings['type'] == 7){ echo '
    '; - echo $lang['srv_chart_radar_type'].': '; echo ' '; echo ' '; @@ -8194,7 +8115,7 @@ class SurveyChart { // Postavitev skale pri radarju if($settings['type'] == 5 || $settings['type'] == 7){ echo '
    '; - echo $lang['srv_chart_radar_scale'].': '; echo ' '; echo ' '; @@ -8204,11 +8125,11 @@ class SurveyChart { } // prikaz desne skale pri sem. diferencialu (ver. linijski graf ali hor. strukturni stolpci) - if($spremenljivka['enota'] == 1 && ($settings['type'] == 2 || $settings['type'] == 6)){ + if(isset($spremenljivka['enota']) && $spremenljivka['enota'] == 1 && ($settings['type'] == 2 || $settings['type'] == 6)){ echo '
    '; - echo $lang['srv_chart_right_scale'].': '; echo ''; + echo ''; echo '
    '; } @@ -8217,8 +8138,8 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 5 || $settings['type'] == 6){ echo '
    '; - echo $lang['srv_analiza_legenda'].': '; echo ''; + echo ''; echo '
    '; } @@ -8227,8 +8148,8 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 2){ echo '
    '; - echo $lang['srv_chart_barLabel'].': '; echo ''; + echo ''; echo '
    '; } @@ -8246,8 +8167,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -8255,7 +8176,7 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 2 || $settings['type'] == 4){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -8269,8 +8190,8 @@ class SurveyChart { // Izpusti variable brez odgovora echo '
    '; - echo $lang['srv_chart_hideEmtyVar'].': '; echo ''; + echo ''; echo '
    '; @@ -8278,8 +8199,8 @@ class SurveyChart { if($settings['barLabel'] == 1 && $settings['type'] == 0){ echo '
    '; - echo $lang['srv_chart_barLabelSmall'].': '; echo ''; + echo ''; echo '
    '; } @@ -8288,27 +8209,25 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 5 || $settings['type'] == 6){ echo '
    '; - echo $lang['srv_chart_noFixedScale'].': '; echo ''; + echo ''; echo '
    '; } // Preklop med ordinalno in nominalno spremenljivko - echo '
    '; - - $lestvica = SurveyAnalysis::getSpremenljivkaLegenda($spremenljivka,'skalaAsValue'); + echo '
    '; - echo $lang['srv_skala'].': '; - // Vprasajcek za pomoc - echo Help :: display('srv_skala_edit'); - - echo ''; - echo ''.$lang['srv_skala_short_0'].''; - echo ' / '; - echo ''.$lang['srv_skala_short_1'].''; + $lestvica = SurveyAnalysis::getSpremenljivkaLegenda($spremenljivka,'skalaAsValue'); + + echo ''; + + echo '
    '; + echo ''; + echo ''; + echo '
    '; - echo '
    '; + echo '
    '; } // Nastavitve za dvojne multigrid grafe (tip 6, enota 3) @@ -8320,7 +8239,7 @@ class SurveyChart { // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; echo ' '; echo ' '; @@ -8335,7 +8254,7 @@ class SurveyChart { // Tip radarja if($settings['type'] == '4'){ echo '
    '; - echo $lang['srv_chart_radar_type'].': '; echo ' '; echo ' '; @@ -8347,7 +8266,7 @@ class SurveyChart { // Postavitev skale pri radarju if($settings['type'] == '4'){ echo '
    '; - echo $lang['srv_chart_radar_scale'].': '; echo ' '; echo ' '; @@ -8360,8 +8279,8 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 1){ echo '
    '; - echo $lang['srv_chart_barLabel'].': '; echo ''; + echo ''; echo '
    '; } @@ -8379,8 +8298,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -8388,7 +8307,7 @@ class SurveyChart { if($settings['type'] == 0){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -8402,8 +8321,8 @@ class SurveyChart { // zacni skalo z 0 echo '
    '; - echo $lang['srv_chart_noFixedScale'].': '; echo ''; + echo ''; echo '
    '; } @@ -8415,7 +8334,7 @@ class SurveyChart { // omejitev skale echo '
    '; - echo $lang['srv_chart_base'].': '; echo ' '; echo ' '; @@ -8425,7 +8344,7 @@ class SurveyChart { // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; if($settings['base'] == '1'){ echo ' '; @@ -8443,7 +8362,7 @@ class SurveyChart { // sortiranje echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -8458,15 +8377,13 @@ class SurveyChart { if($settings['rotate']=='1'){ echo $lang['srv_chart_rotate_grids'].' '; - //echo ''; - echo ''; + echo ''; echo ''; echo ' '.$lang['srv_chart_rotate_vars'].' '; } else{ echo $lang['srv_chart_rotate_vars'].' '; - //echo ''; - echo ''; + echo ''; echo ''; echo ' '.$lang['srv_chart_rotate_grids']; } @@ -8475,7 +8392,7 @@ class SurveyChart { // Tip radarja if($settings['type'] == '4'){ echo '
    '; - echo $lang['srv_chart_radar_type'].': '; echo ' '; echo ' '; @@ -8487,7 +8404,7 @@ class SurveyChart { // Postavitev skale pri radarju if($settings['type'] == '4'){ echo '
    '; - echo $lang['srv_chart_radar_scale'].': '; echo ' '; echo ' '; @@ -8498,7 +8415,7 @@ class SurveyChart { // tip izpisa vrednosti echo '
    '; - echo $lang['srv_chart_valtype'].': '; echo ' '; echo ' '; @@ -8512,8 +8429,8 @@ class SurveyChart { if($settings['type'] == 2 || $settings['type'] == 3){ echo '
    '; - echo $lang['srv_chart_barLabel'].': '; echo ''; + echo ''; echo '
    '; } @@ -8529,8 +8446,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -8538,7 +8455,7 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 3){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -8552,8 +8469,8 @@ class SurveyChart { // Izpusti variable brez odgovora echo '
    '; - echo $lang['srv_chart_hideEmtyVar'].': '; echo ''; + echo ''; echo '
    '; } @@ -8565,7 +8482,7 @@ class SurveyChart { // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; echo ' '; echo ' '; @@ -8580,7 +8497,7 @@ class SurveyChart { // Tip radarja if($settings['type'] == '4'){ echo '
    '; - echo $lang['srv_chart_radar_type'].': '; echo ' '; echo ' '; @@ -8592,7 +8509,7 @@ class SurveyChart { // Postavitev skale pri radarju if($settings['type'] == '4'){ echo '
    '; - echo $lang['srv_chart_radar_scale'].': '; echo ' '; echo ' '; @@ -8605,7 +8522,7 @@ class SurveyChart { if($settings['type'] != '4'){ echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -8620,8 +8537,8 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 5){ echo '
    '; - echo $lang['srv_analiza_legenda'].': '; echo ''; + echo ''; echo '
    '; } @@ -8630,8 +8547,8 @@ class SurveyChart { if($settings['type'] == 2 || $settings['type'] == 3){ echo '
    '; - echo $lang['srv_chart_barLabel'].': '; echo ''; + echo ''; echo '
    '; } @@ -8647,8 +8564,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -8656,7 +8573,7 @@ class SurveyChart { if($settings['type'] == 2){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -8671,21 +8588,11 @@ class SurveyChart { if($settings['barLabel'] == 1 && ($settings['type'] == 2 || $settings['type'] == 3)){ echo '
    '; - echo $lang['srv_chart_barLabelSmall'].': '; echo ''; + echo ''; echo '
    '; } - - // 3D strukturni krog - /*if($settings['type'] == 0){ - echo '
    '; - - echo $lang['srv_chart_3d_pie'].': '; - echo ''; - - echo '
    '; - }*/ } // Nastavitve za ranking grafe (tip 17) @@ -8695,12 +8602,11 @@ class SurveyChart { // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; echo ' '; echo ' '; echo ' '; - //echo ' '; echo ''; echo '
    '; @@ -8708,7 +8614,7 @@ class SurveyChart { // sortiranje echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -8720,11 +8626,10 @@ class SurveyChart { // tip izpisa vrednosti echo '
    '; - echo $lang['srv_chart_valtype'].': '; echo ' '; echo ' '; - //echo ' '; echo ''; echo '
    '; @@ -8732,8 +8637,8 @@ class SurveyChart { // prikaz label v stolpcih echo '
    '; - echo $lang['srv_chart_barLabel'].': '; echo ''; + echo ''; echo '
    '; } @@ -8748,8 +8653,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -8757,7 +8662,7 @@ class SurveyChart { if($settings['type'] == 0 || $settings['type'] == 1){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -8772,8 +8677,8 @@ class SurveyChart { if($settings['barLabel'] == 1 && $settings['type'] == 0){ echo '
    '; - echo $lang['srv_chart_barLabelSmall'].': '; echo ''; + echo ''; echo '
    '; } @@ -8782,8 +8687,8 @@ class SurveyChart { if($settings['type'] == 0){ echo '
    '; - echo $lang['srv_chart_noFixedScale'].': '; echo ''; + echo ''; echo '
    '; } @@ -8796,7 +8701,7 @@ class SurveyChart { // Tip grafa echo '
    '; - echo $lang['srv_chart_type'].':
    '; echo ' '; echo ' '; @@ -8809,7 +8714,7 @@ class SurveyChart { // sortiranje echo '
    '; - echo $lang['srv_chart_sort'].': '; echo ' '; echo ' '; @@ -8824,15 +8729,13 @@ class SurveyChart { if($settings['rotate']=='1'){ echo $lang['srv_chart_rotate_grids'].' '; - //echo ''; - echo ''; + echo ''; echo ''; echo ' '.$lang['srv_chart_rotate_vars'].' '; } else{ echo $lang['srv_chart_rotate_vars'].' '; - //echo ''; - echo ''; + echo ''; echo ''; echo ' '.$lang['srv_chart_rotate_grids']; } @@ -8841,7 +8744,7 @@ class SurveyChart { // Tip radarja if($settings['type'] == '0'){ echo '
    '; - echo $lang['srv_chart_radar_type'].': '; echo ' '; echo ' '; @@ -8853,7 +8756,7 @@ class SurveyChart { // Postavitev skale pri radarju if($settings['type'] == '0'){ echo '
    '; - echo $lang['srv_chart_radar_scale'].': '; echo ' '; echo ' '; @@ -8873,8 +8776,8 @@ class SurveyChart { $checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': ''; - echo $lang['srv_chart_showNumerus'].': '; echo ''; + echo ''; echo '
    '; @@ -8882,7 +8785,7 @@ class SurveyChart { if($settings['type'] == 2){ echo '
    '; - echo $lang['srv_wide_chart'].': '; echo ' '; echo ' '; @@ -8901,19 +8804,19 @@ class SurveyChart { // Tip tabele echo '
    '; - echo $lang['srv_chart_table_type'].':
    '; echo ' '; echo ' '; echo ''; echo '
    '; - - //Poravnava texta + + // Poravnava texta echo '
    '; - echo $lang['srv_chart_table_align'].': '; echo ''; + echo ''; echo '
    '; } @@ -8925,7 +8828,7 @@ class SurveyChart { // Tip tabele echo '
    '; - echo $lang['srv_chart_table_type'].':
    '; echo ' '; echo ' '; @@ -8939,25 +8842,28 @@ class SurveyChart { global $site_path; global $lang; + echo '
    '; + + echo '
    '.$lang['srv_chart_open_answers_settings'].'
    '; + + echo '
    '; - echo ''.$lang['srv_chart_settings'].''; - //Poravnava texta + // Poravnava texta echo '
    '; - - echo $lang['srv_chart_table_align'].': '; - echo ''; - + echo ' '; + echo ' '; echo '
    '; - //Prikaz frekvenc + // Prikaz frekvenc echo '
    '; - - echo $lang['srv_chart_table_freq'].': '; - echo ''; - + echo ' '; + echo ' '; echo '
    '; + echo '
    '; + + echo '
    '; } @@ -8972,9 +8878,33 @@ class SurveyChart { echo '

    '.$spremenljivka['variable'].' - '.$spremenljivka['naslov'].'

    '; echo ''; - + echo '
    '; + echo '
    '; + + /* ZAVIHKI NA DESNI */ + echo '
    '; + + echo '
      '; + echo '
    • '; + echo $lang['srv_chart_advanced_labels']; + echo '
    • '; + echo '
    • '; + echo $lang['srv_chart_advanced_colors']; + echo '
    • '; + echo '
    • '; + echo $lang['srv_chart_advanced_recoding']; + echo '
    • '; + // Tab za meje numericov + if(($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)) || $spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 8 || $spremenljivka['tip'] == 22){ + echo '
    • '; + echo $lang['srv_chart_advanced_limits']; + echo '
    • '; + } + echo '
    '; + echo '
    '; + echo ''; echo ''; echo ''; @@ -8986,7 +8916,7 @@ class SurveyChart { echo '
    '; // urejanje barv - echo '
'; @@ -9201,9 +9107,9 @@ class SurveyChart { $text = $row1['naslov_graf'] == '' ? $row1['naslov'] : $row1['naslov_graf']; - echo '
  • '; + echo '
  • '; - echo ' '; + echo ' '; echo '['.$row1['variable'].']'; if ($row1['other'] == 1) echo ' '; @@ -9348,9 +9254,9 @@ class SurveyChart { global $lang; if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0) - self::$sessionData[$spid] = $settings; + self::$sessionData[$spid] = self::$settings; else - self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings; + self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = self::$settings; $spremenljivka = SurveyAnalysis::$_HEADERS[$spid]; # če je besedilo * in je samo ena kategorija je inline legenda false @@ -9374,7 +9280,7 @@ class SurveyChart { foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - if(SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0) + if(isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'])&&SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0) $emptyData = false; } } @@ -9397,16 +9303,16 @@ class SurveyChart { echo '
    '.$stevilcenje . $title.'
    '; # tekst vprašanja - echo ''; + echo '
    '; if(self::$settings['type']==1){ - echo ''; + echo ''; + #odgovori echo ''; echo ''; echo ''; - // konec naslovne vrstice } $_answersOther = array(); @@ -9492,8 +9398,8 @@ class SurveyChart { echo ''; // Izpisemo nastavitve za tabele - echo '
    '; - self::displaySingleSettings($spid); + echo '
    '; + self::displaySingleSettingsTable($spid); echo '
    '; # izpišemo še tekstovne odgovore za polja drugo @@ -9789,7 +9695,7 @@ class SurveyChart { echo '
    '.$stevilcenje . $title.'
    '; - echo '
    '.$lang['srv_analiza_frekvence_titleAnswers'] . ''. $lang['srv_analiza_frekvence_titleFrekvenca'] .'
    ' . NEW_LINE; + echo '
    ' . NEW_LINE; $counter = 0; $_kumulativa = 0; @@ -9827,9 +9733,9 @@ class SurveyChart { $spremenljivka = SurveyAnalysis::$_HEADERS[$spid]; if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0) - self::$sessionData[$spid] = $settings; + self::$sessionData[$spid] = self::$settings; else - self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings; + self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = self::$settings; # koliko zapisov prikažemo naenkrat $num_show_records = (self::$num_records == 0) ? 10 : self::$num_records; @@ -9843,6 +9749,7 @@ class SurveyChart { return; } + echo '
    '; //div za pozicijo popupa echo '
    '; @@ -9862,16 +9769,17 @@ class SurveyChart { $_all_valid_answers_cnt = $_answers['validCnt']; $_valid_answers = $_answers['valid']; + # tekst vprašanja - echo '
    ' . NEW_LINE; + echo '
    ' . NEW_LINE; # naslovna vrstica if(self::$settings['type']==1){ - echo ''; - #odgovori - echo ''; + echo ''; - echo ''; + #odgovori + echo ''; + echo ''; echo ''; } @@ -9880,17 +9788,19 @@ class SurveyChart { $_answersOther = array(); $_grids_count = count($spremenljivka['grids']); if ($_grids_count > 0) { + # naslovna vrstica $_row = $spremenljivka['grids'][0]; - echo ''; - echo ''; + + echo ''; + + echo ''; if (count($_row['variables'])>0) foreach ($_row['variables'] AS $rid => $_col ){ $_sequence = $_col['sequence']; # id kolone z podatki if ($_col['other'] != true) { - echo ''; } else { @@ -9912,7 +9822,7 @@ class SurveyChart { $_max_i = 0; foreach ($grid['variables'] AS $vid => $variable ){ $_sequence = $variable['sequence']; # id kolone z podatki - $_max_i = max($_max_i,min($num_show_records,SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'])); + $_max_i = max($_max_i,min($num_show_records,(isset(SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'])?SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt']:0))); } # za barvanje @@ -9925,8 +9835,9 @@ class SurveyChart { if ($variable['other'] != true) { # tabela z navedbami - echo '
    '.$lang['srv_analiza_opisne_subquestion'] . '
    '. $lang['srv_analiza_opisne_arguments'] .''.$lang['srv_analiza_opisne_subquestion'] . ''. $lang['srv_analiza_opisne_arguments'] .'
     
     '; - // echo $_col['variable']; + echo ''; echo $_col['naslov']; echo ''; - echo ''; + echo '
    '; + + echo ''; $index=0; if (count($_valid_answers) > 0) { @@ -9970,8 +9881,8 @@ class SurveyChart { echo ''; // Izpisemo nastavitve za tabele - echo '
    '; - self::displaySingleSettings($spid); + echo '
    '; + self::displaySingleSettingsTable($spid); echo '
    '; echo '
    '; @@ -10028,12 +9939,12 @@ class SurveyChart { - if (isset ($_POST['what'])) - $what = $_POST['what']; if (isset ($_POST['value'])) $value = $_POST['value']; - - self::$settings[$what] = $value; + if (isset ($_POST['what'])){ + $what = $_POST['what']; + self::$settings[$what] = $value; + } if (isset ($_POST['num_records'])){ @@ -10327,8 +10238,8 @@ class SurveyChart { $other = '0'; # manjkoajoče vrednosti (ne vem, zavrnil ... - if (isset($_POST['missing_value_checkbox']) && is_array($_POST['missing_value_checkbox'])) { - if (in_array($grid, $_POST['missing_value_checkbox'])) { + if (isset($_POST['missing_value_checkbox_'.$spid]) && is_array($_POST['missing_value_checkbox_'.$spid])) { + if (in_array($grid, $_POST['missing_value_checkbox_'.$spid])) { # grid je manjkajoča vrednost $other = $grid.''; $id = $grid; @@ -10536,16 +10447,15 @@ class SurveyChart { global $lang; - echo '

    '.$lang['srv_chart_skin_long'].'

    '; - echo ''.$lang['srv_chart_skin_info'].'

    '; - - // Opozorilo na vrhu + echo '

    '.$lang['srv_chart_skin_long'].'

    '; + echo ''; + + // Opozorilo - privzetih ne morejo spreminjati if(!is_numeric($skin)){ echo '
    '; echo $lang['srv_chart_skin_warning']; echo '
    '; - echo '
    '."\n"; - } + } echo ''; + echo '
    '; echo '
    '; - + // Prednastavljeni skini - echo ''.$lang['srv_chart_skin_default'].':'; - echo ''; - echo ''; + echo '

    '.$lang['srv_chart_skin_default'].':

    '; + echo '
    '; + echo '
    '; echo '
    '.$lang['srv_chart_skin_1ka'].'
    '; echo '
    '.$lang['srv_chart_skin_0'].'
    '; @@ -10583,34 +10494,39 @@ class SurveyChart { echo '
    '.$lang['srv_chart_skin_4'].'
    '; echo '
    '.$lang['srv_chart_skin_5'].'
    '; - echo ''; - echo ''; + echo '
    '; + echo '
    '; // Custom kreirani skini $custom_skins = self::getCustomSkins(); - echo ''.$lang['srv_chart_skin_custom'].':'; - echo ''; - echo ''; + echo '

    '.$lang['srv_chart_skin_custom'].':

    '; + echo '
    '; + echo '
    '; foreach ($custom_skins as $custom_skin ){ echo '
    '.$custom_skin['name'].'
    '; } - echo ''; - echo ''; + echo '
    '; + echo '
    '; // Ce je izbran custom skin imamo na dnu gumba brisi in preimenuj if(is_numeric($skin)){ - echo ''.$lang['srv_rename_profile'].'
    '."\n"; - echo ''.$lang['srv_delete_profile'].''."\n"; + + echo '
    '; + echo ''; + echo ''; + echo '
    '; } - echo '
    '; + echo '
    '; #left - echo '
    '; + echo '
    '; + + echo '

    '.$lang['srv_chart_skin_long2'].':

    '; // ce je numeric je custom skin if(is_numeric($skin)){ @@ -10623,70 +10539,101 @@ class SurveyChart { else{ // preview za default skine echo '
    '; - echo $lang['srv_chart_skin_preview'].':'; + echo '

    '.$lang['srv_chart_skin_preview'].'

    '; self::displayChartSkinPreview($skin); echo '
    '; $default_colors = self::getDefaultColors($skin); } - - // Izbira custom skina - echo '
    '; - - echo '
    '; - for($i=0; $i<7; $i++){ $name = 'color'.($i+1); //$value = (self::$settings['colors'][$i] != '') ? self::$settings['colors'][$i] : $default_colors[$i]; $value = $default_colors[$i]; - echo '
    '; + echo '
    '; } // reset na default barvo - echo '
    '.$lang['srv_chart_advanced_default_color'].''; - - echo '
    '; + echo ''; - echo '
    '; + echo '
    '; #middle + echo '
    '; + + // Izbira custom skina + echo '
    '; + echo '
    '; + + echo '
    '; + echo '
    '; + echo '
    '; + + echo '
    '; #right + echo ''; #wrap + // cover Div - echo '
    '."\n"; + echo '
    '; // div za kreacijo novega - echo '
    '.$lang['srv_missing_profile_name'].': '."\n"; - echo ''."\n"; - echo ''.$lang['srv_analiza_arhiviraj_save'].''."\n"; - echo ''.$lang['srv_close_profile'].''."\n"; - echo '
    '."\n"; + echo '
    '; + + echo '
    '; + + echo '
    '; + echo ''; + echo ''; + echo '
    '; + echo '
    '; + + echo '
    '; + echo ''; + echo ''; + echo '
    '; + + echo '
    '; // div za preimenovanje - echo '
    '.$lang['srv_missing_profile_name'].': '."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''.$lang['srv_rename_profile_yes'].''."\n"; - echo ''.$lang['srv_close_profile'].''."\n"; - echo '
    '."\n"; + echo '
    '; + + echo '
    '; + + echo '
    '; + echo ''; + echo ''; + echo '
    '; + echo '
    '; + + echo '
    '; + echo ''; + echo ''; + echo '
    '; + + echo '
    '; // div za brisanje - echo '
    '.$lang['srv_missing_profile_delete_confirm'].': ' . $custom_skin['name'] . '?'."\n"; + echo '
    '; + + + echo $lang['srv_missing_profile_delete_confirm'].': ' . $custom_skin['name'] . '?'; echo ''."\n"; - echo ''.$lang['srv_delete_profile_yes'].''."\n"; - echo ''.$lang['srv_close_profile'].''."\n"; - echo '
    '."\n"; - - - echo ''; - echo '
    '; + echo '
    '; + echo ''; + echo ''; + echo '
    '; + + echo '
    '; + + echo '
    '; + echo ''; + echo ''; + echo ''; + echo '
    '; + + echo '
    '; - echo ''; - echo ''; - echo ''; - - echo ''; } static function displayChartSkinPreview ($skin) { @@ -10806,7 +10753,7 @@ class SurveyChart { echo ''; echo ''; - echo ''; + echo ''; echo '

    '.$lang['srv_publc_chart_title_for'] . self::$survey['naslov'].'

    '; echo ''; diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyCrosstabs.php b/admin/survey/classes/surveyAnalysis/class.SurveyCrosstabs.php index e0f4e85..532fc5c 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyCrosstabs.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyCrosstabs.php @@ -5,12 +5,12 @@ * */ -define("EXPORT_FOLDER", "admin/survey/SurveyData"); +if(!defined("EXPORT_FOLDER")) define("EXPORT_FOLDER", "admin/survey/SurveyData"); # mejne vrednosti za barvanje residualov -define("RESIDUAL_COLOR_LIMIT1", 1.00); -define("RESIDUAL_COLOR_LIMIT2", 2.00); -define("RESIDUAL_COLOR_LIMIT3", 3.00); -define("AUTO_HIDE_ZERRO_VALUE", 20); # nad koliko kategorij skrivamo ničelne vrednosti +if(!defined("RESIDUAL_COLOR_LIMIT1")) define("RESIDUAL_COLOR_LIMIT1", 1.00); +if(!defined("RESIDUAL_COLOR_LIMIT2")) define("RESIDUAL_COLOR_LIMIT2", 2.00); +if(!defined("RESIDUAL_COLOR_LIMIT3")) define("RESIDUAL_COLOR_LIMIT3", 3.00); +if(!defined("AUTO_HIDE_ZERRO_VALUE")) define("AUTO_HIDE_ZERRO_VALUE", 20); # nad koliko kategorij skrivamo ničelne vrednosti @session_start(); @@ -104,9 +104,13 @@ class SurveyCrosstabs { # polovimo vrsto tabel (aktivne / neaktivne) SurveyInfo :: getInstance()->SurveyInit($this->sid); - if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) { - $this->db_table = '_active'; - } + $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); + + // Pri glasovanju tega ne pustimo + if(SurveyInfo::getInstance()->getSurveyColumn("survey_type") == 0){ + die(); + } + $this->_CURRENT_STATUS_FILTER = STATUS_FIELD.' ~ /6|5/'; # Inicializiramo in polovimo nastavitve missing profila @@ -198,11 +202,11 @@ class SurveyCrosstabs { $this->variablesList = array(); # zloopamo skozi header in dodamo variable (potrebujemo posamezne sekvence) foreach ($this->_HEADERS AS $skey => $spremenljivka) { - if ((int)$spremenljivka['hide_system'] == 1 && in_array($spremenljivka['variable'],array('email','ime','priimek','telefon','naziv','drugo'))) { + if (isset($spremenljivka['hide_system']) && (int)$spremenljivka['hide_system'] == 1 && in_array($spremenljivka['variable'],array('email','ime','priimek','telefon','naziv','drugo'))) { continue; } - $tip = $spremenljivka['tip']; + $tip = isset($spremenljivka['tip']) ? $spremenljivka['tip'] : null; if (is_numeric($tip) # tekstovnih tipov ne dodajamo @@ -299,7 +303,7 @@ class SurveyCrosstabs { # imamo več gridov - tabele foreach($spremenljivka['grids'] AS $gid => $grid) { $sub = 0; - if ($grid['variable'] != '') { + if (isset($grid['variable']) && $grid['variable'] != '') { $sub++; $this->variablesList[] = array( 'tip'=>$tip, @@ -367,76 +371,105 @@ class SurveyCrosstabs { * */ function Display() { + global $lang; + # preberemo prednastavljene variable iz seje, če obstajajo $this->presetVariables(); if ($this->dataFileStatus == FILE_STATUS_NO_DATA - || $this->dataFileStatus == FILE_STATUS_NO_FILE - || $this->dataFileStatus == FILE_STATUS_SRV_DELETED){ + || $this->dataFileStatus == FILE_STATUS_NO_FILE + || $this->dataFileStatus == FILE_STATUS_SRV_DELETED){ + return false; } - global $lang; - # polovimo nastavtve missing profila - //$this->missingProfileData = SurveyMissingProfiles::getProfile($this->currentMissingProfile); + echo '
    '; + // Izbira spremenljivk echo '
    '; $resultIsCheckbox = $this->DisplayDropdows(); echo '
    '; - echo '
    ' ; + + + // Nastavitve + echo '
    '; + + echo '
    '; + echo $lang['srv_analiza_crosstab_table_settings'].':'; + echo '
    '; + $this->displayLinePercent(); $this->displayResidual(); $this->displayShowChart(); + + echo '
    '; + + + // Nastavitve 2 if ( $resultIsCheckbox['is_check']) { - echo '
    '; - echo 'crossNavVsEno == 0 ? ' checked="checked" ' : '' ).' onchange="change_crosstab(); return false;" autocomplete="off">'. - ''; - echo 'crossNavVsEno == 1? ' checked="checked" ' : '' ).' onchange="change_crosstab(); return false;" autocomplete="off">'. - ''; - echo '
    '; + + echo '
    '; + + echo '
    '; + echo $lang['srv_analiza_crosstab_answer_settings'].':'; + echo '
    '; + + echo '
    '; + echo ' crossNavVsEno == 0 ? ' checked="checked" ' : '' ).' onchange="change_crosstab(); return false;" autocomplete="off">'; + echo ' '; + echo '
    '; + + echo '
    '; + echo ' crossNavVsEno == 1? ' checked="checked" ' : '' ).' onchange="change_crosstab(); return false;" autocomplete="off">'; + echo ' '; + echo '
    '; + + echo '
    '; } - echo '
    '; - + + echo '
    '; - $this->displayExport(); - $this->displayCrosstabCheckboxes(); - echo '
    '; + + // Tabele + echo '
    '; $this->displayCrosstabsTables(); echo '
    '; } function DisplayDropdows() { global $lang; + $variables = $this->getVariableList(); $multiple = true; - echo '
    '; + + echo '
    '; # iz header datoteke preberemo spremenljivke #js: $("#crosstab_variable_1, #crosstab_variable_2").live('click', function() {}) if (count($this->variabla1) > 0) { - $br=null; - echo $lang['srv_crosstab_label1'].'
    '; - if ((int)$this->variabla1['0']['seq'] > 0) { - echo ''; - } + + echo '
    '.$lang['srv_crosstab_label1'].'
    '; + + echo '
    '; + foreach($this->variabla1 AS $_key => $variabla1) { - echo $_br; - echo ''; + + echo '
    '; - echo ''; # ce prva variabla ni izbrana, dodamo tekst za izbiro prve variable if ( $variabla1['seq'] == null || $variabla1['seq'] == 0 ) { echo ''; } foreach ($variables as $variable) { - echo ''; @@ -444,41 +477,54 @@ class SurveyCrosstabs { } echo ''; + + // Gumb odstrani + echo '
    '; if (count($this->variabla1) > 1) { - echo ''; - } else { - #echo ' '; - } + echo ''; + } + echo '
    '; + + echo '
    '; + } + + echo '
    '; + - $_br = '
     '; - echo ''; + if ((int)$this->variabla1['0']['seq'] > 0) { + echo ''; } - $_br = null; } echo '
    '; + + echo '
    '; - echo '
    '; + if ($this->isSelectedBothVariables()) { - echo ''; - } else { - echo ''; + echo ''; + } + else { + echo ''; } + echo '
    '; + echo '
    '; - echo $lang['srv_crosstab_label2'].'
    '; + + echo '
    '.$lang['srv_crosstab_label2'].'
    '; + # za vsako novo spremenljivko 2 nardimo svoj select if (count($this->variabla2) > 0) { - if ((int)$this->variabla1['0']['seq'] > 0) { - echo ''; - } - + + echo '
    '; + foreach($this->variabla2 AS $_key => $variabla2) { - echo $_br; - echo ''; + + echo '
    '; - echo ''; + + // Gumb odstrani + echo '
    '; if (count($this->variabla2) > 1) { - echo ''; - } else { - echo ' '; - } + echo ''; + } + echo '
    '; + + echo '
    '; + } + + echo '
    '; - $_br = '
     '; - echo ''; + + if ((int)$this->variabla1['0']['seq'] > 0) { + echo ''; } } + echo '
    '; + # če je katera od variabel checkbox, ponudimo možnodt izbire ali po enotah ali po navedbah $is_check = false; if (count($this->variabla2) > 0) { foreach ($this->variabla2 AS $key => $var) { - $spr_tip = $this->_HEADERS[$var['spr']]['tip']; + $spr_tip = isset($this->_HEADERS[$var['spr']]['tip']) ? $this->_HEADERS[$var['spr']]['tip'] : null; if ( $spr_tip == 2 || $spr_tip == 16 ) { $is_check = true; } @@ -527,7 +584,7 @@ class SurveyCrosstabs { } if (count($this->variabla1) > 0 && $is_check == false ) { # če še ni bil checkbox foreach ($this->variabla1 AS $key => $var) { - $spr_tip = $this->_HEADERS[$var['spr']]['tip']; + $spr_tip = isset($this->_HEADERS[$var['spr']]['tip']) ? $this->_HEADERS[$var['spr']]['tip'] : null; if ( $spr_tip == 2 || $spr_tip == 16 ) { $is_check = true; } @@ -546,10 +603,12 @@ class SurveyCrosstabs { if ($which == '1') { - echo '
    '; - echo ' '; - echo ''; + + # ce prva variabla ni izbrana, dodamo tekst za izbiro prve variable if ( $variabla1['seq'] == null || $variabla1['seq'] == 0 ) { echo ''; } @@ -564,18 +623,25 @@ class SurveyCrosstabs { } echo ''; - echo ''; - - } else { - echo '
    '; - echo ' '; - echo ''; # ce prva variabla ni izbrana, dodamo tekst za izbiro prve variable if ((int)$this->variabla1['0']['seq'] > 0) { echo ''; - } else { + } + else { # če druga variabla ni izbrana dodamo tekst za izbiro druge variable echo ''; } @@ -589,8 +655,15 @@ class SurveyCrosstabs { . $variable['variableNaslov'] .$variable['sequence']. ''; } + echo ''; - echo ''; + + // Gumb odstrani + echo '
    '; + echo ' '; + echo '
    '; + + echo '
    '; } } /** @@ -599,83 +672,56 @@ class SurveyCrosstabs { function displayCrosstabCheckboxes () { global $lang; - echo '
    isSelectedBothVariables() && $this->doColor ? '' : ' class="hidden"').'>' ; + echo '
    isSelectedBothVariables() && $this->doColor ? '' : ' class="hidden"').'>' ; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
    '; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - //echo ''; - echo ''; - echo '
    -      +'.$lang['srv_more'].'
    '; - echo ''; - echo ''; - echo Help :: display('srv_crosstab_residual'); - echo ''; + + echo '
    '; + + echo ''.$lang['srv_analiza_crosstab_adjs_residual_short'].' '.Help :: display('srv_crosstab_residual').':'; + + echo '
    '; + echo '
    -
    '; + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    +
    '; + echo '
    '; - echo ''; + echo '
    '; + - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + /*echo '
    '; + + echo ''.Help :: display('srv_crosstab_residual').''; + echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + echo ' '; + echo ' '; + echo ' '; + echo ' '; echo '
    '.$lang['srv_analiza_crosstab_adjs_residual_long'].':    +-
      '.$lang['srv_crosstab_residual_3_0'].'  
      '.$lang['srv_crosstab_residual_2_0'].'  
      '.$lang['srv_crosstab_residual_1_0'].'  
    '.$lang['srv_analiza_crosstab_adjs_residual_long'].':    +-
      '.$lang['srv_crosstab_residual_3_0'].'  
      '.$lang['srv_crosstab_residual_2_0'].'  
      '.$lang['srv_crosstab_residual_1_0'].'  
    '; - //echo ''.$lang['srv_residual_link_faq'].''; - echo ''; - echo ''.$lang['srv_less'].''; - echo ''; - echo Help :: display('srv_crosstab_residual'); - echo ''; - - echo ''; + + echo '
    ';*/ + + echo '
    '; - echo '
    '; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
        
    '; - echo '
    '; - echo ''; - echo Help :: display('srv_crosstab_residual2'); - echo ''; + echo ''.$lang['srv_analiza_crosstab_residuals'].' '.Help::display('srv_crosstab_residual2').':'; + + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; - echo '
    '; + echo '
    '; - echo '
    '; - echo ''; - echo '
    '; } public function displayCrosstabsTables() { @@ -694,26 +740,26 @@ class SurveyCrosstabs { $SR -> getProfileString(); # preverimo ali imamo izbrano tretjo variablo - if ( $this->variabla_third == null || (int)$this->variabla_third == 0) { + /*if ( $this->variabla_third == null || (int)$this->variabla_third == 0) { # tretja variabla ni izbrana, nardimo navadne loope če obstajajo $this->_LOOPS = SurveyZankaProfiles::getFiltersForLoops(); } else { # tretja variabla je izbrana, zamenjamo loope z tretjo variablo $this->_LOOPS = SurveyZankaProfiles::setLoopsForCrostabs($this->variabla_third); - } + } */ - if (count($this->_LOOPS) > 0) { + /* if (count($this->_LOOPS) > 0) { # če mamo zanke foreach ( $this->_LOOPS AS $loop) { $this->_CURRENT_LOOP = $loop; echo '

    '.$lang['srv_zanka_note'].$loop['text'].'

    '; $this->displayCrosstabsTable(); - echo '
    '; } - } else { + } + else { */ $this->displayCrosstabsTable(); - } + //} } public function displayCrosstabsTable() { @@ -721,9 +767,11 @@ class SurveyCrosstabs { global $admin_type; if ($this->getSelectedVariables(1) !== null && $this->getSelectedVariables(2) !== null) { + $variables1 = $this->getSelectedVariables(2); $variables2 = $this->getSelectedVariables(1); $counter = 0; + foreach ($variables1 AS $v_first) { foreach ($variables2 AS $v_second) { @@ -738,8 +786,8 @@ class SurveyCrosstabs { $spr1 = $this->_HEADERS[$v_first['spr']]; $spr2 = $this->_HEADERS[$v_second['spr']]; - $grid1 = $spr1['grids'][$v_first['grd']]; - $grid2 = $spr2['grids'][$v_second['grd']]; + $grid1 = isset($spr1['grids'][$v_first['grd']])?$spr1['grids'][$v_first['grd']]:array(); + $grid2 = isset($spr2['grids'][$v_second['grd']])?$spr2['grids'][$v_second['grd']]:array(); #število vratic in število kolon $cols = count($crosstabs['options1']); @@ -755,19 +803,22 @@ class SurveyCrosstabs { $numColumnPercent = $this->crossChk1 + $this->crossChk2 + $this->crossChk3; $numColumnResidual = $this->crossChkEC + $this->crossChkRE + $this->crossChkSR + $this->crossChkAR; $tblColumn = max($numColumnPercent,$numColumnResidual); - } else if ($this->crossChk1 || $this->crossChk2 || $this->crossChk3) { + } + else if ($this->crossChk1 || $this->crossChk2 || $this->crossChk3) { # imamo samo procente $rowSpan = 2; $numColumnPercent = $this->crossChk1 + $this->crossChk2 + $this->crossChk3; $numColumnResidual = 1; $tblColumn = $numColumnPercent; - } else if ($this->crossChkEC || $this->crossChkRE || $this->crossChkSR || $this->crossChkAR) { + } + else if ($this->crossChkEC || $this->crossChkRE || $this->crossChkSR || $this->crossChkAR) { # imamo samo residuale $rowSpan = 2; $numColumnPercent = 1; $numColumnResidual = $this->crossChkEC + $this->crossChkRE + $this->crossChkSR + $this->crossChkAR; $tblColumn = $numColumnResidual; - } else { + } + else { #prikazujemo samo podatke $rowSpan = 1; $numColumnPercent = 1; @@ -782,20 +833,24 @@ class SurveyCrosstabs { foreach ($spr1['grids'] AS $grid) { foreach ($grid['variables'] AS $variable) { if ($variable['sequence'] == $v_first['seq']) { - $sub_q1 = ''; + $sub_q1 = ''; $sub_q1 .= ''; $sub_q1 .= strip_tags($spr1['naslov']); + if ($show_variables_values == true ) { - $sub_q1 .= ''; + $sub_q1 .= ''; $sub_q1 .= ' ('.strip_tags($spr1['variable']).')'; $sub_q1 .= ''; } + if ($spr1['tip'] == '16') { $sub_q1 .= '
    ' . strip_tags($grid1['naslov']) . ($show_variables_values == true ? ' (' . strip_tags($grid1['variable']) . ')' : ''); - } else { - $sub_q1 .= '
    ' . strip_tags($variable['naslov']) . ($show_variables_values == true ? ' (' . strip_tags($variable['variable']) . ')' : ''); + } + else { + if(strip_tags($variable['naslov']) != $lang['srv_new_text'] && strip_tags($variable['naslov']) != $lang['srv_new_vprasanje']) + $sub_q1 .= '
    ' . strip_tags($variable['naslov']) . ($show_variables_values == true ? ' (' . strip_tags($variable['variable']) . ')' : ''); } $sub_q1 .= '
    '; $sub_q1 .= '
    ' . NEW_LINE; @@ -804,7 +859,7 @@ class SurveyCrosstabs { } } if ($sub_q1 == null) { - $sub_q1 = ''; + $sub_q1 = ''; $sub_q1 .= ''; $sub_q1 .= strip_tags($spr1['naslov']); $sub_q1 .= ($show_variables_values == true ? ' ('.strip_tags($spr1['variable']).')' : ''); @@ -815,11 +870,11 @@ class SurveyCrosstabs { foreach ($spr2['grids'] AS $grid) { foreach ($grid['variables'] AS $variable) { if ($variable['sequence'] == $v_second['seq']) { - $sub_q2 = ''; + $sub_q2 = ''; $sub_q2 .= ''; $sub_q2 .= strip_tags($spr2['naslov']); if ($show_variables_values == true) { - $sub_q2 .= ''; + $sub_q2 .= ''; $sub_q2 .= ' ('.strip_tags($spr2['variable']).')'; @@ -827,8 +882,10 @@ class SurveyCrosstabs { } if ($spr2['tip'] == '16') { $sub_q2.= '
    ' . strip_tags($grid2['naslov']) . ($show_variables_values == true ? ' (' . strip_tags($grid2['variable']) . ')' : ''); - } else { - $sub_q2.= '
    ' . strip_tags($variable['naslov']) . ($show_variables_values == true ? ' (' . strip_tags($variable['variable']) . ')' : ''); + } + else { + if(strip_tags($variable['naslov']) != $lang['srv_new_text'] && strip_tags($variable['naslov']) != $lang['srv_new_vprasanje']) + $sub_q2.= '
    ' . strip_tags($variable['naslov']) . ($show_variables_values == true ? ' (' . strip_tags($variable['variable']) . ')' : ''); } $sub_q2 .= '
    '; $sub_q2 .= '
    ' . NEW_LINE; @@ -837,123 +894,119 @@ class SurveyCrosstabs { } } if ($sub_q2 == null) { - $sub_q2 = ''; + $sub_q2 = ''; $sub_q2 .= ''; $sub_q2 .= strip_tags($spr2['naslov']); $sub_q2 .= ($show_variables_values == true ? ' ('.strip_tags($spr2['variable']).')' : ''); $sub_q2 .= ''; $sub_q2 .= '' . NEW_LINE; } + + # izrišemo tabelo - # najprej izrišemo naslovne vrstice - #echo ''; - echo $_br.'
    '; -# $_br = '
    '; -# echo '
    '.$sub_q1. '
    ==>
    '. $sub_q2.'

    '; + echo '
    '; + + // Zgornja vrstca + echo '
    '; + + // hi2 + echo '
    '; + if ($this->displayHi2 == true) { + echo 'Χ2 = '; + echo $this->formatNumber($crosstabs['hi2'], 3, ''); + } + echo '
    '; + + // Zvezdica za vkljucitev v porocilo + $spr2 = $v_first['seq'].'-'.$v_first['spr'].'-'.$v_first['grd']; + $spr1 = $v_second['seq'].'-'.$v_second['spr'].'-'.$v_second['grd']; + + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=5, $sub_type=0, $spr1, $spr2); + + echo '
    '; + + + # najprej izrišemo naslovne vrstice #Zadnja kolona: Če imamo vodoravno checkboxe in gledamo enote, potem kolono s summo malo razmaknemo if ( $crosstabs['isCheckbox']['spr1'] == true && $this->crossNavVsEno == true) { $addVerticalSpace = 1; - } else { + } + else { $addVerticalSpace = 0; } - - # hi2 - if ($this->displayHi2 == true) { - echo 'Χ2 = '; - echo $this->formatNumber($crosstabs['hi2'], 3, ''); - } - echo '
    '; + echo '
    '; + echo '
    '; - if ($this->fromBreak == false) { - echo ''; - #echo ''; - echo ''; - if (count($crosstabs['options1']) > 0 ) { - $_width_percent = round(100 / count($crosstabs['options1'],2)); - foreach ($crosstabs['options1'] as $ckey1 =>$crossVariabla) { - echo ''; - } - } - if ($addVerticalSpace == 1) { - echo ''; - } - echo ''; - echo ''; - } - echo ''; - echo ''; + + echo ''; - #} echo ''; - echo ''; - echo ''; if ($this->fromBreak == true && $this->showAverage == true) { # če smo v break-u dodamo še povprečja - echo ''; + echo ''; } + echo ''; - echo ''; + + + echo ''; + $col_cnt=0; if (count($crosstabs['options1']) > 0 ) { foreach ($crosstabs['options1'] as $ckey1 =>$crossVariabla) { $col_cnt++; + #ime variable - //$css_backX = 'rsdl_bck_variable'.($col_cnt & 1); - $css_backX = ' rsdl_bck_variable1'; - echo ''; } } $col_cnt++; - //$css_backX = 'rsdl_bck_variable'.($col_cnt & 1); - if ($addVerticalSpace == 1) { - echo ''; - } - $css_backX = ' rsdl_bck_variable1'; - - echo ''; + + echo ''; if ($this->fromBreak == true && $this->showAverage == true) { # če smo v break-u dodamo še povprečja - echo ''; + echo ''; } + echo ''; + $cntY = 0; if (count($crosstabs['options2']) > 0) { foreach ($crosstabs['options2'] as $ckey2 =>$crossVariabla2) { $cntY++; - echo ''; - - - //$css_backY = 'rsdl_bck_variable'.($cntY & 1); - $css_backY = ' rsdl_bck_variable1'; + + echo ''; - echo ''; foreach ($crosstabs['options1'] as $ckey1 => $crossVariabla1) { - echo ''; } - # če mamo checkboxe in sumo malo razmaknemo - if ($addVerticalSpace == 1) { - echo ''; - } // vedno rišemo zadnji stolpec. - echo '
    '; - #if ($cntY == 1) { - # ime variable - #echo ''; + echo '
    '; echo $sub_q2; - #echo ''; + + echo ''; echo $sub_q1; echo '   
    '; + echo ''; + echo $crossVariabla['naslov']; + # če ni tekstovni odgovor dodamo key if ($crossVariabla['type'] != 't' && $show_variables_values == true) { - if ($crossVariabla['vr_id'] == null ) { + if (!isset($crossVariabla['vr_id'])||$crossVariabla['vr_id'] == null ) { echo '
    ( '.$ckey1.' )'; - } else { + } + else { echo '
    ( '.$crossVariabla['vr_id'].' )'; } } + echo '
     ' . $lang['srv_analiza_crosstab_skupaj'] . '' . $lang['srv_analiza_crosstab_skupaj'] . '' . $lang['srv_analiza_crosstab_average'] . '' . $lang['srv_analiza_crosstab_average'] . '
    '; + echo ''; echo $crossVariabla2['naslov']; # če ni tekstovni odgovor dodamo key if ($crossVariabla2['type'] !== 't' && $show_variables_values == true ) { - if ($crossVariabla2['vr_id'] == null) { + if (!isset($crossVariabla2['vr_id']) || $crossVariabla2['vr_id'] == null) { echo '
    ( '.$ckey2.' )'; } else { echo '
    ( '.$crossVariabla2['vr_id'].' )'; @@ -963,150 +1016,147 @@ class SurveyCrosstabs { echo '
    '; - # celica z vebino - { - # prikazujemo eno ali več od: frekvenc, odstotkov, residualov - echo ''; - if ($this->crossChk0) { - # izpišemo frekvence crostabov - echo ''; - echo ''; - echo ''; - } - - if ($this->crossChk1 || $this->crossChk2 || $this->crossChk3) { - # sirina celice v % - if ( ($this->crossChk1 + $this->crossChk2 + $this->crossChk3) == 3 ) - $css_width = ' ctb_w33p'; - elseif (($this->crossChk1 + $this->crossChk2 + $this->crossChk3) == 2 ) - $css_width = ' ctb_w50p'; - else - $css_width = ''; - $css_bt = ( $this->crossChk0 ) ? 'anl_dash_bt' : ''; - # izpisemo procente - echo ''; - echo ''; - echo ''; - } - # izpisemo residuale - if ($this->crossChkEC || $this->crossChkRE || $this->crossChkSR || $this->crossChkAR) { - # sirina celice v % - if ( ($this->crossChkEC + $this->crossChkRE + $this->crossChkSR + $this->crossChkAR) == 4 ) - $css_width = ' ctb_w25p'; - elseif ( ($this->crossChkEC + $this->crossChkRE + $this->crossChkSR + $this->crossChkAR) == 3 ) - $css_width = ' ctb_w33p'; - elseif ( ($this->crossChkEC + $this->crossChkRE + $this->crossChkSR + $this->crossChkAR) == 2 ) - $css_width = ' ctb_w50p'; - else - $css_width = ''; - $css_bt = ( $this->crossChk0 || ($this->crossChk1 && $this->crossChk2 && $this->crossChk3)) ? 'anl_dash_bt' : ''; - echo ''; - - echo ''; - echo ''; - } - echo '
    '; - echo ((int)$crosstabs_value[$ckey1][$ckey2] > 0) ? $crosstabs_value[$ckey1][$ckey2] : 0; - # .$crossTab[$crossVariabla1[cell_id]][$ckey2] - # - - echo '
    '; - - echo ''; - echo ''; - $col=0; - - if ($this->crossChk1) { - #procent vrstica - $col++; - - $css_color = ($this->doColor == 'true') ? 'ctbChck_sp1' : 'ctbChck_sp0'; - $css_br = $numColumnPercent > $col ? ' anl_dash_br' : ''; - echo ''; - } - if ($this->crossChk2) { - #procent stolpec - $col++; - $css_br = $numColumnPercent > $col ? ' anl_dash_br' : ''; - $css_color = ($this->doColor == 'true') ? 'ctbChck_sp2' : 'ctbChck_sp0'; - echo ''; - } - if ($this->crossChk3) { - #procent skupni - $col++; - $css_br = $numColumnPercent > $col ? ' anl_dash_br' : ''; - $css_color = ($this->doColor == 'true') ? 'ctbChck_sp3' : 'ctbChck_sp0'; - echo ''; - - echo $this->formatNumber($this->getCrossTabPercentage($crosstabs['sumaSkupna'], $crosstabs_value[$ckey1][$ckey2]), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); - echo ''; - } - echo ''; - echo '
    '; - echo $this->formatNumber($this->getCrossTabPercentage($crosstabs['sumaVrstica'][$ckey2], $crosstabs_value[$ckey1][$ckey2]), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); - echo ''; - - echo $this->formatNumber($this->getCrossTabPercentage($crosstabs['sumaStolpec'][$ckey1], $crosstabs_value[$ckey1][$ckey2]), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); - echo '
    '; + + # celica z vebino + echo '
    '; + + # prikazujemo eno ali več od: frekvenc, odstotkov, residualov + echo ''; + + if ($this->crossChk0) { + # izpišemo frekvence crostabov + echo ''; + + echo ''; + + echo ''; + } + + if ($this->crossChk1 || $this->crossChk2 || $this->crossChk3) { + # sirina celice v % + if ( ($this->crossChk1 + $this->crossChk2 + $this->crossChk3) == 3 ) + $css_width = ' ctb_w33p'; + elseif (($this->crossChk1 + $this->crossChk2 + $this->crossChk3) == 2 ) + $css_width = ' ctb_w50p'; + else + $css_width = ''; + $css_bt = ( $this->crossChk0 ) ? 'anl_dash_bt' : ''; + # izpisemo procente + echo ''; + echo ''; + echo ''; + } + # izpisemo residuale + if ($this->crossChkEC || $this->crossChkRE || $this->crossChkSR || $this->crossChkAR) { + # sirina celice v % + if ( ($this->crossChkEC + $this->crossChkRE + $this->crossChkSR + $this->crossChkAR) == 4 ) + $css_width = ' ctb_w25p'; + elseif ( ($this->crossChkEC + $this->crossChkRE + $this->crossChkSR + $this->crossChkAR) == 3 ) + $css_width = ' ctb_w33p'; + elseif ( ($this->crossChkEC + $this->crossChkRE + $this->crossChkSR + $this->crossChkAR) == 2 ) + $css_width = ' ctb_w50p'; + else + $css_width = ''; + $css_bt = ( $this->crossChk0 || ($this->crossChk1 && $this->crossChk2 && $this->crossChk3)) ? 'anl_dash_bt' : ''; + echo ''; + + echo ''; + echo ''; + } + echo '
    '; + echo (isset($crosstabs_value[$ckey1][$ckey2])&&(int)$crosstabs_value[$ckey1][$ckey2] > 0) ? $crosstabs_value[$ckey1][$ckey2] : 0; + echo '
    '; + + echo ''; + echo ''; + $col=0; + + if ($this->crossChk1) { + #procent vrstica + $col++; + + $css_color = ($this->doColor == 'true') ? 'ctbChck_sp1' : 'ctbChck_sp0'; + $css_br = $numColumnPercent > $col ? ' anl_dash_br' : ''; + echo ''; + } + if ($this->crossChk2) { + #procent stolpec + $col++; + $css_br = $numColumnPercent > $col ? ' anl_dash_br' : ''; + $css_color = ($this->doColor == 'true') ? 'ctbChck_sp2' : 'ctbChck_sp0'; + echo ''; + } + if ($this->crossChk3) { + #procent skupni + $col++; + $css_br = $numColumnPercent > $col ? ' anl_dash_br' : ''; + $css_color = ($this->doColor == 'true') ? 'ctbChck_sp3' : 'ctbChck_sp0'; + echo ''; + + echo $this->formatNumber($this->getCrossTabPercentage((isset($crosstabs['sumaSkupna'])?$crosstabs['sumaSkupna']:0), (isset($crosstabs_value[$ckey1][$ckey2])?$crosstabs_value[$ckey1][$ckey2]:0)), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); + echo ''; + } + echo ''; + echo '
    '; + echo $this->formatNumber($this->getCrossTabPercentage((isset($crosstabs['sumaVrstica'][$ckey2])?$crosstabs['sumaVrstica'][$ckey2]:0), (isset($crosstabs_value[$ckey1][$ckey2])?$crosstabs_value[$ckey1][$ckey2]:0)), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); + echo ''; + + echo $this->formatNumber($this->getCrossTabPercentage((isset($crosstabs['sumaStolpec'][$ckey1])?$crosstabs['sumaStolpec'][$ckey1]:0), (isset($crosstabs_value[$ckey1][$ckey2])?$crosstabs_value[$ckey1][$ckey2]:0)), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); + echo '
    '; + + echo '
    '; + echo ''; + echo ''; + $col=0; + + if ($this->crossChkEC) { + $col++; + $css_br = $numColumnResidual > $col ? ' anl_dash_br' : ''; + $css_color = ($this->doColor == 'true') ? 'crossCheck_EC' : 'ctbChck_sp0'; + echo ''; + } + if ($this->crossChkRE) { + $col++; + $css_br = $numColumnResidual > $col ? ' anl_dash_br' : ''; + $css_color = ($this->doColor == 'true') ? 'crossCheck_RE' : 'ctbChck_sp0'; + echo ''; + } + if ($this->crossChkSR) { + $col++; + $css_br = $numColumnResidual > $col ? ' anl_dash_br' : ''; + $css_color = ($this->doColor == 'true') ? 'crossCheck_SR' : 'ctbChck_sp0'; + echo ''; + } + if ($this->crossChkAR) { + $col++; + $css_br = $numColumnResidual > $col ? ' anl_dash_br' : ''; + $css_color = ($this->doColor == 'true') ? 'crossCheck_AR' : 'ctbChck_sp0'; + echo ''; + } + echo ''; + echo '
    '; + echo $this->formatNumber((isset($crosstabs['exC'][$ckey1][$ckey2])?$crosstabs['exC'][$ckey1][$ckey2]:null), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL'), ''); + echo ''; + echo $this->formatNumber((isset($crosstabs['res'][$ckey1][$ckey2])?$crosstabs['res'][$ckey1][$ckey2]:null), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL'), ''); + echo ''; + echo $this->formatNumber((isset($crosstabs['stR'][$ckey1][$ckey2])?$crosstabs['stR'][$ckey1][$ckey2]:null), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL'), ''); + echo ''; + echo $this->formatNumber((isset($crosstabs['adR'][$ckey1][$ckey2])?$crosstabs['adR'][$ckey1][$ckey2]:null), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL'), ''); + echo '
    '; + echo '
    '; - echo '
    '; - echo ''; - echo ''; - $col=0; - - if ($this->crossChkEC) { - $col++; - $css_br = $numColumnResidual > $col ? ' anl_dash_br' : ''; - $css_color = ($this->doColor == 'true') ? 'crossCheck_EC' : 'ctbChck_sp0'; - echo ''; - } - if ($this->crossChkRE) { - $col++; - $css_br = $numColumnResidual > $col ? ' anl_dash_br' : ''; - $css_color = ($this->doColor == 'true') ? 'crossCheck_RE' : 'ctbChck_sp0'; - echo ''; - } - if ($this->crossChkSR) { - $col++; - $css_br = $numColumnResidual > $col ? ' anl_dash_br' : ''; - $css_color = ($this->doColor == 'true') ? 'crossCheck_SR' : 'ctbChck_sp0'; - echo ''; - } - if ($this->crossChkAR) { - $col++; - $css_br = $numColumnResidual > $col ? ' anl_dash_br' : ''; - $css_color = ($this->doColor == 'true') ? 'crossCheck_AR' : 'ctbChck_sp0'; - echo ''; - } - echo ''; - echo '
    '; - echo $this->formatNumber($crosstabs['exC'][$ckey1][$ckey2], SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL'), ''); - echo ''; - echo $this->formatNumber($crosstabs['res'][$ckey1][$ckey2], SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL'), ''); - echo ''; - echo $this->formatNumber($crosstabs['stR'][$ckey1][$ckey2], SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL'), ''); - echo ''; - echo $this->formatNumber($crosstabs['adR'][$ckey1][$ckey2], SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL'), ''); - echo '
    '; - echo '
    '; - } # konec celice z vsebino echo '
     '; - echo ''; + echo '
    '; + echo ''; if ($this->crossChk0) { echo ''; - echo ''; echo ''; } @@ -1123,21 +1173,21 @@ class SurveyCrosstabs { echo ''; if ($this->crossChk1) { $css_color = ($this->doColor == 'true') ? ' ctbChck_sp1' : 'ctbChck_sp0'; - echo ''; } if ($this->crossChk2) { $css_color = ($this->doColor == 'true') ? ' ctbChck_sp2' : 'ctbChck_sp0'; $css_border = ($this->crossChk1 ? ' anl_dash_bl ' : ''); - echo ''; } if ($this->crossChk3) { $css_color = ($this->doColor == 'true') ? ' ctbChck_sp3' : 'ctbChck_sp0'; $css_border = ($this->crossChk1 || $this->crossChk2 ? ' anl_dash_bl ' : ''); - echo ''; } @@ -1149,45 +1199,34 @@ class SurveyCrosstabs { echo ''; if ($this->fromBreak == true && $this->showAverage == true) { # če smo v break dodamo še povprečja - echo ''; } echo ''; } } - #Zadnja vrstica. Če imamo navpično checkboxe in gledamo enote, potem vrstico z summo malo razmaknemo - $cssBT = 'anl_bt'; - if ( $crosstabs['isCheckbox']['spr2'] == true && $this->crossNavVsEno == true) { - echo ''; - echo ''; - } - - echo ''; - $cssBT = ''; - } + $cntY++; + echo ''; + $css_backY = ' rsdl_bck_variable1'; echo ''; - // skupni sestevki po stolpcih + + // skupni sestevki po stolpcih if (count($crosstabs['options1']) > 0) foreach ($crosstabs['options1'] as $ckey1 => $crossVariabla1) { - echo '
    '; + echo ''; # suma po vrsticah - echo (int)$crosstabs['sumaVrstica'][$ckey2]; + echo (isset($crosstabs['sumaVrstica'][$ckey2])?(int)$crosstabs['sumaVrstica'][$ckey2]:0); echo '
    '; + echo ''; echo $this->formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; + echo ''; echo $this->formatNumber( ($crosstabs['sumaSkupna'] > 0 ? (100 * $crosstabs['sumaVrstica'][$ckey2] / $crosstabs['sumaSkupna']) : 0), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; + echo ''; echo $this->formatNumber( ($crosstabs['sumaSkupna'] > 0 ? (100 * $crosstabs['sumaVrstica'][$ckey2] / $crosstabs['sumaSkupna']) : 0), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; + echo ''; echo $this->formatNumber( $crosstabs['avgVrstica'][$ckey2], SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'), ''); echo '
     '; - echo ' '; - echo ' '; - if ($addVerticalSpace == 1) { - echo '  '; - echo '
    ' . $lang['srv_analiza_crosstab_skupaj'] . ''; + echo ''; { # prikazujemo eno od treh možnosti - echo ''; + echo '
    '; if ($this->crossChk0) { echo ''; - echo ''; echo ''; } @@ -1197,21 +1236,21 @@ class SurveyCrosstabs { echo ''; if ($this->crossChk1) { $css_color = ($this->doColor == 'true') ? ' ctbChck_sp1' : 'ctbChck_sp0'; - echo ''; } if ($this->crossChk2) { $css_color = ($this->doColor == 'true') ? ' ctbChck_sp2' : 'ctbChck_sp0'; - echo ''; } if ($this->crossChk3) { $css_color = ($this->doColor == 'true') ? ' ctbChck_sp3' : 'ctbChck_sp0'; - echo ''; } echo ''; @@ -1220,18 +1259,14 @@ class SurveyCrosstabs { } echo ''; } - # če mamo checkboxe in sumo malo razmaknemo - if ($addVerticalSpace == 1) { - echo ''; - } # zadnja celica z skupno sumo - echo ''; } @@ -1390,91 +1413,84 @@ class SurveyMultiCrosstabs { echo ''; - echo '
    '; - echo ''.$lang['srv_multicrosstabs_settings_val'].''; - + echo '

    '.$lang['srv_multicrosstabs_settings_val'].'

    '; + + echo '
    '; + // Prikaz numerusa - echo 'table_settings[$this->table_id]['numerus'] == 1 ? ' checked="checked"':'').' value="1" />'; - + echo '
    '; + echo 'table_settings[$this->table_id]['numerus'] == 1 ? ' checked="checked"':'').' value="1" />'; + echo '
    '; // Prikaz procentov - echo 'table_settings[$this->table_id]['percent'] == 1 ? ' checked="checked"':'').' value="1" />'; - + echo '
    '; + echo 'table_settings[$this->table_id]['percent'] == 1 ? ' checked="checked"':'').' value="1" />'; + echo '
    '; // Prikaz vsot - echo 'table_settings[$this->table_id]['sums'] == 1 ? ' checked="checked"':'').' value="1" />'; - - // Navedbe / enote - /*if($this->isCheckbox){ - echo ''; - echo ''; - echo ' '; - echo ''; - }*/ - - echo '
    '; - + echo '
    '; + echo 'table_settings[$this->table_id]['sums'] == 1 ? ' checked="checked"':'').' value="1" />'; + echo '
    '; + + echo ''; - echo '
    '; - echo ''.$lang['srv_multicrosstabs_settings_avg'].''; + echo '

    '.$lang['srv_multicrosstabs_settings_avg'].'

    '; // Variabla za racunanje povprecja - numeric in ordinal (radio, dropdown, mg) $checked = $this->table_settings[$this->table_id]['avgVar'] == '' ? false : true; - echo ''; - echo '
    '; + echo ''; + echo ''; + + echo ''; - echo '
    '; - echo ''.$lang['srv_multicrosstabs_settings_del'].''; + echo '

    '.$lang['srv_multicrosstabs_settings_del'].'

    '; // Variabla za racunanje deleza - ordinal in nominal (radio, dropdown, mg, po novem tudi checkbox, multicheckbox) $checked = $this->table_settings[$this->table_id]['delezVar'] == '' ? false : true; - echo ''; - - echo '
    '; - echo ''; - // Gumbi na dnu - echo '
    '; - - echo ''; - echo ''; - echo ''.$lang['srv_zapri'].''; - echo ''; - echo ''; - - echo ''; - echo ''; - echo ''.$lang['srv_potrdi'].''; - echo ''; - echo ''; - - echo '
    '; + echo '
    '; + echo ''; + echo ''; + echo '
    '; } // Prikazemo opcije variable (checkboxe) za delez @@ -1492,9 +1508,13 @@ class SurveyMultiCrosstabs { else $val = 0; - echo ''; + echo '
    '; + + echo '
    '; echo ''; - echo ''; + echo '
    '; + + echo '
    '; $cnt++; } @@ -1530,10 +1550,12 @@ class SurveyMultiCrosstabs { $href_xls = makeEncodedIzvozUrlString('izvoz.php?b=export&m=multicrosstabs_izpis_xls&anketa='.$this->ank_id); echo '
    '; + echo ''; # suma po stolpcih - echo (int)$crosstabs['sumaStolpec'][$ckey1]; + echo isset($crosstabs['sumaStolpec'][$ckey1])?(int)$crosstabs['sumaStolpec'][$ckey1]:0; echo '
    '; - echo $this->formatNumber( ($crosstabs['sumaSkupna'] > 0 ? (100 * $crosstabs['sumaStolpec'][$ckey1] / $crosstabs['sumaSkupna']) : 0), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); + echo ''; + echo $this->formatNumber( (isset($crosstabs['sumaStolpec'][$ckey1])&&$crosstabs['sumaSkupna'] > 0 ? (100 * $crosstabs['sumaStolpec'][$ckey1] / $crosstabs['sumaSkupna']) : 0), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; + echo ''; echo $this->formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; - echo $this->formatNumber( ($crosstabs['sumaSkupna'] > 0 ? (100 * $crosstabs['sumaStolpec'][$ckey1] / $crosstabs['sumaSkupna']) : 0), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); + echo ''; + echo $this->formatNumber( (isset($crosstabs['sumaStolpec'][$ckey1])&&$crosstabs['sumaSkupna'] > 0 ? (100 * $crosstabs['sumaStolpec'][$ckey1] / $crosstabs['sumaSkupna']) : 0), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo '
     '; + echo ''; { - echo ''; + echo '
    '; if ($this->crossChk0) { echo ''; - echo ''; @@ -1244,20 +1279,20 @@ class SurveyCrosstabs { if ($this->crossChk1) { $css_color = ($this->doColor == 'true') ? ' ctbChck_sp1' : 'ctbChck_sp0'; $css_border = ($this->crossChk2 || $this->crossChk3) ? ' anl_dash_br' : ''; - echo ''; } if ($this->crossChk2) { $css_color = ($this->doColor == 'true') ? ' ctbChck_sp2' : 'ctbChck_sp0'; $css_border = ($this->crossChk3) ? ' anl_dash_br' : ''; - echo ''; } if ($this->crossChk3) { $css_color = ($this->doColor == 'true') ? ' ctbChck_sp3' : 'ctbChck_sp0'; - echo ''; } @@ -1282,15 +1317,11 @@ class SurveyCrosstabs { // skupni sestevki po stolpcih if (count($crosstabs['options1']) > 0) { foreach ($crosstabs['options1'] as $ckey1 => $crossVariabla1) { - echo ''; } } - # če mamo checkboxe in sumo malo razmaknemo - if ($addVerticalSpace == 1) { - echo ''; - } # zadnja celica z skupno sumo echo ''; @@ -1298,37 +1329,43 @@ class SurveyCrosstabs { # če smo v break dodamo še povprečja echo ''; } + echo ''; } + echo '
    '; + echo ''; # skupna suma echo (int)$crosstabs['sumaSkupna']; echo ''; + echo ''; echo $this->formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; + echo ''; echo $this->formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; + echo ''; echo $this->formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'); echo ''; - echo $this->formatNumber( $crosstabs['avgStolpec'][$ckey1], SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'), ''); + echo ''; + echo $this->formatNumber( (isset($crosstabs['avgStolpec'][$ckey1])?$crosstabs['avgStolpec'][$ckey1]:null), SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'), ''); echo '   
    '; + echo ''; + + + $this->displayExport(); + + // Izrisemo legendo + $this->displayCrosstabCheckboxes(); + - // Zvezdica za vkljucitev v porocilo - $spr2 = $v_first['seq'].'-'.$v_first['spr'].'-'.$v_first['grd']; - $spr1 = $v_second['seq'].'-'.$v_second['spr'].'-'.$v_second['grd']; - - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=5, $sub_type=0, $spr1, $spr2); - #SurveyAnalysis::addCustomReportElement($type=5, $sub_type=0, $spr1, $spr2); - // Izrisemo graf za tabelo if($this->showChart && !$this->fromBreak){ $tableChart = new SurveyTableChart($this->sid, $this, 'crosstab', $counter); $tableChart->display(); } + + echo ''; $counter++; } } - } else { + } + else { # crostab variables not set echo $lang['srv_crosstab_note0']; - #print_r("Crosstab variables not set!"); } } - /** + /** * @desc prikaze izvoz za PDF/RTF */ function displayExport () { + # z javascriptom prikažemo ikonce za arhiviranje, emaijlanje arhivov, pdf, rtf, excel... if ($this->isSelectedBothVariables()) { $data1 = ''; @@ -1348,18 +1385,20 @@ class SurveyCrosstabs { $href_pdf = makeEncodedIzvozUrlString('izvoz.php?b=export&m=crosstabs_izpis&anketa=' . $this->sid . '&data1='.$data1.'&data2='.$data2); $href_rtf = makeEncodedIzvozUrlString('izvoz.php?b=export&m=crosstabs_izpis_rtf&anketa=' . $this->sid . '&data1='.$data1.'&data2='.$data2); $href_xls = makeEncodedIzvozUrlString('izvoz.php?b=export&m=crosstabs_izpis_xls&anketa=' . $this->sid . '&data1='.$data1.'&data2='.$data2); - echo ''; - - } - + + echo ''; + } } /** kadar kličemo iz Break, ali pri radio grupi dodamo še povprečje po stolpcih @@ -1393,8 +1432,8 @@ class SurveyCrosstabs { $spr1 = $this->_HEADERS[$v_first['spr']]; $spr2 = $this->_HEADERS[$v_second['spr']]; - $grid1 = $spr1['grids'][$v_first['grd']]; - $grid2 = $spr2['grids'][$v_second['grd']]; + $grid1 = isset($spr1['grids'][$v_first['grd']]) ? $spr1['grids'][$v_first['grd']] : array(); + $grid2 = isset($spr2['grids'][$v_second['grd']]) ? $spr2['grids'][$v_second['grd']] : array(); $sequence1 = $v_first['seq']; $sequence2 = $v_second['seq']; @@ -1463,9 +1502,9 @@ class SurveyCrosstabs { # dodamo status filter za vse sekvence checkbox-a da so == 1 - if ($additional_status_filter != null) { + /* if ($additional_status_filter != null) { $status_filter .= $additional_status_filter; - } + } */ # odstranimo vse zapise, kjer katerakoli od variabel vsebuje missing $_allMissing_answers = SurveyMissingValues::GetMissingValuesForSurvey(array(1,2,3)); @@ -1474,7 +1513,7 @@ class SurveyCrosstabs { # polovimo obe sequenci $tmp_file = $folder . 'tmp_crosstab_'.$this->sid.'.TMP'; $file_handler = fopen($tmp_file,"w"); - fwrite($file_handler,"0) foreach ($sekvences1 AS $sequence1) { @@ -1512,11 +1551,14 @@ class SurveyCrosstabs { } if (IS_WINDOWS) { - #$command = 'awk -F"|" "BEGIN {{OFS=\"\"} {ORS=\"\n\"}} '.$_status_filter.' { print \"$crosstab[\x27\",$'.$sequence1.',\"\x27][\x27\",$'.$sequence2.',\"\x27]++; $options1[\x27\",$'.$sequence1.',\"\x27]++; $options2[\x27\",$'.$sequence2.',\"\x27]++;\"}" '.$this->dataFileName.' >> '.$tmp_file; $command = 'awk -F"|" "BEGIN {{OFS=\"\"} {ORS=\"\n\"}} '.$status_filter.$additional_filter.' { print \"$crosstab[\x27\",'.$_seq_1_text.',\"\x27][\x27\",'.$_seq_2_text.',\"\x27]++;\"}" '.$this->dataFileName.' >> '.$tmp_file; } else { - #$command = 'awk -F"|" \'BEGIN {{OFS=""} {ORS="\n"}} '.$_status_filter.' { print "$crosstab[\x27",$'.$sequence1.',"\x27][\x27",$'.$sequence2.',"\x27]++; $options1[\x27",$'.$sequence1.',"\x27]++; $options2[\x27",$'.$sequence2.',"\x27]++;"}\' '.$this->dataFileName.' >> '.$tmp_file; $command = 'awk -F"|" \'BEGIN {{OFS=""} {ORS="\n"}} '.$status_filter.$additional_filter.' { print "$crosstab[\x27",'.$_seq_1_text.',"\x27][\x27",'.$_seq_2_text.',"\x27]++;"}\' '.$this->dataFileName.' >> '.$tmp_file; + + //$command = 'awk -F"|" \'BEGIN {{OFS=""} {ORS="\n"}} '.$status_filter.$additional_filter.' { print "if( array_key_exists('.$_seq_1_text.', $crosstab) ){ $crosstab[\x27",'.$_seq_1_text.',"\x27][\x27",'.$_seq_2_text.',"\x27]++;"}}\' '.$this->dataFileName.' >> '.$tmp_file; + //$command = 'awk -F"|" \'BEGIN {OFS=""; ORS="\n"} ' . $status_filter . $additional_filter . ' { print "if( !isset(crosstab) ){ $crosstab[\x27",' . $_seq_1_text . ',"\x27][\x27",' . $_seq_2_text . ',"\x27]++;"} }\' ' . $this->dataFileName . ' >> ' . $tmp_file; + //echo $command; + } $out = shell_exec($command); @@ -1532,23 +1574,25 @@ class SurveyCrosstabs { unlink($tmp_file); } + //print_r($crosstab); + #ker z awk ne gre nardit tolower zaradi šumnikov, nardimo ročno v loopu $caseInsensitiveCrosstab = array(); - if (count($crosstab) > 0) { + if (is_countable($crosstab) && count($crosstab) > 0) { foreach ($crosstab as $fkey => $fvalue) { $fkey = mb_strtolower($fkey,'UTF-8'); if (count($fvalue) > 0) { foreach ($fvalue as $skey => $svalue) { $skey = mb_strtolower($skey,'UTF-8'); - $caseInsensitiveCrosstab[$fkey][$skey] += $svalue; + $caseInsensitiveCrosstab[$fkey][$skey] = (isset($caseInsensitiveCrosstab[$fkey][$skey])? $caseInsensitiveCrosstab[$fkey][$skey] += $svalue : $svalue); } } } } $crosstab = $caseInsensitiveCrosstab; # poiščemo pripadajočo spremenljivko - $var_options1 = $this->_HEADERS[$v_first['spr']]['options']; - $var_options2 = $this->_HEADERS[$v_second['spr']]['options']; + $var_options1 = isset($this->_HEADERS[$v_first['spr']]['options'])?$this->_HEADERS[$v_first['spr']]['options']:array(); + $var_options2 = isset($this->_HEADERS[$v_second['spr']]['options'])?$this->_HEADERS[$v_second['spr']]['options']:array(); # inicializacija $_all_options1 = array(); @@ -1560,12 +1604,12 @@ class SurveyCrosstabs { # najprej poiščemo (združimo) vse opcije ki so definirane kot opcije spremenljivke in vse ki so v crosstabih if (count($var_options1) > 0 && $spr_1_checkbox !== true ) { foreach ($var_options1 as $okey => $opt) { - $_all_options1[$okey] = array('naslov'=>$opt, 'cnt'=>$options1[$okey], 'type'=>'o'); + $_all_options1[$okey] = array('naslov'=>$opt, 'cnt'=>/* $options1[$okey] */0, 'type'=>'o'); } } if (count($var_options2) > 0 && $spr_2_checkbox !== true) { foreach ($var_options2 as $okey => $opt) { - $_all_options2[$okey] = array('naslov'=>$opt, 'cnt'=>$options2[$okey], 'type'=>'o'); + $_all_options2[$okey] = array('naslov'=>$opt, 'cnt'=>/* $options2[$okey] */0, 'type'=>'o'); } } # za checkboxe dodamo posebej vse opcije @@ -1598,18 +1642,19 @@ class SurveyCrosstabs { foreach ($crosstab AS $_kvar1=>$_var1) { # missingov ne dodajamo še zdaj, da ohranimo pravilen vrstni red if (!isset($_allMissing_answers[$_kvar1]) && !isset($_all_options1[$_kvar1])) { - $_all_options1[$_kvar1] = array('naslov'=>$_kvar1, 'cnt'=>($_all_options1[$_kvar1]['cnt']+1), 'type'=>'t'); + $_all_options1[$_kvar1] = array('naslov'=>$_kvar1, 'cnt'=>(isset($_all_options1[$_kvar1]['cnt'])?$_all_options1[$_kvar1]['cnt']+1:1), 'type'=>'t'); } foreach ($_var1 AS $_kvar2=>$_var2) { if (!isset($_allMissing_answers[$_kvar1]) || (isset($_allMissing_answers[$_kvar1]) && isset($_pageMissing_answers[$_kvar1]))) { - $sumaStolpec[$_kvar1] += $_var2; + $sumaStolpec[$_kvar1] = (isset($sumaStolpec[$_kvar1]) ? $sumaStolpec[$_kvar1] += $_var2 : $_var2); } if (!isset($_allMissing_answers[$_kvar2]) || (isset($_allMissing_answers[$_kvar2]) && isset($_pageMissing_answers[$_kvar2]))) { - $sumaVrstica[$_kvar2] += $_var2; + $sumaVrstica[$_kvar2] = (isset($sumaVrstica[$_kvar2]) ? $sumaVrstica[$_kvar2] += $_var2 : $_var2); } # missingov ne dodajamo še zdaj, da ohranimo pravilen vrstni red - if (!isset($_allMissing_answers[$_kvar2]) && !isset($_all_options2[$_kvar2])) { + //if (!isset($_allMissing_answers[$_kvar2]) && !isset($_all_options2[$_kvar2])) { + if (array_key_exists($_kvar2, $_allMissing_answers) && array_key_exists($_kvar2, $_all_options2)) { $_all_options2[$_kvar2] = array('naslov'=>$_kvar2, 'cnt'=>($_all_options1[$_kvar2]['cnt']+1), 'type'=>'t'); } @@ -1633,10 +1678,10 @@ class SurveyCrosstabs { foreach ($_allMissing_answers AS $miskey => $_missing) { if (!isset($_pageMissing_answers[$miskey])) { if ( $spr_1_checkbox !== true) { - $_all_options1[$miskey] = array('naslov'=>$_missing, 'cnt'=>(int)$options1[$miskey], 'type'=>'m'); + $_all_options1[$miskey] = array('naslov'=>$_missing, 'cnt'=>/* (int)$options1[$miskey] */null, 'type'=>'m'); } if ( $spr_2_checkbox !== true ) { - $_all_options2[$miskey] = array('naslov'=>$_missing, 'cnt'=>(int)$options2[$miskey], 'type'=>'m'); + $_all_options2[$miskey] = array('naslov'=>$_missing, 'cnt'=>/* (int)$options2[$miskey] */null, 'type'=>'m'); } } } @@ -1784,22 +1829,24 @@ class SurveyCrosstabs { # gremo skozi vsako celico if ($cnt1 > 0 && $cnt2) { foreach ($_all_options1 as $ckey1 => $crossVariabla1) { - if($sumaStolpec[$ckey1]!=null) { + if(isset($sumaStolpec[$ckey1])&&$sumaStolpec[$ckey1]!=null) { foreach ($_all_options2 as $ckey2 => $crossVariabla2) { - if($sumaVrstica[$ckey2]!=null) { + if(isset($sumaVrstica[$ckey2]) && $sumaVrstica[$ckey2]!=null) { # skupna suma $_w = $sumaSkupna; #frekvenca celice - $_fij = $crosstab[$ckey1][$ckey2]; + $_fij = isset($crosstab[$ckey1][$ckey2]) ? $crosstab[$ckey1][$ckey2] : 0; #suma vrstice $_ri = $sumaVrstica[$ckey2]; #suma stolpca $_cj = $sumaStolpec[$ckey1]; # povprečje vrstice + if(!isset($sum_avgi[$ckey2])) $sum_avgi[$ckey2] = 0; $sum_avgi[$ckey2] += ((int)$_ri != 0) ? ((int)$_fij * (int)$ckey1 / (int)$_ri) : 0; # povprečje stolpcev + if(!isset($sum_avgj[$ckey1])) $sum_avgj[$ckey1] = 0; $sum_avgj[$ckey1] += ((int)$_cj != 0) ? ((int)$_fij * (int)$ckey2 / (int)$_cj) : 0; # exC - expected count (pricakovana vrednost @@ -1850,8 +1897,8 @@ class SurveyCrosstabs { if ($cnt1 > 0 && $cnt2) foreach ($_all_options1 as $ckey1 => $crossVariabla1) { foreach ($_all_options2 as $ckey2 => $crossVariabla2) { - $fr = (float)$crosstab[$ckey1][$ckey2]; - $exp = (float)$exC[$ckey1][$ckey2]; + $fr = isset($crosstab[$ckey1][$ckey2])?(float)$crosstab[$ckey1][$ckey2]:0; + $exp = isset($exC[$ckey1][$ckey2])?(float)$exC[$ckey1][$ckey2]:0; if ($exp != 0) { $hi2 += pow(($fr - $exp),2) / $exp; } @@ -1883,7 +1930,6 @@ class SurveyCrosstabs { } - /** Sestavi array nepravilnih odgovorov * */ @@ -2105,7 +2151,7 @@ class SurveyCrosstabs { } # če smo radio enableInspect - if ($sdsp['enableInspect'] == '1' || (isset($_SESSION['enableInspect']) && $_SESSION['enableInspect'] == true)) { + if (isset($sdsp['enableInspect']) && $sdsp['enableInspect'] == '1' || (isset($_SESSION['enableInspect']) && $_SESSION['enableInspect'] == true)) { $this->enableInspect = true; } else { # če ne preberemo iz profila @@ -2561,8 +2607,10 @@ class SurveyCrosstabs { $this->displaySessionInspectCheckbox(); } + function displaySessionInspectCheckbox() { global $lang; + echo 'enableInspect == true ? ' checked="checekd"' : '').' onClick="changeSessionInspect();">'.$lang['srv_inspect_setting']; echo Help :: display('srv_crosstab_inspect'); } @@ -2571,10 +2619,15 @@ class SurveyCrosstabs { function displayLinePercent() { global $lang; - echo 'crossChk1 == true ? ' checked="checked" ' : '') . ' autocomplete="off"/>'; - echo ''; - echo 'doColor == true ? ' checked="checked" ' : '') . ' autocomplete="off"/>'; - echo ''; + echo '
    '; + echo ' crossChk1 == true ? ' checked="checked" ' : '') . ' autocomplete="off"/>'; + echo ' '; + echo '
    '; + + echo '
    '; + echo ' doColor == true ? ' checked="checked" ' : '') . ' autocomplete="off"/>'; + echo ' '; + echo '
    '; } function displayResidual(){ @@ -2582,15 +2635,19 @@ class SurveyCrosstabs { $selected = ($this->crossChkEC + $this->crossChkRE + $this->crossChkSR + $this->crossChkAR == 4) ? true : false; - echo ''; - echo ''; + echo '
    '; + echo ' '; + echo ' '; + echo '
    '; } function displayShowChart() { global $lang; - echo 'showChart == true ? ' checked="checked" ' : '') . ' />'; - echo ''; + echo '
    '; + echo ' showChart == true ? ' checked="checked" ' : '') . ' />'; + echo ' '; + echo '
    '; } function presetVariables() { diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyEditsAnalysis.php b/admin/survey/classes/surveyAnalysis/class.SurveyEditsAnalysis.php index b1b7b5f..b7f4bf9 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyEditsAnalysis.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyEditsAnalysis.php @@ -15,20 +15,20 @@ class SurveyEditsAnalysis{ function __construct($anketa){ - if ((int)$anketa > 0){ - $this->anketa = $anketa; + if ((int)$anketa > 0){ - # polovimo vrsto tabel (aktivne / neaktivne) - SurveyInfo :: getInstance()->SurveyInit($this->anketa); - if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) { - $this->db_table = '_active'; - } - } - else { - echo 'Invalid Survey ID!'; - exit(); - } + $this->anketa = $anketa; + + # polovimo vrsto tabel (aktivne / neaktivne) + SurveyInfo :: getInstance()->SurveyInit($this->anketa); + $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); + } + else { + + echo 'Invalid Survey ID!'; + exit(); + } } diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyMeans.php b/admin/survey/classes/surveyAnalysis/class.SurveyMeans.php index f2155cf..9e3230d 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyMeans.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyMeans.php @@ -8,7 +8,7 @@ * */ -define("EXPORT_FOLDER", "admin/survey/SurveyData"); +if(!defined("EXPORT_FOLDER"))define("EXPORT_FOLDER", "admin/survey/SurveyData"); class SurveyMeans{ @@ -32,19 +32,29 @@ class SurveyMeans{ public $doValues = true; # checkbox Prikaži vrednosti - private $sessionData; # podatki ki so bili prej v sessionu - za nastavitve, ki se prenasajo v izvoze... + private $sessionData = null; # podatki ki so bili prej v sessionu - za nastavitve, ki se prenasajo v izvoze... + protected $crossNavVsEno = null; + + protected $currentMissingProfile = null; + + protected $setUpJSAnaliza = null; public function __construct($sid) { + global $global_user_id; + if ((int)$sid > 0) { $this->sid = $sid; # polovimo vrsto tabel (aktivne / neaktivne) SurveyInfo :: getInstance()->SurveyInit($this->sid); - if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) { - $this->db_table = '_active'; - } + $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); + // Pri glasovanju tega ne pustimo + if(SurveyInfo::getInstance()->getSurveyColumn("survey_type") == 0){ + die(); + } + # Inicializiramo in polovimo nastavitve missing profila SurveyStatusProfiles::Init($this->sid); SurveyUserSetting::getInstance()->Init($this->sid, $global_user_id); @@ -169,6 +179,7 @@ class SurveyMeans{ # izrišemo desne linke do posameznih nastavitev + $SSH = new SurveyStaticHtml($this->sid); $SSH -> displayAnalizaRightOptions(M_ANALYSIS_MEANS); } @@ -234,38 +245,36 @@ class SurveyMeans{ function displayDropdowns() { global $lang; + $variables1 = $this->getVariableList(1); $variables2 = $this->getVariableList(2); - echo '
    '; - if ((int)$this->variabla1['0']['seq'] > 0) { - echo ' '; - } - echo $lang['srv_means_label1']; - echo '
    '; + + echo '
    '; + + echo ''.$lang['srv_means_label1'].''; + # iz header datoteke preberemo spremenljivke #js: $("#means_variable_1, #means_variable_2").live('click', function() {}) if (count($this->variabla1) > 0) { - $br=null; - if ((int)$this->variabla1['0']['seq'] > 0) { - echo ''; - } - + + echo '
    '; + foreach($this->variabla1 AS $_key => $variabla1) { - echo $_br; - echo ''; - echo ''; # ce prva variabla ni izbrana, dodamo tekst za izbiro prve variable if ( $variabla1['seq'] == null || $variabla1['seq'] == 0 ) { echo ''; } foreach ($variables1 as $variable) { - echo ''; @@ -273,38 +282,39 @@ class SurveyMeans{ } echo ''; + if (count($this->variabla1) > 1) { - echo ''; - } else { - #echo ' '; - } + echo ''; + } + + echo '
    '; + } - $_br = '
     '; - echo ''; + echo '
    '; + + // Gumb za dodajanje spremenljivke + if ((int)$this->variabla1['0']['seq'] > 0) { + echo '
    '; - echo '
    '; - if ((int)$this->variabla1['0']['seq'] > 0) { - echo ' '; - } - echo $lang['srv_means_label2']; - echo '
    '; - + + echo '
    '; + + echo ''.$lang['srv_means_label2'].''; # za vsako novo spremenljivko 2 nardimo svoj select if (count($this->variabla2) > 0) { - if ((int)$this->variabla1['0']['seq'] > 0) { - echo ''; - } - + + echo '
    '; + foreach($this->variabla2 AS $_key => $variabla2) { - echo $_br; - echo ''; - echo 'variabla1['0']['seq'] > 0 ? '' : ' disabled="disabled" ') .'>'; @@ -319,39 +329,55 @@ class SurveyMeans{ } foreach ($variables2 as $variable) { - echo ''; } echo ''; + if (count($this->variabla2) > 1) { echo ''; - } else { - echo ' '; - } + } + + echo '
    '; + } + + echo '
    '; - $_br = '
     '; - echo ''; + // Gumb za dodajanje spremenljivke + if ((int)$this->variabla1['0']['seq'] > 0) { + echo ''; } } echo '
    '; - echo ''; - if (count($this->variabla2) > 1) { - echo ''; - - echo '
    sessionData['means']['meansSeperateTables']!=true?'':' class="displayNone"').'>'; - } - echo '
    '; - echo '
    '; + + echo '
    '; - echo '
    '; + echo ''.$lang['settings'].':'; + + if (count($this->variabla2) > 1) { + + echo '
    '; + echo ' sessionData['means']['meansSeperateTables']==true?' checked="checked"':'' ).'>'; + echo '
    '; + + echo '
    '; + echo ' sessionData['means']['meansSeperateTables']!=true?'':' class="displayNone"').'>sessionData['means']['meansJoinPercentage']==true?' checked="checked"':'' ).'>'; + echo '
    '; + } + + echo '
    '; + echo ' sessionData['mean_charts']['showChart'])&&$this->sessionData['mean_charts']['showChart']==true)?' checked="checked"':'' ).'>'; + echo '
    '; + echo '
    '; + // Ikone za izvoz (so tukaj da se refreshajo ob ajax klicu) $this->displayExport(); } @@ -360,7 +386,6 @@ class SurveyMeans{ global $lang; global $admin_type; - $br=''; $means = array(); # če ne uporabljamo privzetega časovnega profila izpišemo opozorilo @@ -370,12 +395,13 @@ class SurveyMeans{ SurveyConditionProfiles:: getConditionString(); # če imamo filter spremenljivk ga izpišemo - SurveyVariablesProfiles:: getProfileString($doNewLine , true); + SurveyVariablesProfiles:: getProfileString(); # če imamo rekodiranje $SR = new SurveyRecoding($this->sid); $SR -> getProfileString(); + if ($this->getSelectedVariables(1) !== null && $this->getSelectedVariables(2) !== null) { $variables1 = $this->getSelectedVariables(2); $variables2 = $this->getSelectedVariables(1); @@ -383,7 +409,7 @@ class SurveyMeans{ $c2=0; # odvisno ok checkboxa prikazujemo druge variable v isti tabeli ali v svoji - if ($this->sessionData['means']['meansSeperateTables'] == true ) { + if (isset($this->sessionData['means']['meansSeperateTables'])&&$this->sessionData['means']['meansSeperateTables'] == true ) { #prikazujemo ločeno if (is_array($variables2) && count($variables2) > 0) { foreach ($variables2 AS $v_second) { @@ -420,21 +446,25 @@ class SurveyMeans{ if (is_array($means) && count($means) > 0) { $counter=0; foreach ($means AS $mean_sub_grup) { - echo($br); - $this->displayMeansTable($mean_sub_grup); - $br='
    '; - // Zvezdica za vkljucitev v porocilo + echo '
    '; + + // Zvezdica za vkljucitev v porocilo $spr2 = $mean_sub_grup[0]['v1']['seq'].'-'.$mean_sub_grup[0]['v1']['spr'].'-'.$mean_sub_grup[0]['v1']['grd']; $spr1 = $mean_sub_grup[0]['v2']['seq'].'-'.$mean_sub_grup[0]['v2']['spr'].'-'.$mean_sub_grup[0]['v2']['grd']; SurveyAnalysis::Init($this->sid); SurveyAnalysis::addCustomReportElement($type=6, $sub_type=0, $spr1, $spr2); - + + // Izris tabele + $this->displayMeansTable($mean_sub_grup); + // Izrisemo graf za tabelo - zaenkrat samo admin - if($this->sessionData['mean_charts']['showChart'] && $_GET['m'] != 'analysis_creport'){ - $tableChart = new SurveyTableChart($this->sid, $this, 'mean', $counter); + if(isset($this->sessionData['mean_charts']['showChart']) && $this->sessionData['mean_charts']['showChart'] && (!isset($_GET['m'])||$_GET['m'] != 'analysis_creport')){ + $tableChart = new SurveyTableChart($this->sid, $this, 'mean', $counter); $tableChart->display(); } + + echo '
    '; $counter++; } @@ -469,14 +499,19 @@ class SurveyMeans{ $href_pdf = makeEncodedIzvozUrlString('izvoz.php?b=export&m=mean_izpis&anketa=' . $this->sid); $href_rtf = makeEncodedIzvozUrlString('izvoz.php?b=export&m=mean_izpis_rtf&anketa=' . $this->sid); $href_xls = makeEncodedIzvozUrlString('izvoz.php?b=export&m=mean_izpis_xls&anketa=' . $this->sid); - echo ''; } } @@ -563,14 +598,14 @@ class SurveyMeans{ $this->variablesList = array(); # zloopamo skozi header in dodamo variable (potrebujemo posamezne sekvence) foreach ($this->_HEADERS AS $skey => $spremenljivka) { - if ((int)$spremenljivka['hide_system'] == 1 && in_array($spremenljivka['variable'],array('email','ime','priimek','telefon','naziv','drugo'))) { + if (isset($spremenljivka['hide_system'])&&(int)$spremenljivka['hide_system'] == 1 && in_array($spremenljivka['variable'],array('email','ime','priimek','telefon','naziv','drugo'))) { continue; } - $tip = $spremenljivka['tip']; + $tip = isset($spremenljivka['tip'])?$spremenljivka['tip']:null; - $skala = (int)$spremenljivka['skala']; + $skala = isset($spremenljivka['skala'])?(int)$spremenljivka['skala']:0; # pri drugi, analizirani variabli morajo biti numerične ali ordinalne, v ostalem pa nič) # skala - 0 Ordinalna # skala - 1 Nominalna @@ -669,7 +704,7 @@ class SurveyMeans{ # imamo multicheckbox foreach($spremenljivka['grids'] AS $gid => $grid) { $sub = 0; - if ($grid['variable'] != '') { + if (isset($grid['variable'])&&$grid['variable'] != '') { $sub++; $this->variablesList[$dropdown][] = array( 'tip'=>$tip, @@ -685,7 +720,7 @@ class SurveyMeans{ # imamo več gridov - tabele foreach($spremenljivka['grids'] AS $gid => $grid) { $sub = 0; - if ($grid['variable'] != '') { + if (isset($grid['variable'])&&$grid['variable'] != '') { $sub++; $this->variablesList[$dropdown][] = array( 'tip'=>$tip, @@ -770,11 +805,11 @@ class SurveyMeans{ if ($this->dataFileName != '' && file_exists($this->dataFileName)) { - $spr1 = $this->_HEADERS[$v_first['spr']]; - $spr2 = $this->_HEADERS[$v_second['spr']]; + $spr1 = isset($this->_HEADERS[$v_first['spr']])?$this->_HEADERS[$v_first['spr']]:null; + $spr2 = isset($this->_HEADERS[$v_second['spr']])?$this->_HEADERS[$v_second['spr']]:null; - $grid1 = $spr1['grids'][$v_first['grd']]; - $grid2 = $spr2['grids'][$v_second['grd']]; + $grid1 = isset($spr1['grids'][$v_first['grd']])?$spr1['grids'][$v_first['grd']]:array(); + $grid2 = isset($spr2['grids'][$v_second['grd']])?$spr2['grids'][$v_second['grd']]:array(); $sequence1 = $v_first['seq']; $sequence2 = $v_second['seq']; @@ -785,7 +820,7 @@ class SurveyMeans{ $spr_1_checkbox = false; $spr_2_checkbox = false; - if ($spr1['tip'] == 2 || $spr1['tip'] == 16) { + if (isset($spr1['tip']) && ($spr1['tip'] == 2 || $spr1['tip'] == 16)) { $spr_1_checkbox = true; if ($spr1['tip'] == 2) { $sekvences1 = explode('_',$spr1['sequences']); @@ -800,10 +835,10 @@ class SurveyMeans{ $sekvences1[] = $sequence1; } - if ($spr2['tip'] == 2 || $spr2['tip'] == 16) { + if (isset($spr1['tip']) && ($spr2['tip'] == 2 || $spr2['tip'] == 16)) { $spr_2_checkbox = true; if ($spr2['tip'] == 2 ) { - $sekvences2 = explode('_',$this->_HEADERS[$v_second['spr']]['sequences']); + if(isset($this->_HEADERS[$v_second['spr']]['sequences'])) $sekvences2 = explode('_',$this->_HEADERS[$v_second['spr']]['sequences']); } if ($spr2['tip'] == 16) { foreach ($grid2['variables'] AS $_variables) { @@ -817,17 +852,17 @@ class SurveyMeans{ # pogoji so že dodani v _CURRENT_STATUS_FILTER # dodamo filter za loop-e - if (isset($this->_CURRENT_LOOP['filter']) && $this->_CURRENT_LOOP['filter'] != '') { + /* if (isset($this->_CURRENT_LOOP['filter']) && $this->_CURRENT_LOOP['filter'] != '') { $status_filter = $this->_CURRENT_STATUS_FILTER.' && '.$this->_CURRENT_LOOP['filter']; - } else { + } else { */ $status_filter = $this->_CURRENT_STATUS_FILTER; - } + //} # dodamo status filter za vse sekvence checkbox-a da so == 1 - if ($additional_status_filter != null) { + /* if ($additional_status_filter != null) { $status_filter .= $additional_status_filter; - } + }*/ # odstranimo vse zapise, kjer katerakoli od variabel vsebuje missing $_allMissing_answers = SurveyMissingValues::GetMissingValuesForSurvey(array(1,2,3)); @@ -836,7 +871,7 @@ class SurveyMeans{ $tmp_file = $folder.'tmp_means_'.$this->sid.'.tmp'; $file_handler = fopen($tmp_file,"w"); - fwrite($file_handler,"0) foreach ($sekvences1 AS $sequence1) { @@ -917,6 +952,7 @@ class SurveyMeans{ } } } + # inicializacija $_all_options = array(); $sumaVrstica = array(); @@ -924,7 +960,7 @@ class SurveyMeans{ $sumaMeans = 0; # poiščemo pripadajočo spremenljivko - $var_options = $this->_HEADERS[$v_second['spr']]['options']; + $var_options = isset($this->_HEADERS[$v_second['spr']]['options'])?$this->_HEADERS[$v_second['spr']]['options']:array(); # najprej poiščemo (združimo) vse opcije ki so definirane kot opcije spremenljivke in vse ki so v meansih @@ -953,7 +989,7 @@ class SurveyMeans{ # missingov ne dodajamo še zdaj, da ohranimo pravilen vrstni red foreach ($_var1 AS $_kvar2=>$_var2) { if (!isset($_allMissing_answers[$_kvar1]) || (isset($_allMissing_answers[$_kvar1]) && isset($_pageMissing_answers[$_kvar1]))) { - $sumaVrstica[$_kvar1] += $_var2; + $sumaVrstica[$_kvar1] = isset($sumaVrstica[$_kvar1])?$sumaVrstica[$_kvar1] += $_var2 : $_var2; } } # missingov ne dodajamo še zdaj, da ohranimo pravilen vrstni red @@ -1042,7 +1078,6 @@ class SurveyMeans{ } } - $meansArr['v1'] = $v_first; # prva variabla $meansArr['v2'] = $v_second; # druga variabla @@ -1066,75 +1101,72 @@ class SurveyMeans{ # ali prikazujemo vrednosti variable pri spremenljivkah $show_variables_values = $this->doValues; - $showSingleUnits = $this->sessionData['means']['meansJoinPercentage']==true && $this->sessionData['means']['meansSeperateTables'] == false; + $showSingleUnits = isset($this->sessionData['means']['meansJoinPercentage'])&&$this->sessionData['means']['meansJoinPercentage']==true && $this->sessionData['means']['meansSeperateTables'] == false; + # izrišemo tabelo - echo ''; - echo ''; - echo ''; - echo ''; - for ($i = 0; $i < $cols; $i++) { - echo ''; - if ($showSingleUnits == false) { - echo ''; - } - } - if ($showSingleUnits == true) { - echo ''; - } - echo ''; + echo '
    '; + + + echo ''; - echo ''; - #echo ''; # ime variable # teksti labele: $label2 = $this->getSpremenljivkaTitle($_means[0]['v2']); if ($showSingleUnits == false) { $span = ' colspan="2"'; } - echo ''; for ($i = 0; $i < $cols; $i++) { - echo ''; } if ($showSingleUnits == true) { - echo ''; + echo ''; } echo ''; - echo ''; + + + echo ''; for ($i = 0; $i < $cols; $i++) { + #Povprečje - echo ''; + #enote if ($showSingleUnits == false) { - echo ''; + echo ''; } } + if ($showSingleUnits == true) { - echo ''; + echo ''; } echo ''; + if (count($_means[0]['options']) > 0) { - + $max_units=0; foreach ($_means[0]['options'] as $ckey2 =>$crossVariabla2) { $units_per_row = 0; + echo ''; - echo ''; + # celice z vsebino for ($i = 0; $i < $cols; $i++) { - echo ''; + if ($showSingleUnits == false) { - echo ''; - } else { - $units_per_row = max($units_per_row,(int)$_means[$i]['sumaVrstica'][$ckey2]); + } + else { + $units_per_row = max($units_per_row,(isset($_means[$i]['sumaVrstica'][$ckey2])?(int)$_means[$i]['sumaVrstica'][$ckey2]:0)); } } + if ($showSingleUnits == true) { - echo ''; } + echo ''; + $max_units += $units_per_row; } } + + echo ''; - echo ''; + + echo ''; + for ($i = 0; $i < $cols; $i++) { - echo ''; + if ($showSingleUnits == false) { - echo ''; } } + if ($showSingleUnits == true) { - echo ''; + echo ''; } echo ''; + echo '
    xx '; + echo ''; echo $label2; echo ''; + echo ''; $label1 = $this->getSpremenljivkaTitle($_means[$i]['v1']); echo $label1; echo '  
    '; + echo ''; echo $lang['srv_means_label']; echo ''.$lang['srv_means_label4'].''.$lang['srv_means_label4'].''.$lang['srv_means_label4'].''.$lang['srv_means_label4'].'
    '; + + echo ''; echo $crossVariabla2['naslov']; # če ni tekstovni odgovor dodamo key if ($crossVariabla2['type'] !== 't' ) { if ($show_variables_values == true) { - if ($crossVariabla2['vr_id'] == null) { + if (!isset($crossVariabla2['vr_id'])||$crossVariabla2['vr_id'] == null) { echo ' ( '.$ckey2.' )'; } else { echo ' ( '.$crossVariabla2['vr_id'].' )'; @@ -1142,48 +1174,61 @@ class SurveyMeans{ } } echo ''; - echo $this->formatNumber($_means[$i]['result'][$ckey2], SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL')); + echo ''; + echo $this->formatNumber(isset($_means[$i]['result'][$ckey2])?$_means[$i]['result'][$ckey2]:null, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL')); echo ''; - echo (int)$_means[$i]['sumaVrstica'][$ckey2]; + echo ''; + echo (isset($_means[$i]['sumaVrstica'][$ckey2])?(int)$_means[$i]['sumaVrstica'][$ckey2]:0); echo ''; + echo ''; echo $units_per_row; echo '
    '.$lang['srv_means_label3'].''.$lang['srv_means_label3'].''; + echo ''; echo $this->formatNumber($_means[$i]['sumaMeans'], SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_RESIDUAL')); echo ''; + echo ''; echo (int)$_means[$i]['sumaSkupna']; echo ''; + echo ''; echo $max_units; - echo '
    '; } @@ -1230,20 +1275,20 @@ class SurveyMeans{ $which = $_POST['which']; $variables = $this->getVariableList($which); $multiple = true; - - + + if ($which == '1') { - echo '
    '; - echo ' '; - echo ''; + + # ce prva variabla ni izbrana, dodamo tekst za izbiro prve variable + if ( !isset($this->variabla1['seq'])||$this->variabla1['seq'] == null || $this->variabla1['seq'] == 0 ) { echo ''; } foreach ($variables as $variable) { - echo ''; } + echo ''; - echo ''; - - } else { - # which = 2 - echo '
    '; - echo ' '; - echo ''; # ce prva variabla ni izbrana, dodamo tekst za izbiro prve variable if ((int)$this->variabla1['0']['seq'] > 0) { echo ''; - } else { + } + else { # če druga variabla ni izbrana dodamo tekst za izbiro druge variable echo ''; } @@ -1279,7 +1327,10 @@ class SurveyMeans{ } echo ''; - echo ''; + + echo ''; + + echo ''; } } @@ -1291,7 +1342,7 @@ class SurveyMeans{ $sekvenca = $v_first['seq']; $spremenljivka = $this->_HEADERS[$spremenljivka_id]; - $grid = $spremenljivka['grids'][$grid_id]; + $grid = isset($spremenljivka['grids'][$grid_id])?$spremenljivka['grids'][$grid_id]:array(); # za multicheckboxe popravimo naslov, na podtip @@ -1303,9 +1354,9 @@ class SurveyMeans{ $labela .= ''; $labela .= ''; $labela .= strip_tags($spremenljivka['naslov']); - if ($show_variables_values == true) { + /* if ($show_variables_values == true) { $labela .= ' ('.strip_tags($spremenljivka['variable']).')'; - } + } */ $labela .= ''; $labela .= ''; @@ -1313,14 +1364,17 @@ class SurveyMeans{ if (strip_tags($grid['naslov']) != $lang['srv_new_text']) { $labela .= '
    '.strip_tags($grid['naslov']); } + $labela .= ' ('.strip_tags($grid['variable']).')' ; - } else { - if (strip_tags($variable['naslov']) != $lang['srv_new_text']) { + } + else { + if (strip_tags($variable['naslov']) != $lang['srv_new_text'] && strip_tags($variable['naslov']) != $lang['srv_new_vprasanje']) { $labela .= '
    '.strip_tags($variable['naslov']); } - if ($show_variables_values == true) { + + /* if ($show_variables_values == true) { $labela .= ' ('.strip_tags($variable['variable']).')'; - } + } */ } } @@ -1331,9 +1385,9 @@ class SurveyMeans{ $labela = ''; $labela .= ''; $labela .= strip_tags($spremenljivka['naslov']); - if ($show_variables_values == true) { + /* if ($show_variables_values == true) { $labela .= ' ('.strip_tags($spremenljivka['variable']).')'; - } + } */ $labela .= ''; $labela .= ''.NEW_LINE; } diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyMultiCrosstabs.php b/admin/survey/classes/surveyAnalysis/class.SurveyMultiCrosstabs.php index 67664da..98c2f59 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyMultiCrosstabs.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyMultiCrosstabs.php @@ -1,8 +1,8 @@ SurveyInit($this->ank_id); - if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) { - $this->db_table = '_active'; - } + $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); + + // Pri glasovanju tega ne pustimo + if(SurveyInfo::getInstance()->getSurveyColumn("survey_type") == 0){ + die(); + } $this->_CURRENT_STATUS_FILTER = STATUS_FIELD.' ~ /6|5/'; @@ -216,7 +219,7 @@ class SurveyMultiCrosstabs { if($spr['canChoose'] && in_array($spr['tip'], array(1,3,6))){ echo '
  • '; - echo ''.$spr['variable'].' - '.$this->snippet($spr['naslov'], 25); + echo ' '.$spr['variable'].' - '.$this->snippet($spr['naslov'], 25); echo '
  • '; } } @@ -227,7 +230,7 @@ class SurveyMultiCrosstabs { $this->displayMCTablesPopups(); // Izris diva za nastavitve tabele - echo '
    '; + echo '
    '; $this->displayTableSettings(); echo '
    '; @@ -252,9 +255,19 @@ class SurveyMultiCrosstabs { // Napolnimo variable ki so ze izbrane $this->getSelectedVars(); + // Zvezdica za creport - ce smo v custom reportu tega ne izpisemo + /*if($_GET['m'] != 'analysis_creport'){ + + echo '
    '; + + // Zvezdica za vkljucitev v porocilo + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=10, $sub_type=0, $spr1=$this->table_id); + + echo '
    '; + }*/ + echo ''; - // Imamo 2 nivoja if($this->colLevel2){ @@ -264,8 +277,10 @@ class SurveyMultiCrosstabs { elseif(!$this->rowLevel2) $colspan = ' colspan="2"'; else - $colspan = ' colspan="4"'; + $colspan = ' colspan="4"'; + echo ''; + if(count($this->selectedVars['ver'])){ foreach($this->selectedVars['ver'] as $var){ @@ -276,23 +291,27 @@ class SurveyMultiCrosstabs { echo $this->snippet($this->variablesList[$var['spr']]['naslov'], 25); // Gumb za brisanje - echo '
    '; + echo '
    '; echo ''; } } // Izrisemo se zadnjo prazno navpicno celico vrstico echo ''; - echo ''; + echo ''; + + // Izrisemo VARIABLE za spremenljivko - 2. vrstica if($this->rowSpan == 0) $colspan = ' colspan="1"'; elseif(!$this->rowLevel2) $colspan = ' colspan="2"'; else - $colspan = ' colspan="4"'; + $colspan = ' colspan="4"'; + echo ''; + if(count($this->selectedVars['ver'])){ foreach($this->selectedVars['ver'] as $var){ @@ -311,16 +330,18 @@ class SurveyMultiCrosstabs { } } echo ''; + // Izris vrstic za 2. nivo - 3. in 4. vrstica - if($this->rowSpan == 0) $colspan = ' colspan="1"'; elseif(!$this->rowLevel2) $colspan = ' colspan="2"'; else - $colspan = ' colspan="4"'; + $colspan = ' colspan="4"'; + echo ''; + if(count($this->selectedVars['ver'])){ foreach($this->selectedVars['ver'] as $parentVar){ @@ -335,7 +356,7 @@ class SurveyMultiCrosstabs { echo $this->snippet($this->variablesList[$var['spr']]['naslov'], 25); // Gumb za brisanje - echo '
    '; + echo '
    '; echo ''; } @@ -352,15 +373,19 @@ class SurveyMultiCrosstabs { } } } + echo ''; + if($this->rowSpan == 0) $colspan = ' colspan="1"'; elseif(!$this->rowLevel2) $colspan = ' colspan="2"'; else - $colspan = ' colspan="4"'; + $colspan = ' colspan="4"'; + echo ''; + if(count($this->selectedVars['ver'])){ foreach($this->selectedVars['ver'] as $parentVar){ @@ -375,7 +400,7 @@ class SurveyMultiCrosstabs { echo $this->snippet($suboption, 25); // Gumb za brisanje - echo '
    '; + echo '
    '; echo ''; } @@ -384,10 +409,12 @@ class SurveyMultiCrosstabs { } } } + echo ''; } // Imamo samo 1 nivo else{ + // Izrisemo VERTIKALNO izbrane spremenljivkec - 1. vrstica if($this->rowSpan == 0) $colspan = ' colspan="1"'; @@ -395,8 +422,10 @@ class SurveyMultiCrosstabs { $colspan = ' colspan="2"'; else $colspan = ' colspan="4"'; + echo ''; - if(count($this->selectedVars['ver'])){ + + if(isset($this->selectedVars['ver'])&&count($this->selectedVars['ver'])){ foreach($this->selectedVars['ver'] as $var){ $colspan = ' colspan="'.($this->table_settings[$this->table_id]['sums'] == 1 && !$this->rowLevel2 ? $var['span']+1 : $var['span']).'"'; @@ -405,7 +434,7 @@ class SurveyMultiCrosstabs { echo $this->snippet($this->variablesList[$var['spr']]['naslov'], 25); // Gumb za brisanje - echo '
    '; + echo '
    '; echo ''; } @@ -416,18 +445,22 @@ class SurveyMultiCrosstabs { } // Izrisemo se zadnjo prazno navpicno celico vrstico - echo ''; + echo ''; + echo ''; + // Izrisemo VARIABLE za spremenljivko - 2. vrstica if($this->rowSpan == 0) $colspan = ' colspan="1"'; elseif(!$this->rowLevel2) $colspan = ' colspan="2"'; else - $colspan = ' colspan="4"'; + $colspan = ' colspan="4"'; + echo ''; - if(count($this->selectedVars['ver'])){ + + if(isset($this->selectedVars['ver'])&&count($this->selectedVars['ver'])){ foreach($this->selectedVars['ver'] as $var){ // Loop cez variable spremenljivke @@ -449,13 +482,14 @@ class SurveyMultiCrosstabs { } } } + echo ''; } // Izrisemo HORIZONTALNO izbrane variable - if(count($this->selectedVars['hor'])){ + if(isset($this->selectedVars['hor'])&&count($this->selectedVars['hor'])){ // Imamo 2 nivoja vrstic if($this->rowLevel2){ @@ -486,7 +520,7 @@ class SurveyMultiCrosstabs { echo $this->snippet($this->variablesList[$parentVar['spr']]['naslov'], 25); // Gumb za brisanje - echo '
    '; + echo '
    '; echo ''; } @@ -507,7 +541,7 @@ class SurveyMultiCrosstabs { echo $this->snippet($this->variablesList[$var['spr']]['naslov'], 25); // Gumb za brisanje - echo '
    '; + echo '
    '; echo ''; } @@ -535,7 +569,7 @@ class SurveyMultiCrosstabs { echo ''; - echo ''; + echo ''; $crosstabs = $this->crosstabData[$parentVar['spr'].'-'.$var['spr']]; @@ -561,7 +595,7 @@ class SurveyMultiCrosstabs { echo $this->snippet($this->variablesList[$parentVar['spr']]['naslov'], 25); // Gumb za brisanje - echo '
    '; + echo '
    '; echo ''; } @@ -599,7 +633,7 @@ class SurveyMultiCrosstabs { echo $this->snippet($this->variablesList[$var['spr']]['naslov'], 25); // Gumb za brisanje - echo '
    '; + echo '
    '; echo ''; } @@ -622,7 +656,7 @@ class SurveyMultiCrosstabs { // Vrstica za sumo (ce jo imamo vklopljeno) if($this->table_settings[$this->table_id]['sums'] == 1 && count($this->selectedVars['ver']) > 0 && !$this->colLevel2){ echo ''; - echo ''; + echo ''; // Loop cez vse stolpce foreach($this->selectedVars['ver'] as $spr2){ @@ -683,37 +717,26 @@ class SurveyMultiCrosstabs { echo ''; - echo '
    '.$lang['srv_multicrosstabs_add'].'
    '.$lang['srv_multicrosstabs_add'].''.$lang['srv_multicrosstabs_add'].'
    '.$lang['srv_analiza_crosstab_skupaj'].''.$lang['srv_analiza_crosstab_skupaj'].'
    '.$lang['srv_analiza_crosstab_skupaj'].''.$lang['srv_analiza_crosstab_skupaj'].'
    '; - - echo '
    '; - // Izrisemo legendo + echo '
    '; $this->displayLegend(); - - - // Ce smo v custom reportu tega ne izpisemo - if($_GET['m'] != 'analysis_creport'){ - - // Zvezdica za vkljucitev v porocilo - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=10, $sub_type=0, $spr1=$this->table_id); - - - echo ''; - } - echo '
    '; + + + // JS + echo ''; } // Izpis celic v vrstici s podatki @@ -1108,7 +1131,7 @@ class SurveyMultiCrosstabs { // Numerus if($this->table_settings[$this->table_id]['numerus'] == 1){ echo '
    '; - echo $crosstabs['sumaSkupna']; + echo ($crosstabs['sumaSkupna'] != '') ? $crosstabs['sumaSkupna'] : '0'; echo '