<?php
/**
* @author Peter Hrvatin
* @date Februar 2011
*/
define("SAA_FOLDER", "AnalysisArchive");
class SurveyChart {
public static $anketa; # id ankete
public static $folder = ''; # pot do folderja
private static $headFileName = null; # pot do header fajla
private static $dataFileName = null; # pot do data fajla
private static $dataFileStatus = null; # status data datoteke
private static $SDF = null; # class za inkrementalno dodajanje fajlov
public static $uid; # id userja
public static $inited = false; # ali smo razred inicializirali
public static $current_loop = 'undefined'; # v kateri zanki smo (ce imamo skupine)
public static $skin = '1ka'; # nastavitev skina za grafe
public static $numbering = 0; # stevilcenje vprasanj
public static $fontSize = 8; # velikost fonta v grafih
public static $quality = 1; # kvaliteta (sirina) slike (1 -> 800px, 2 -> 1600px)
public static $num_records = 10;
public static $numerusText = ''; // dodaten text pri numerusu (veljavni, navedbe)
public static $settings = array(); // nastavitve grafa
public static $settings_mode=0; // zavihek nastavitev (osnovno/napredno)
public static $returnChartAsHtml = false; # ali vrne rezultat analiz kot html ali ga izpiše
public static $isArchive = false; # nastavimo na true če smo v arhivu
public static $chartArchiveTime = ''; # unikatnost
public static $publicChart = false; # ali smo preko public povezave
private static $sessionData; // podatki ki so bili prej v sessionu - za nastavitve, ki se prenasajo v izvoze...
private static $survey = null; # podatki ankete
private static $baseImageUrl = "";
/**
* Inicializacija
*
* @param int $anketa
*/
static function Init( $anketa = null ) {
global $global_user_id, $site_path, $site_url;
self::$folder = $site_path . EXPORT_FOLDER.'/';
if ((int)$anketa > 0) { # če je poadan anketa ID
self::$anketa = $anketa;
self::$baseImageUrl = $site_url . 'admin/survey/';
#inicializiramo SurveyAnalasys
SurveyAnalysis::Init(self::$anketa);
//SurveyAnalysis::$setUpJSAnaliza = false;
#inicializiramo class za datoteke
self::$SDF = SurveyDataFile::get_instance();
self::$SDF->init($anketa);
self::$headFileName = self::$SDF->getHeaderFileName();
self::$dataFileName = self::$SDF->getDataFileName();
self::$dataFileStatus = self::$SDF->getStatus();
if (self::$dataFileStatus == FILE_STATUS_NO_DATA
|| self::$dataFileStatus == FILE_STATUS_NO_FILE
|| self::$dataFileStatus == FILE_STATUS_SRV_DELETED){
// Zakaj je treba da je tukaj exit?
//exit;
return false;
}
//polovimo podatke o nastavitvah trenutnega profila (missingi..)
SurveyAnalysis::$missingProfileData = SurveyMissingProfiles::getProfile(SurveyAnalysis::$currentMissingProfile);
#preberemo HEADERS iz datoteke
SurveyAnalysis::$_HEADERS = unserialize(file_get_contents(self::$headFileName));
# odstranimo sistemske variable tipa email, ime, priimek, geslo
SurveyAnalysis::removeSystemVariables();
SurveyInfo :: getInstance()->SurveyInit(self::$anketa);
self::$survey = SurveyInfo::getInstance()->getSurveyRow();
}
else {
die("Napaka!");
}
if ( SurveyInfo::getInstance()->SurveyInit(self::$anketa))
{
self::$uid = $global_user_id;
SurveyUserSetting::getInstance()->Init(self::$anketa, self::$uid);
}
SurveyZankaProfiles :: Init(self::$anketa, $global_user_id);
// preberemo nastavitve iz baze (prej v sessionu)
SurveyUserSession::Init(self::$anketa);
self::$sessionData = SurveyUserSession::getData('charts');
//$chartTableMore = SurveyDataSettingProfiles :: getSetting('chartTableMore');
//self::$num_records = ($chartTableMore == 0) ? 10 : 1000;
$result = SurveyDataSettingProfiles :: getSetting('numOpenAnswers');
self::$num_records = ($result > 0) ? $result : 30;
self::$skin = (SurveyUserSetting::getInstance()->getSettings('default_chart_profile_skin') == null ? '1ka' : SurveyUserSetting::getInstance()->getSettings('default_chart_profile_skin'));
self::$numbering = SurveyDataSettingProfiles :: getSetting('chartNumbering');
self::$fontSize = SurveyDataSettingProfiles :: getSetting('chartFontSize');
self::$quality = (isset(self::$sessionData['hq']) && self::$sessionData['hq'] == 1) ? 3 : 1;
}
/**
* Funkcija ki jo klicemo periodicno za vzdrzevanje cacha
*
* @param int $charts_num - stevilo grafov ki jih ustvarimo za vsako anketo
* @param int $expire_time - starejse grafe od $expire_time dni brisemo
*/
static function chartCache($charts_num = 5, $expire_time = 10){
// loop cez vse ankete za katere urejamo cache
$sql = sisplet_query("SELECT id FROM srv_anketa WHERE edit_time >= NOW() - INTERVAL ".$expire_time." DAY");
while($row = mysqli_fetch_assoc($sql)){
echo $row['id'].'<br>';
self::Init($row['id']);
self::createCache($charts_num);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
}
// Na koncu pobrisemo vse stare grafe - ki so bili ustvarjeni vec kot 3 mesece nazaj
self::clearCache($expire_time * 9);
}
// Pobrisemo stare (starejse od $expire_time v dnevih) slike grafov iz cache folderja
static function clearCache($expire_time = 14){
$folderPath = dirname(__FILE__).'/../../pChart/Cache/';
$fileTypes = '*';
// Pobrisemo file starejse od
$expire_time = $expire_time * 24 * 60 * 60;
foreach (glob($folderPath . $fileTypes) as $Filename) {
// preberemo cas dostopa do fila
//$FileCreationTime = fileatime($Filename);
// preberemo cas ustvarjanja fila
$FileCreationTime = filemtime($Filename);
// starost v dnevih
$FileAge = round( (time() - $FileCreationTime) / $expire_time );
if ($FileAge >= ($expire_time)){
// brisemo stare file
//echo 'Datoteka '.$Filename.' je starejša od '.$expire_time.' min in je bila zbrisana.<br />';
unlink($Filename);
}
}
}
// Zgeneriramo prvih $charts_num grafov v cache
static function createCache($charts_num = 5){
global $site_path;
# preberemo header
if (self::$headFileName !== null ) {
$vars_count = count(SurveyAnalysis::$_FILTRED_VARIABLES);
foreach (SurveyAnalysis::$_HEADERS AS $spid => $spremenljivka) {
# preverjamo ali je meta
if (($spremenljivka['tip'] != 'm'
&& in_array($spremenljivka['tip'], SurveyAnalysis::$_FILTRED_TYPES ))
&& (!isset($_spid) || (isset($_spid) && $_spid == $spid)) && in_array($spremenljivka['tip'],array(1,2,3,6,7,8,16,17,18,20) )) {
# ali imamo sfiltrirano spremenljivko
if ( $vars_count == 0 || ($vars_count > 0 && isset(SurveyAnalysis::$_FILTRED_VARIABLES[$spid])) ) {
// defult nastavitve posameznega grafa
self::$settings = self::getDefaultSettings();
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, self::$settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0 in ni variabel v vprasanju preskocimo graf
if($DataSet != 0 && $DataSet != -1){
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, self::$settings, $DataSet->GetNumerus());
if($charts_num > 0){
# prikazujemo v odvisnosti od kategorije spremenljivke
switch ($spremenljivka['tip']) {
case 1: # radio
case 3: # dropdown
if( !$Cache->isInCache($ID, $DataSet->GetData()) ){
$Test = self::createHorBars($DataSet, $spremenljivka);
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
$charts_num--;
break;
case 2: #checkbox
if( !$Cache->isInCache($ID, $DataSet->GetData()) ){
$Test = self::createHorBars($DataSet, $spremenljivka);
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
$charts_num--;
break;
case 6: # multigrid
if( !$Cache->isInCache($ID, $DataSet->GetData()) ){
$Test = self::createHorBars($DataSet, $spremenljivka);
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
$charts_num--;
break;
case 7: # število
case 8: # datum
case 22: # compute
case 25: # kvota
if( !$Cache->isInCache($ID, $DataSet->GetData()) ){
$Test = self::createHorBars($DataSet, $spremenljivka);
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
$charts_num--;
break;
case 16: # multicheckbox
if( !$Cache->isInCache($ID, $DataSet->GetData()) ){
$Test = self::createVerStructBars($DataSet, $spremenljivka);
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
$charts_num--;
break;
case 17: # razvrščanje
if( !$Cache->isInCache($ID, $DataSet->GetData()) ){
$Test = self::createHorBars($DataSet, $spremenljivka);
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
$charts_num--;
break;
case 20: # multi number
if( !$Cache->isInCache($ID, $DataSet->GetData()) ){
$Test = self::createRadar($DataSet, $spremenljivka);
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
$charts_num--;
break;
case 18: # vsota
if( !$Cache->isInCache($ID, $DataSet->GetData()) ){
$Test = self::createPie($DataSet, $spremenljivka, self::$settings['show_legend']);
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
$charts_num--;
break;
default: # vsi ostali
break;
}
}
// Dosezemo limit stevila grafov za generiranje
else
break;
}
}
} // end if $spremenljivka['tip'] != 'm'
} // end foreach self::$_HEADERS
} // end if else ($_headFileName == null)
}
static function display(){
global $site_path;
global $lang;
# zakeširamo vsebino, in jo nato po potrebi zapišpemo v html
if (self::$returnChartAsHtml != false) {
ob_start();
}
// prikazemo nastavitve
if (self::$isArchive != true && self::$publicChart != true) {
self::displayGlobalSettings();
echo "<br/>\n";
}
# preberemo header
if (self::$headFileName !== null ) {
echo '<div id="div_analiza_data" class="charts">';
if(self::$isArchive != true && self::$publicChart != true) {
SurveyAnalysis::$_LOOPS = SurveyZankaProfiles::getFiltersForLoops();
}
# če nimamo zank
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0){
self::$current_loop = 'undefined';
self::displayCharts();
}
else{
$loop_cnt = 0;
# če mamo zanke
foreach(SurveyAnalysis::$_LOOPS AS $loop) {
$loop_cnt++;
$loop['cnt'] = $loop_cnt;
SurveyAnalysis::$_CURRENT_LOOP = $loop;
self::$current_loop = $loop_cnt;
echo '<h2>'.$lang['srv_zanka_note'].$loop['text'].'</h2>';
self::displayCharts();
}
}
echo '</div>';
if (self::$isArchive != true && self::$publicChart != true) {
self::displayBottomSettings();
}
// Shranimo spremenjene nastavitve v bazo
SurveyUserSession::saveData(self::$sessionData, 'charts');
} // end if else ($_headFileName == null)
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
return;
} else {
$result = ob_get_clean();
ob_flush(); flush();
return $result;
}
}
static function displayCharts(){
global $lang;
global $site_path;
# polovimo frekvence
SurveyAnalysis::getFrequencys();
$vars_count = count(SurveyAnalysis::$_FILTRED_VARIABLES);
foreach (SurveyAnalysis::$_HEADERS AS $spid => $spremenljivka) {
# preverjamo ali je meta
if (($spremenljivka['tip'] != 'm'
&& in_array($spremenljivka['tip'], SurveyAnalysis::$_FILTRED_TYPES ))
&& (!isset($_spid) || (isset($_spid) && $_spid == $spid))
&& $spremenljivka['tip'] != 5) {
# ali imamo sfiltrirano spremenljivko
if ($vars_count == 0 || ($vars_count > 0 && isset(SurveyAnalysis::$_FILTRED_VARIABLES[$spid]) ) ) {
// preberemo ze nastavljene nastavitve posameznega grafa iz sessiona
if(isset(self::$sessionData[$spid][self::$current_loop]) && self::$current_loop != 'undefined'){
self::$settings = self::$sessionData[$spid][self::$current_loop];
}
else if(isset(self::$sessionData[$spid]) && self::$current_loop == 'undefined'){
self::$settings = self::$sessionData[$spid];
}
// nastavimo default nastavitve za vsak graf
else{
self::$settings = self::getDefaultSettings();
// ce imamo numeric dropdown popravimo default graf na skupinski
if($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)){
self::$settings['type'] = 5;
}
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;
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;
if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3) && $vars > 20 ){
self::$settings['hideEmptyVar'] = 1;
}
}
// Ce imamo checkbox ga po defaultu uredimo po velikosti
if($spremenljivka['tip'] == 2){
self::$settings['sort'] = 1;
}
// Ce imamo checkbox in vec kot 20 variabel -> po defaultu ne prikazujemo praznih
$vars = (is_countable($spremenljivka['grids'][0]['variables'])) ? count($spremenljivka['grids'][0]['variables']) : 0;
if( $spremenljivka['tip'] == 2 && $vars > 20 ){
self::$settings['hideEmptyVar'] = 1;
}
// Ce imamo multigrid ali multicheckbox in vec kot 20 variabel -> po defaultu ne prikazujemo praznih
$vars = (is_countable($spremenljivka['grids'])) ? count($spremenljivka['grids']) : 0;
if( ($spremenljivka['tip'] == 6 || $spremenljivka['tip'] == 16) && $vars > 20 ){
self::$settings['hideEmptyVar'] = 1;
}
// 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){
self::$settings['type'] = 6;
}
// Ce imamo mg tip in manj kot 4 gridov po defaultu prikazemo strukturne stolpce
elseif($spremenljivka['tip'] == 6 && $vars < 4 && $spremenljivka['enota'] != 3){
self::$settings['type'] = 2;
}
// Ce imamo MG vedno sortiramo po povprecijh razen ce imamo semanicni diferencial z 1 variablo
$vars = (is_countable($spremenljivka['grids'])) ? count($spremenljivka['grids']) : 0;
if($spremenljivka['tip'] == 6 && ($vars != 1 || $spremenljivka['enota'] != 1)){
self::$settings['sort'] = 1;
}
// Pri multigridu imamo default obrnjene gride/variable ???
/*if( $spremenljivka['tip'] == 6 ){
self::$settings['rotate'] = 1;
}*/
// pri number po defaultu prikazemo legendo
if($spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 22){
self::$settings['show_legend'] = 1;
}
// Ce imamo razvrscanje ga po defaultu uredimo po velikosti
if($spremenljivka['tip'] == 17){
self::$settings['sort'] = 1;
}
// Vsota ima po novem default hor. stolpce
if($spremenljivka['tip'] == 18)
self::$settings['type'] = 2;
// Ce imamo multinumber in samo en grid po defaultu prikazemo stolpce in zarotiramo grids/vars
$vars = $spremenljivka['grids']['0']['cnt_vars'];
if( $spremenljivka['tip'] == 20 && $vars == 1 ){
self::$settings['type'] = 1;
self::$settings['rotate'] = 1;
}
}
// Spremenimo default alignment vseh tabel ce imamo vklopljeno levo poravnavo
$chartTableAlign = SurveyDataSettingProfiles :: getSetting('chartTableAlign');
if($chartTableAlign == 1){
//popravimo tabele za other
self::$settings['otherType'] = 1;
//popravimo se vse ostale tabele
if(in_array($spremenljivka['tip'], array(19,21,4))){
self::$settings['show_legend'] = 1;
}
}
else{
//popravimo tabele za other
self::$settings['otherType'] = 0;
//popravimo se vse ostale tabele
if(in_array($spremenljivka['tip'], array(19,21,4))){
self::$settings['show_legend'] = 0;
}
}
# prikazujemo v odvisnosti od kategorije spremenljivke
switch ($spremenljivka['tip']) {
case 1: # radio
case 3: # dropdown
self::displayRadioChart($spid, self::$settings);
break;
case 2: #checkbox
self::displayCheckboxChart($spid, self::$settings);
break;
case 6: # multigrid
// dvojna tabela
if($spremenljivka['enota'] == 3)
self::displayDoubleMultigridChart($spid, self::$settings);
else
self::displayMultigridChart($spid, self::$settings);
break;
case 7: # število
case 22: # compute
self::displayNumberChart($spid, self::$settings);
break;
case 8: # datum
self::displayDateChart($spid, self::$settings);
break;
case 25: # kvota
break;
case 16: # multicheckbox
self::displayMulticheckboxChart($spid, self::$settings);
break;
case 17: # razvrščanje
self::displayRankingChart($spid, self::$settings);
break;
case 20: # multi number
self::displayMultinumberChart($spid, self::$settings);
break;
case 18: # vsota
self::displayVsotaChart($spid, self::$settings);
break;
case 4: # text
self::frequencyVertical($spid);
break;
case 5: # nagovor
/*if(self::$view == 0)
SurveyAnalysis::sumNagovor($spid,'sums');*/
break;
case 19: # multitext
self::sumMultiText($spid);
break;
case 21: # besedilo*
if ($spremenljivka['cnt_all'] == 1) {
// če je enodimenzionalna prikažemo kot frekvence
// predvsem zaradi vprašanj tipa: language, email...
self::frequencyVertical($spid);
} else {
self::frequencyVertical($spid);
}
break;
case 27:
# heatmap
SurveyAnalysis::heatmapGraph($spid,'sums',true, true);
break;
default:
break;
}
//echo '</div>'.NEW_LINE;
}
} // end if $spremenljivka['tip'] != 'm'
} // end foreach self::$_HEADERS
}
static function displaySingle($spid){
global $site_path;
global $lang;
// Ce delamo arhiv iz custom reporta ne izvajamo ob_starta in ob_get_clean
$archiveFromCReport = (($_GET['a'] == 'submitArchiveAnaliza' || $_GET['a'] == 'createArchiveBeforeEmail') && $_POST['podstran'] == 'analysis_creport') ? true : true;
# zakeširamo vsebino, in jo nato po potrebi zapišpemo v html
if (self::$returnChartAsHtml != false && $archiveFromCReport == false) {
ob_start();
}
// prikazemo nastavitve
/*self::displaySettings();
echo "<br/>\n";
echo "<br/>\n";*/
# preberemo header
if (self::$headFileName !== null ) {
echo '<div id="div_analiza_data" class="charts">';
$vars_count = count(SurveyAnalysis::$_FILTRED_VARIABLES);
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
SurveyAnalysis::getFrequencys();
# preverjamo ali je meta
if (($spremenljivka['tip'] != 'm'
&& in_array($spremenljivka['tip'], SurveyAnalysis::$_FILTRED_TYPES ))
&& (!isset($_spid) || (isset($_spid) && $_spid == $spid))
&& $spremenljivka['tip'] != 5) {
# ali imamo sfiltrirano spremenljivko
if ($vars_count == 0 || ($vars_count > 0 && isset(SurveyAnalysis::$_FILTRED_VARIABLES[$spid]) ) ) {
echo '<div class="chart_holder" id="chart_'.$spid.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'"></div>';
// defult nastavitve posameznega grafa
if(isset(self::$sessionData[$spid])){
self::$settings = self::$sessionData[$spid];
}
else{
self::$settings = self::getDefaultSettings();
// Ce imamo radio tip in manj kot 5 variabel po defaultu prikazemo piechart
$vars = count($spremenljivka['options']);
if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3) && $vars < 5 && $spremenljivka['skala'] == 1){
self::$settings['type'] = 2;
}
// Ce imamo mg tip in manj kot 5 variabel po defaultu prikazemo en strukturni stolpec
/*$vars = $spremenljivka['cnt_all'];
if( ($spremenljivka['tip'] == 6) && $vars < 5 ){
self::$settings['type'] = 2;
}*/
// Ce imamo semanticni diferencial po defaultu prikazemo vertikalno crto
if($spremenljivka['tip'] == 6 && $spremenljivka['enota'] == 1){
self::$settings['type'] = 6;
}
// Ce imamo mg tip in manj kot 5 gridov po defaultu prikazemo strukturne stolpce
elseif($spremenljivka['tip'] == 6 && $vars < 5 && $spremenljivka['enota'] != 3){
self::$settings['type'] = 2;
}
// Vsota ima po novem default hor. stolpce
if($spremenljivka['tip'] == 18)
self::$settings['type'] = 2;
// Ce imamo multinumber in samo en grid po defaultu prikazemo stolpce in zarotiramo grids/vars
$vars = $spremenljivka['grids']['0']['cnt_vars'];
if( $spremenljivka['tip'] == 20 && $vars == 1 ){
self::$settings['type'] = 1;
self::$settings['rotate'] = 1;
}
}
// Spremenimo default alignment vseh tabel ce imamo vklopljeno levo poravnavo
$chartTableAlign = SurveyDataSettingProfiles :: getSetting('chartTableAlign');
if($chartTableAlign == 1){
//popravimo tabele za other
self::$settings['otherType'] = 1;
//popravimo se vse ostale tabele
if(in_array($spremenljivka['tip'], array(19,21,4))){
self::$settings['show_legend'] = 1;
}
}
else{
//popravimo tabele za other
self::$settings['otherType'] = 0;
//popravimo se vse ostale tabele
if(in_array($spremenljivka['tip'], array(19,21,4))){
self::$settings['show_legend'] = 0;
}
}
# prikazujemo v odvisnosti od kategorije spremenljivke
switch ($spremenljivka['tip']) {
case 1: # radio
case 3: # dropdown
self::displayRadioChart($spid, self::$settings);
break;
case 2: #checkbox
self::displayCheckboxChart($spid, self::$settings);
break;
case 6: # multigrid
// dvojna tabela
if($spremenljivka['enota'] == 3)
self::displayDoubleMultigridChart($spid, self::$settings);
else
self::displayMultigridChart($spid, self::$settings);
break;
case 7: # število
case 22: # compute
self::displayNumberChart($spid, self::$settings);
break;
case 8: # datum
self::displayDateChart($spid, self::$settings);
break;
case 25: # kvota
//self::displayNumberChart($spid, self::$settings);
break;
case 16: # multicheckbox
self::displayMulticheckboxChart($spid, self::$settings);
break;
case 17: # razvrščanje
self::displayRankingChart($spid, self::$settings);
break;
case 20: # multi number
self::displayMultinumberChart($spid, self::$settings);
//self::frequencyVertical($spid);
break;
case 18: # vsota
self::displayVsotaChart($spid, self::$settings);
break;
case 4: # text
//SurveyAnalysis::sumTextVertical($spid,'sums');
self::frequencyVertical($spid);
break;
case 5: # nagovor
/*if(self::$view == 0)
SurveyAnalysis::sumNagovor($spid,'sums');*/
break;
case 19: # multitext
//SurveyAnalysis::sumMultiText($spid,'sums');
//self::frequencyVertical($spid);
self::sumMultiText($spid);
break;
case 21: # besedilo*
if ($spremenljivka['cnt_all'] == 1) {
// če je enodimenzionalna prikažemo kot frekvence
// predvsem zaradi vprašanj tipa: language, email...
//SurveyAnalysis::sumTextVertical($spid,'sums');
self::frequencyVertical($spid);
} else {
//SurveyAnalysis::sumMultiText($spid,'sums');
self::frequencyVertical($spid);
}
break;
default:
break;
}
echo '</div>'.NEW_LINE;
// Shranimo spremenjene nastavitve v bazo
SurveyUserSession::saveData(self::$sessionData, 'charts');
}
} // end if $spremenljivka['tip'] != 'm'
echo '</div>';
//self::displayBottomSettings();
} // end if else ($_headFileName == null)
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
return;
}
else {
if($archiveFromCReport == false){
$result = ob_get_clean();
ob_flush(); flush();
return $result;
}
}
}
/**
* Izrise graf za posamezno spremenljivko
*/
static function displayRadioChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Ce smo ravnokar preklopili na pieChart vklopimo sortiranje
if(self::$current_loop != 'undefined'){
if((self::$sessionData[$spid][self::$current_loop]['type'] != 2 && $settings['type'] == 2) || (self::$sessionData[$spid][self::$current_loop]['type'] != 8 && $settings['type'] == 8)){
$settings['sort'] = 1;
self::$settings['sort'] = 1;
}
}
else{
if((self::$sessionData[$spid]['type'] != 2 && $settings['type'] == 2) || (self::$sessionData[$spid]['type'] != 8 && $settings['type'] == 8)){
$settings['sort'] = 1;
self::$settings['sort'] = 1;
}
}
// popravimo nastavitve za numeric dropdown
if(self::$current_loop != 'undefined'){
if($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)){
// Ce smo ravnokar preklopili na linijski - po skupinah imamo default vse intervale
if(self::$sessionData[$spid][self::$current_loop]['type'] != 7 && $settings['type'] == 7 ){
$settings['interval'] = -1;
self::$settings['interval'] = -1;
}
// Ce smo ravnokar preklopili na navaden - po skupinah imamo default 10 intervalov
if(self::$sessionData[$spid][self::$current_loop]['type'] < 5 && $settings['type'] > 4){
$settings['interval'] = 10;
self::$settings['interval'] = 10;
}
}
}
else{
if($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)){
// Ce smo ravnokar preklopili na linijski - po skupinah imamo default vse intervale
if(self::$sessionData[$spid]['type'] != 7 && $settings['type'] == 7 ){
$settings['interval'] = -1;
self::$settings['interval'] = -1;
}
// Ce smo ravnokar preklopili na navaden - po skupinah imamo default 10 intervalov
if(self::$sessionData[$spid]['type'] < 5 && $settings['type'] > 4){
$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){
$settings['barLabel'] = 1;
self::$settings['barLabel'] = 1;
$settings['show_avg'] = 0;
self::$settings['show_avg'] = 0;
}
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
//$Cache->GetFromCache($ID,$DataSet->GetData());
// Ce se nimamo zgeneriranega grafa - ali ce refreshamo grafe
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Horizontalni stolpci
case 0:
// Horizontalni stolpci - numeric dropdown
case 5:
// Horizontalen stolpec - povprecje
case 9:
$Test = self::createHorBars($DataSet, $spremenljivka);
break;
// Navpicni stolpci
case 1:
// Navpicni stolpci - numeric dropdown
case 6:
$Test = self::createVerBars($DataSet, $spremenljivka);
break;
// Pie chart
case 2:
$Test = self::createPie($DataSet, $spremenljivka, $settings['show_legend']);
break;
// 3D Pie chart
case 8:
$Test = self::create3DPie($DataSet, $spremenljivka, $settings['show_legend']);
break;
// Sestavljeni stolpec - horizontalen
case 3:
$Test = self::createHorStructBars($DataSet, $spremenljivka);
break;
// Sestavljeni stolpec - vertikalen
case 4:
$Test = self::createVerStructBars($DataSet, $spremenljivka);
break;
// Linijski graf - numeric dropdown
case 7:
case 22:
$Test = self::createLine($DataSet, $spremenljivka);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
echo '<div class="chart_settings printHide iconHide">';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
# izpišemo še tekstovne odgovore za polja drugo
$_answersOther = $DataSet->GetOther();
if (count($_answersOther) > 0 && SurveyAnalysis::$_FILTRED_OTHER) {
foreach ($_answersOther AS $oAnswers) {
$spid = $oAnswers['spid'];
$_variable = SurveyAnalysis::$_HEADERS[$spid]['grids'][$oAnswers['gid']]['variables'][$oAnswers['vid']];
$_sequence = $_variable['sequence'];
if(is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0){
echo '<div id="chart_other_text_'.$spid.'_loop_'.self::$current_loop.'" class="chart_other_text">';
self::outputOtherAnswers($oAnswers);
echo '</div>';
echo '<div class="chart_settings other_settings printHide iconHide">';
self::displayOtherSettings($spid);
echo '</div>';
}
}
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
}
}
echo '</div>';
}
static function displayCheckboxChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Popravimo pri preklopu na enote (kjer ne moremo imeti strukturnih stolpcev)
if( ($settings['type'] == 2 || $settings['type'] == 7 || $settings['type'] == 3 || $settings['type'] == 4) && $settings['base'] == 0 ){
$settings['type'] = 0;
}
// Popravimo pri preklopu na navedbe (kjer ne moremo imeti radarja in linijskega grafa)
if( ($settings['type'] == 5 || $settings['type'] == 6) && $settings['base'] == 1 ){
$settings['type'] = 0;
}
// Ce smo ravnokar preklopili na pieChart vklopimo sortiranje
if(self::$current_loop != 'undefined'){
if((self::$sessionData[$spid][self::$current_loop]['type'] != 2 && $settings['type'] == 2) || (self::$sessionData[$spid][self::$current_loop]['type'] != 7 && $settings['type'] == 7)){
$settings['sort'] = 1;
self::$settings['sort'] = 1;
}
}
else{
if((self::$sessionData[$spid]['type'] != 2 && $settings['type'] == 2) || (self::$sessionData[$spid]['type'] != 7 && $settings['type'] == 7)){
$settings['sort'] = 1;
self::$settings['sort'] = 1;
}
}
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
//$Cache->GetFromCache($ID,$DataSet->GetData());
// Ce se nimamo zgeneriranega grafa
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Horizontalni stolpci
case 0:
$Test = self::createHorBars($DataSet, $spremenljivka);
break;
// Vodoravni stolpci
case 1:
$Test = self::createVerBars($DataSet, $spremenljivka);
break;
// Pie chart
case 2:
$Test = self::createPie($DataSet, $spremenljivka, $settings['show_legend']);
break;
// 3D Pie chart
case 7:
case 22:
$Test = self::create3DPie($DataSet, $spremenljivka, $settings['show_legend']);
break;
// Sestavljeni stolpec - horizontalen
case 3:
$Test = self::createHorStructBars($DataSet, $spremenljivka);
break;
// Sestavljeni stolpec - vertikalen
case 4:
$Test = self::createVerStructBars($DataSet, $spremenljivka);
break;
// Radar
case 5:
$Test = self::createRadar($DataSet, $spremenljivka, $settings['show_legend']);
break;
// Linijski graf
case 6:
$Test = self::createLine($DataSet, $spremenljivka);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
if($settings['base'] == 1)
echo '(r = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
else
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '<br /><span class="subtitle">'.$lang['srv_info_checkbox'];
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
$addHeight = ($settings['type'] == 2) ? 'style="height: 245px"' : '';
echo '<div class="chart_settings printHide iconHide" '.$addHeight.'>';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
# izpišemo še tekstovne odgovore za polja drugo
$_answersOther = $DataSet->GetOther();
if (count($_answersOther) > 0 && SurveyAnalysis::$_FILTRED_OTHER) {
foreach ($_answersOther AS $oAnswers) {
$spid = $oAnswers['spid'];
$_variable = SurveyAnalysis::$_HEADERS[$spid]['grids'][$oAnswers['gid']]['variables'][$oAnswers['vid']];
$_sequence = $_variable['sequence'];
if(is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0){
echo '<div id="chart_other_text_'.$spid.'_loop_'.self::$current_loop.'" class="chart_other_text">';
self::outputOtherAnswers($oAnswers);
echo '</div>';
echo '<div class="chart_settings other_settings printHide iconHide">';
self::displayOtherSettings($spid);
echo '</div>';
}
}
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
}
}
echo '</div>';
}
static function displayNumberChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
if(self::$current_loop != 'undefined'){
// Ce smo ravnokar preklopili na linijski - po skupinah imamo default vse intervale
if(self::$sessionData[$spid][self::$current_loop]['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][self::$current_loop]['type'] >= 2 && $settings['type'] < 2){
$settings['interval'] = 10;
self::$settings['interval'] = 10;
}
}
else{
// Ce smo ravnokar preklopili na linijski - po skupinah imamo default vse intervale
if(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){
$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){
$settings['barLabel'] = 1;
self::$settings['barLabel'] = 1;
$settings['show_avg'] = 0;
self::$settings['show_avg'] = 0;
}
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
//$Cache->GetFromCache($ID,$DataSet->GetData());
// Ce se nimamo zgeneriranega grafa
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Horizontalni stolpci - po skupinah ali navadno
case 0:
case 3:
// Horizontalen stolpec - povprecje
case 9:
$Test = self::createHorBars($DataSet, $spremenljivka, $settings['show_legend']);
break;
// Vertikalni stolpci - po skupinah ali navadno
case 1:
case 4:
$Test = self::createVerBars($DataSet, $spremenljivka, $settings['show_legend']);
break;
// Line chart - po skupinah
case 2:
$Test = self::createLine($DataSet, $spremenljivka, $settings['show_legend']);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
echo '<div class="chart_settings printHide iconHide">';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
echo '</div>';
}
static function displayDateChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
//$Cache->GetFromCache($ID,$DataSet->GetData());
// Ce se nimamo zgeneriranega grafa
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Horizontalni stolpci - po skupinah ali navadno
case 0:
case 3:
$Test = self::createHorBars($DataSet, $spremenljivka);
break;
// Vertikalni stolpci - po skupinah ali navadno
case 1:
case 4:
$Test = self::createVerBars($DataSet, $spremenljivka);
break;
// Line chart
case 2:
$Test = self::createLine($DataSet, $spremenljivka);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
echo '<div class="chart_settings printHide iconHide">';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
echo '</div>';
}
static function displayMultigridChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
//ce imamo nominalno spremenljivko ali ce je samo 1 variabla nimamo povprecij
if( ($spremenljivka['cnt_all'] == 1 || $spremenljivka['skala'] == 1) && ($settings['type'] == 0 || $settings['type'] == 5 || $settings['type'] == 6) ){
$settings['type'] = 2;
}
//ce imamo navadne stolpce (ne povprecij) - ugasnemo labele vrednosti na stolpcih
if( $settings['type'] == 3 || $settings['type'] == 4 ){
$settings['barLabel'] = 0;
self::$settings['barLabel'] = 0;
}
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
//$Cache->GetFromCache($ID,$DataSet->GetData());
// Ce se nimamo zgeneriranega grafa
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Povprecja - horizontalni stolpci
case 0:
$Test = self::createHorBars($DataSet, $spremenljivka, $settings['show_legend'], $settings['noFixedScale']/*$fixedScale=1*/);
break;
// Povprecja - vertikalna crta
case 6:
$Test = self::createVerLine($DataSet, $spremenljivka, $settings['show_legend'], $settings['noFixedScale']);
break;
// Povprecja - radar
case 5:
$Test = self::createRadar($DataSet, $spremenljivka, $settings['show_legend'], $settings['noFixedScale']);
break;
// Sestavljeni stolpci - navpicni
case 1:
$Test = self::createVerStructBars($DataSet, $spremenljivka);
break;
// Sestavljeni stolpci - vodoravni
case 2:
$Test = self::createHorStructBars($DataSet, $spremenljivka);
break;
// Navpicni stolpci
case 3:
$Test = self::createVerBars($DataSet, $spremenljivka, 1);
break;
// Horizontalni stolpci
case 4:
$Test = self::createHorBars($DataSet, $spremenljivka, 1);
break;
// Nominalni radar
case 7:
case 22:
$Test = self::createRadar($DataSet, $spremenljivka, 1, $fixedScale=0);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
echo '<div class="chart_settings printHide iconHide">';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
# izpišemo še tekstovne odgovore za polja drugo
$_answersOther = $DataSet->GetOther();
if (count($_answersOther) > 0 && SurveyAnalysis::$_FILTRED_OTHER) {
foreach ($_answersOther AS $oAnswers) {
$spid = $oAnswers['spid'];
$_variable = SurveyAnalysis::$_HEADERS[$spid]['grids'][$oAnswers['gid']]['variables'][$oAnswers['vid']];
$_sequence = $_variable['sequence'];
if(is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0){
echo '<div id="chart_other_text_'.$spid.'_loop_'.self::$current_loop.'" class="chart_other_text">';
self::outputOtherAnswers($oAnswers);
echo '</div>';
echo '<div class="chart_settings other_settings printHide iconHide">';
self::displayOtherSettings($spid);
echo '</div>';
}
}
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
}
}
echo '</div>';
}
static function displayDoubleMultigridChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
//$Cache->GetFromCache($ID,$DataSet->GetData());
// Ce se nimamo zgeneriranega grafa
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Horizontal chart
case 0:
$Test = self::createHorBars($DataSet, $spremenljivka, $legend=1, $settings['noFixedScale']);
break;
// Vertical chart
case 1:
$Test = self::createVerBars($DataSet, $spremenljivka, $legend=1, $settings['noFixedScale']);
break;
// Line chart
case 2:
$Test = self::createLine($DataSet, $spremenljivka, $legend=1, $settings['noFixedScale']);
break;
// Vertical line chart
case 3:
$Test = self::createVerLine($DataSet, $spremenljivka, $legend=1, $settings['noFixedScale']);
break;
// Radar chart
case 4:
$Test = self::createRadar($DataSet, $spremenljivka, $legend=1, $settings['noFixedScale']);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
echo '<div class="chart_settings printHide iconHide">';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
# izpišemo še tekstovne odgovore za polja drugo
$_answersOther = $DataSet->GetOther();
if (count($_answersOther) > 0 && SurveyAnalysis::$_FILTRED_OTHER) {
foreach ($_answersOther AS $oAnswers) {
$spid = $oAnswers['spid'];
$_variable = SurveyAnalysis::$_HEADERS[$spid]['grids'][$oAnswers['gid']]['variables'][$oAnswers['vid']];
$_sequence = $_variable['sequence'];
if(is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0){
echo '<div id="chart_other_text_'.$spid.'_loop_'.self::$current_loop.'" class="chart_other_text">';
self::outputOtherAnswers($oAnswers);
echo '</div>';
echo '<div class="chart_settings other_settings printHide iconHide">';
self::displayOtherSettings($spid);
echo '</div>';
}
}
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
}
}
echo '</div>';
}
static function displayMulticheckboxChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
//Popravimo pri preklopu na enote (kjer ne moremo imeti strukturnih stolpcev)
if( ($settings['type'] == 2 || $settings['type'] == 3) && $settings['base'] == 0 ){
$settings['type'] = 0;
}
//Popravimo pri preklopu na navedbe (kjer ne moremo imeti radarja)
if( $settings['type'] == 4 && $settings['base'] == 1 ){
$settings['type'] = 0;
}
// Popravimo ce preklopimo iz veljavnih enot na navedbe
if($settings['base'] == 1 && $settings['value_type'] == 0){
$settings['value_type'] = 1;
}
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
//$Cache->GetFromCache($ID,$DataSet->GetData());
// Ce se nimamo zgeneriranega grafa
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Povprecja
/*case 0:
$Test = self::createHorBars($DataSet, $spremenljivka);
break;*/
// Horizontalni stolpci
case 0:
$Test = self::createHorBars($DataSet, $spremenljivka, 1);
break;
// Navpicni stolpci
case 1:
$Test = self::createVerBars($DataSet, $spremenljivka, 1);
break;
// Sestavljeni stolpci - navpicni
case 2:
$Test = self::createVerStructBars($DataSet, $spremenljivka);
break;
// Sestavljeni stolpci - vodoravni
case 3:
$Test = self::createHorStructBars($DataSet, $spremenljivka);
break;
// Radar
case 4:
$Test = self::createRadar($DataSet, $spremenljivka, 1);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
if($settings['base'] == 1)
echo '(r = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
else
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
echo '<div class="chart_settings printHide iconHide">';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
# izpišemo še tekstovne odgovore za polja drugo
$_answersOther = $DataSet->GetOther();
if (count($_answersOther) > 0 && SurveyAnalysis::$_FILTRED_OTHER) {
foreach ($_answersOther AS $oAnswers) {
$spid = $oAnswers['spid'];
$_variable = SurveyAnalysis::$_HEADERS[$spid]['grids'][$oAnswers['gid']]['variables'][$oAnswers['vid']];
$_sequence = $_variable['sequence'];
if(is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0){
echo '<div id="chart_other_text_'.$spid.'_loop_'.self::$current_loop.'" class="chart_other_text">';
self::outputOtherAnswers($oAnswers);
echo '</div>';
echo '<div class="chart_settings other_settings printHide iconHide">';
self::displayOtherSettings($spid);
echo '</div>';
}
}
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
}
}
echo '</div>';
}
static function displayVsotaChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Ce smo ravnokar preklopili (je session se prazen) na pieChart vklopimo sortiranje
if(self::$current_loop != 'undefined'){
if((self::$sessionData[$spid][self::$current_loop]['type'] != 0 && $settings['type'] == 0) || (self::$sessionData[$spid][self::$current_loop]['type'] != 5 && $settings['type'] == 5)){
$settings['sort'] = 1;
self::$settings['sort'] = 1;
}
}
else{
if((self::$sessionData[$spid]['type'] != 0 && $settings['type'] == 0) || (self::$sessionData[$spid]['type'] != 5 && $settings['type'] == 5)){
$settings['sort'] = 1;
self::$settings['sort'] = 1;
}
}
// Pri radarju ni sortiranja
if($settings['type'] == 4){
$settings['sort'] = 0;
self::$settings['sort'] = 0;
}
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
//$Cache->GetFromCache($ID,$DataSet->GetData());
// Ce se nimamo zgeneriranega grafa
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Pie chart - povprecja
case 0:
$Test = self::createPie($DataSet, $spremenljivka, $settings['show_legend']);
break;
// 3D Pie chart - povprecja
case 5:
$Test = self::create3DPie($DataSet, $spremenljivka, $settings['show_legend']);
break;
// Line chart
case 1:
$Test = self::createLine($DataSet, $spremenljivka);
break;
// Horizontal bars
case 2:
$Test = self::createHorBars($DataSet, $spremenljivka);
break;
// Vertical bars
case 3:
$Test = self::createVerBars($DataSet, $spremenljivka);
break;
// Radar
case 4:
$Test = self::createRadar($DataSet, $spremenljivka);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
echo '<div class="chart_settings printHide iconHide">';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
echo '</div>';
}
static function displayRankingChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
//$Cache->GetFromCache($ID,$DataSet->GetData());
// Ce se nimamo zgeneriranega grafa
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Povprecja
case 0:
$Test = self::createHorBars($DataSet, $spremenljivka, $legend=0, $settings['noFixedScale']/*$fixedScale=1*/);
break;
// Sestavljeni stolpci - navpicni
case 1:
$Test = self::createHorStructBars($DataSet, $spremenljivka);
break;
// Sestavljeni stolpci - vodoravni
case 2:
$Test = self::createVerStructBars($DataSet, $spremenljivka);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
echo '<div class="chart_settings printHide iconHide">';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
echo '</div>';
}
static function displayMultinumberChart($spid, $settings, $refresh=0){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, $settings);
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
if($DataSet == 0){
self::displayEmptyWarning($spid);
return;
}
// ni variabel v vprasanju preskocimo graf
if($DataSet == -1){
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'_loop_'.self::$current_loop.'"></div>';
// Cache
$Cache = new pCache(dirname(__FILE__).'/../../pChart/Cache/');
$ID = self::generateChartId($spid, $settings, $DataSet->GetNumerus());
// Ce se nimamo zgeneriranega grafa
$refresh = (isset($_GET['refresh'])) ? $_GET['refresh'] : $refresh;
if( (!$Cache->isInCache($ID, $DataSet->GetData())) || $refresh == 1 ){
switch($settings['type']){
// Povprecja - radar
case 0:
$Test = self::createRadar($DataSet, $spremenljivka, 1);
break;
// Povprecja - vertikalni stolpci
case 1:
$Test = self::createVerBars($DataSet, $spremenljivka, 1);
break;
// Povprecja - horizontalni stolpci
case 2:
$Test = self::createHorBars($DataSet, $spremenljivka, 1);
break;
// Povprecja - linijski graf
case 3:
$Test = self::createLine($DataSet, $spremenljivka, 1);
break;
}
// Shranimo v cache
$Cache->WriteToCache($ID,$DataSet->GetData(),$Test);
}
// dobimo ime slike c cache-u
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
if (self::$isArchive == false) {
$imgPath = 'pChart/Cache/'.$imgName;
} else {
$imgPath = SAA_FOLDER.'/pChart/'.self::$anketa.'_'.self::$chartArchiveTime.'_'.$imgName;
copy('pChart/Cache/'.$imgName, $imgPath);
}
$imgUrl = self::$baseImageUrl . $imgPath;
// zapisemo ime slike v session za izvoze
$settings['name'] = $imgName;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title;
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
echo '<span class="numerus">';
echo '(n = '.$DataSet->GetNumerus()/*.self::$numerusText*/.')';
echo '</span>';
}
echo '</div>';
echo '<div class="chart_img" title="'.$lang['srv_chart_editirajspremenljivko'].'" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');" style="cursor:pointer">';
// dodamo timestamp ker browser shrani sliko v cache in jo v dolocenih primerih ajaxa ne refresha
echo '<img src="'.$imgUrl.'?'.time().'" />';
echo '</div>';
echo '<div class="chart_settings printHide iconHide">';
self::displaySingleSettings($spid, $settings);
echo '</div>';
// ce imamo vklopljen nuimerus pod grafom
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 3)
self::displayBottomChartInfo($DataSet, $spremenljivka);
if (self::$returnChartAsHtml == false) {
flush(); ob_flush();
}
# izpišemo še tekstovne odgovore za polja drugo
$_answersOther = $DataSet->GetOther();
if (count($_answersOther) > 0 && SurveyAnalysis::$_FILTRED_OTHER) {
foreach ($_answersOther AS $oAnswers) {
$spid = $oAnswers['spid'];
$_variable = SurveyAnalysis::$_HEADERS[$spid]['grids'][$oAnswers['gid']]['variables'][$oAnswers['vid']];
$_sequence = $_variable['sequence'];
if(is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0){
echo '<div id="chart_other_text_'.$spid.'_loop_'.self::$current_loop.'" class="chart_other_text">';
self::outputOtherAnswers($oAnswers);
echo '</div>';
echo '<div class="chart_settings other_settings printHide iconHide">';
self::displayOtherSettings($spid);
echo '</div>';
}
}
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
}
}
echo '</div>';
}
// Default nastavitve grafov
public static function getDefaultSettings(){
$colors = array_fill(0, 6, '');
$limits = array('advanced_settings' => 0);
$settings = array(
'type' => 0, // tip grafa
'sort' => 0, // sortiranje po velikosti (0->brez, 1->padajoce, 2->narascajoce)
// ali MG (0->brez, 1->kategorije (trenutno), 2->povprecje, 3->prva ketegorija)
'value_type' => 0, // tip vrednosti (veljavni, frekvence, procenti...)
'base' => 0, // checkbox / multicheckbox osnova (enote / navedbe)
'show_legend' => 0, // prikaz legende
'scale_limit' => 1, // zacni skalo z 0 / z najmanjso vrednostjo pri numericih ALI prikazi desno skalo pri semanticnem diferencialu
'interval' => 10, // stevilo intervalov pri numericih
'min' => '0', // minimalna vrednost po kateri delamo intervale pri numericih (max-min)/interval
'max' => '', // maximalna vrednost po kateri delamo intervale pri numericih (max-min)/interval
'open_up' => 0, // polodprt interval navzgor (ce so vrednosti nad max) pri numericih
'open_down' => 0, // polodprt interval navzdol (ce so vrednosti pod min) pri numericih
'limits' => $limits, // napredne meje number grafov (custom intervali) - ce je $limits['advanced_settings']==1
'radar_type' => 0, // tip radarja (crte / liki)
'radar_scale' => 0, // skala pri radarju (na osi / diagonalno)
'3d_pie' => 0, // tip kroznega grafa (navaden / 3d)
'labelWidth' => 50, // sirina label (50% / 20%)
'barLabel' => 1, // prikaz label v stolpicnih grafih
'barLabelSmall' => 1, // prikaz label pod 5% v stolpicnih grafih (zraven stolpca)
'rotate' => 0, // obrnjeni gridi in variable (pri vseh MG - multiradio, multinumber...)
'colors' => $colors, // custom barve grafa
'show_avg' => -1, // prikaz povprecja na grafu (samo pri ordinalnih radio)
'show_numerus' => 1, // prikaz numerusa na grafu
'otherType' => 0, // poravnava other tabel
'otherFreq' => 0, // izpis frekvenc v other tabeli
'hideEmptyVar' => 0, // ali izpuscamo prazne opcije brez odgovora (ce je nad 20 variabel -> default 1)
'noFixedScale' => 0, // ce izklopimo skalo ki se zacne z 1 (samo pri multigrid povprecjih in ranking povprecjih) ALI prikazi polno skalo pri checkboxu (ce je 1)
);
return $settings;
}
// Zgeneriramo ID grafa za hash
public static function generateChartId($spid, $settings, $numerus){
// ce posebej prizgemo legendo pri pie chartu
if($settings['show_legend'] == 1 && $settings['type'] == 2)
$legend = '_legend';
else
$legend = '';
$ID = self::$anketa.'_chart_'.$spid.'_mv_'.SurveyAnalysis::$missingProfileData['display_mv_type'];
foreach ($settings AS $key => $val) {
if($key == 'colors'){
$ID .= '_colors';
foreach ($val AS $colKey => $color){
$ID .= '_'.$color;
}
}
elseif($key != 'name')
$ID .= '_'.$key.'_'.$val;
}
$ID .= '_skin_'.self::$skin;
$ID .= '_numerus_'.$numerus.'_numerusText_'.SurveyDataSettingProfiles :: getSetting('chartNumerusText');
$ID .= '_chartAvgText_'.SurveyDataSettingProfiles :: getSetting('chartAvgText');
$ID .= '_pieZeros_'.SurveyDataSettingProfiles :: getSetting('chartPieZeros');
$ID .= '_chartFontSize_'.SurveyDataSettingProfiles :: getSetting('chartFontSize');
$ID .= '_hq_'.self::$quality;
return $ID;
}
// nastavimo prave barve ustrezne skinu
public static function setChartColors($chart, $skin){
// Ce nimmo posebej nastavljenih barv
if(self::$settings['colors'][0] == ''){
// ce je nastavljen globalen custom skin
if(is_numeric($skin)){
$skin = self::getCustomSkin($skin);
$colors = explode('_', $skin['colors']);
$count = 0;
foreach($colors as $color){
$rgb = self::html2rgb($color);
$chart->setColorPalette($count,$rgb[0],$rgb[1],$rgb[2]);
$chart->setColorPalette($count+7,$rgb[0]+50,$rgb[1]+50,$rgb[2]+50);
$chart->setColorPalette($count+14,$rgb[0]+100,$rgb[1]+100,$rgb[2]+100);
$count++;
}
}
// imamo nastavljenega enega od default skinov
else{
switch ($skin){
// nov 1ka default skin
case '1ka':
default:
$chart->setColorPalette(0,30,136,229);
$chart->setColorPalette(1,255,166,8);
$chart->setColorPalette(2,72,229,194);
$chart->setColorPalette(3,242,87,87);
$chart->setColorPalette(4,117,70,68);
$chart->setColorPalette(5,248,202,0);
$chart->setColorPalette(6,255,112,166);
$chart->setColorPalette(7,63,81,180);
$chart->setColorPalette(8,76,174,80);
$chart->setColorPalette(9,204,219,57);
$chart->setColorPalette(10,255,235,59);
$chart->setColorPalette(11,0,149,135);
$chart->setColorPalette(12,121,85,72);
$chart->setColorPalette(13,157,157,157);
$chart->setColorPalette(14,96,125,138);
$chart->setColorPalette(15,155,39,175);
$chart->setColorPalette(16,103,58,182);
$chart->setColorPalette(17,255,255,103);
$chart->setColorPalette(18,255,249,100);
$chart->setColorPalette(19,100,255,255);
$chart->setColorPalette(20,255,100,255);
break;
// zivahen skin
case 'lively':
$chart->setColorPalette(0,224,9,13);
$chart->setColorPalette(1,4,23,227);
$chart->setColorPalette(2,0,255,8);
$chart->setColorPalette(3,255,247,3);
$chart->setColorPalette(4,255,149,0);
$chart->setColorPalette(5,0,251,255);
$chart->setColorPalette(6,166,0,255);
$chart->setColorPalette(7,255,59,63);
$chart->setColorPalette(8,54,73,255);
$chart->setColorPalette(9,50,255,58);
$chart->setColorPalette(10,255,255,53);
$chart->setColorPalette(11,255,199,35);
$chart->setColorPalette(12,50,255,255);
$chart->setColorPalette(13,216,50,255);
$chart->setColorPalette(14,255,109,113);
$chart->setColorPalette(15,104,123,255);
$chart->setColorPalette(16,100,255,108);
$chart->setColorPalette(17,255,255,103);
$chart->setColorPalette(18,255,249,100);
$chart->setColorPalette(19,100,255,255);
$chart->setColorPalette(20,255,100,255);
break;
// blag skin
case 'mild':
$chart->setColorPalette(0,188,224,46);
$chart->setColorPalette(1,224,100,46);
$chart->setColorPalette(2,224,214,46);
$chart->setColorPalette(3,46,151,224);
$chart->setColorPalette(4,176,46,224);
$chart->setColorPalette(5,224,46,117);
$chart->setColorPalette(6,92,224,46);
$chart->setColorPalette(7,238,255,96);
$chart->setColorPalette(8,255,150,96);
$chart->setColorPalette(9,255,255,96);
$chart->setColorPalette(10,96,201,255);
$chart->setColorPalette(11,226,96,255);
$chart->setColorPalette(12,255,96,167);
$chart->setColorPalette(13,142,255,96);
$chart->setColorPalette(14,255,255,146);
$chart->setColorPalette(15,255,200,146);
$chart->setColorPalette(16,255,255,146);
$chart->setColorPalette(17,146,251,255);
$chart->setColorPalette(18,255,146,255);
$chart->setColorPalette(19,255,146,217);
$chart->setColorPalette(20,192,255,146);
break;
// Office skin
case 'office':
$chart->setColorPalette(0,79,129,189);
$chart->setColorPalette(1,192,80,77);
$chart->setColorPalette(2,155,187,89);
$chart->setColorPalette(3,128,100,162);
$chart->setColorPalette(4,75,172,198);
$chart->setColorPalette(5,247,150,70);
$chart->setColorPalette(6,146,169,207);
$chart->setColorPalette(7,129,179,239);
$chart->setColorPalette(8,242,130,127);
$chart->setColorPalette(9,205,237,139);
$chart->setColorPalette(10,178,150,212);
$chart->setColorPalette(11,125,222,248);
$chart->setColorPalette(12,255,200,120);
$chart->setColorPalette(13,196,219,255);
$chart->setColorPalette(14,179,229,255);
$chart->setColorPalette(15,255,180,177);
$chart->setColorPalette(16,255,255,189);
$chart->setColorPalette(17,228,200,255);
$chart->setColorPalette(18,175,255,255);
$chart->setColorPalette(19,255,250,170);
$chart->setColorPalette(20,226,255,255);
break;
// Pastel skin
case 'pastel':
$chart->setColorPalette(0,121,159,11);
$chart->setColorPalette(1,215,161,37);
$chart->setColorPalette(2,146,100,190);
$chart->setColorPalette(3,24,132,132);
$chart->setColorPalette(4,76,198,139);
$chart->setColorPalette(5,138,136,35);
$chart->setColorPalette(6,108,153,210);
$chart->setColorPalette(7,171,209,61);
$chart->setColorPalette(8,255,211,87);
$chart->setColorPalette(9,196,150,240);
$chart->setColorPalette(10,74,182,182);
$chart->setColorPalette(11,126,255,189);
$chart->setColorPalette(12,188,186,85);
$chart->setColorPalette(13,158,203,255);
$chart->setColorPalette(14,221,255,111);
$chart->setColorPalette(15,255,255,137);
$chart->setColorPalette(16,246,200,255);
$chart->setColorPalette(17,124,232,255);
$chart->setColorPalette(18,176,255,239);
$chart->setColorPalette(19,238,236,135);
$chart->setColorPalette(20,208,253,255);
break;
// zelen skin
case 'green':
$chart->createColorGradientPalette(168,188,56,248,255,136,5);
$chart->setColorPalette(5,255,255,0);
$chart->setColorPalette(6,232,3,182);
$chart->setColorPalette(7,$chart->Palette['0']['R'],$chart->Palette['0']['G'],$chart->Palette['0']['B']);
$chart->setColorPalette(8,$chart->Palette['1']['R'],$chart->Palette['1']['G'],$chart->Palette['1']['B']);
$chart->setColorPalette(9,$chart->Palette['2']['R'],$chart->Palette['2']['G'],$chart->Palette['2']['B']);
$chart->setColorPalette(10,$chart->Palette['3']['R'],$chart->Palette['3']['G'],$chart->Palette['3']['B']);
$chart->setColorPalette(11,$chart->Palette['4']['R'],$chart->Palette['4']['G'],$chart->Palette['4']['B']);
$chart->setColorPalette(12,$chart->Palette['5']['R'],$chart->Palette['5']['G'],$chart->Palette['5']['B']);
$chart->setColorPalette(13,$chart->Palette['6']['R'],$chart->Palette['6']['G'],$chart->Palette['6']['B']);
$chart->setColorPalette(14,$chart->Palette['0']['R'],$chart->Palette['0']['G'],$chart->Palette['0']['B']);
$chart->setColorPalette(15,$chart->Palette['1']['R'],$chart->Palette['1']['G'],$chart->Palette['1']['B']);
$chart->setColorPalette(16,$chart->Palette['2']['R'],$chart->Palette['2']['G'],$chart->Palette['2']['B']);
$chart->setColorPalette(17,$chart->Palette['3']['R'],$chart->Palette['3']['G'],$chart->Palette['3']['B']);
$chart->setColorPalette(18,$chart->Palette['4']['R'],$chart->Palette['4']['G'],$chart->Palette['4']['B']);
$chart->setColorPalette(19,$chart->Palette['5']['R'],$chart->Palette['5']['G'],$chart->Palette['5']['B']);
$chart->setColorPalette(20,$chart->Palette['6']['R'],$chart->Palette['6']['G'],$chart->Palette['6']['B']);
break;
// moder skin
case 'blue':
//$chart->createColorGradientPalette(82,124,148,174,216,240,5);
$chart->setColorPalette(0,30,136,229);
$chart->setColorPalette(1,59,151,234);
$chart->setColorPalette(2,110,166,238);
$chart->setColorPalette(3,137,181,243);
$chart->setColorPalette(4,162,196,247);
$chart->setColorPalette(5,186,211,251);
$chart->setColorPalette(6,209,227,255);
$chart->setColorPalette(7,$chart->Palette['0']['R'],$chart->Palette['0']['G'],$chart->Palette['0']['B']);
$chart->setColorPalette(8,$chart->Palette['1']['R'],$chart->Palette['1']['G'],$chart->Palette['1']['B']);
$chart->setColorPalette(9,$chart->Palette['2']['R'],$chart->Palette['2']['G'],$chart->Palette['2']['B']);
$chart->setColorPalette(10,$chart->Palette['3']['R'],$chart->Palette['3']['G'],$chart->Palette['3']['B']);
$chart->setColorPalette(11,$chart->Palette['4']['R'],$chart->Palette['4']['G'],$chart->Palette['4']['B']);
$chart->setColorPalette(12,$chart->Palette['5']['R'],$chart->Palette['5']['G'],$chart->Palette['5']['B']);
$chart->setColorPalette(13,$chart->Palette['6']['R'],$chart->Palette['6']['G'],$chart->Palette['6']['B']);
$chart->setColorPalette(14,$chart->Palette['0']['R'],$chart->Palette['0']['G'],$chart->Palette['0']['B']);
$chart->setColorPalette(15,$chart->Palette['1']['R'],$chart->Palette['1']['G'],$chart->Palette['1']['B']);
$chart->setColorPalette(16,$chart->Palette['2']['R'],$chart->Palette['2']['G'],$chart->Palette['2']['B']);
$chart->setColorPalette(17,$chart->Palette['3']['R'],$chart->Palette['3']['G'],$chart->Palette['3']['B']);
$chart->setColorPalette(18,$chart->Palette['4']['R'],$chart->Palette['4']['G'],$chart->Palette['4']['B']);
$chart->setColorPalette(19,$chart->Palette['5']['R'],$chart->Palette['5']['G'],$chart->Palette['5']['B']);
$chart->setColorPalette(20,$chart->Palette['6']['R'],$chart->Palette['6']['G'],$chart->Palette['6']['B']);
break;
// rdeč skin
case 'red':
$chart->createColorGradientPalette(255,0,0,80,10,10,5);
$chart->setColorPalette(5,255,255,0);
$chart->setColorPalette(6,232,3,182);
$chart->setColorPalette(7,$chart->Palette['0']['R'],$chart->Palette['0']['G'],$chart->Palette['0']['B']);
$chart->setColorPalette(8,$chart->Palette['1']['R'],$chart->Palette['1']['G'],$chart->Palette['1']['B']);
$chart->setColorPalette(9,$chart->Palette['2']['R'],$chart->Palette['2']['G'],$chart->Palette['2']['B']);
$chart->setColorPalette(10,$chart->Palette['3']['R'],$chart->Palette['3']['G'],$chart->Palette['3']['B']);
$chart->setColorPalette(11,$chart->Palette['4']['R'],$chart->Palette['4']['G'],$chart->Palette['4']['B']);
$chart->setColorPalette(12,$chart->Palette['5']['R'],$chart->Palette['5']['G'],$chart->Palette['5']['B']);
$chart->setColorPalette(13,$chart->Palette['6']['R'],$chart->Palette['6']['G'],$chart->Palette['6']['B']);
$chart->setColorPalette(14,$chart->Palette['0']['R'],$chart->Palette['0']['G'],$chart->Palette['0']['B']);
$chart->setColorPalette(15,$chart->Palette['1']['R'],$chart->Palette['1']['G'],$chart->Palette['1']['B']);
$chart->setColorPalette(16,$chart->Palette['2']['R'],$chart->Palette['2']['G'],$chart->Palette['2']['B']);
$chart->setColorPalette(17,$chart->Palette['3']['R'],$chart->Palette['3']['G'],$chart->Palette['3']['B']);
$chart->setColorPalette(18,$chart->Palette['4']['R'],$chart->Palette['4']['G'],$chart->Palette['4']['B']);
$chart->setColorPalette(19,$chart->Palette['5']['R'],$chart->Palette['5']['G'],$chart->Palette['5']['B']);
$chart->setColorPalette(20,$chart->Palette['6']['R'],$chart->Palette['6']['G'],$chart->Palette['6']['B']);
break;
// skin za vec kot 5 moznosti
case 'multi':
$chart->setColorPalette(0,140,0,0);
$chart->setColorPalette(1,240,8,0);
$chart->setColorPalette(2,255,138,130);
$chart->setColorPalette(3,242,196,200);
$chart->setColorPalette(4,11,3,135);
$chart->setColorPalette(5,4,0,252);
$chart->setColorPalette(6,151,148,242);
$chart->setColorPalette(7,0,133,31);
$chart->setColorPalette(8,24,217,3);
$chart->setColorPalette(9,139,245,157);
$chart->setColorPalette(10,237,202,45);
$chart->setColorPalette(11,253,255,120);
$chart->setColorPalette(12,156,0,125);
$chart->setColorPalette(13,255,0,246);
$chart->setColorPalette(14,242,3,162);
$chart->setColorPalette(15,237,154,216);
$chart->setColorPalette(16,0,123,145);
$chart->setColorPalette(17,0,204,250);
$chart->setColorPalette(18,174,238,245);
$chart->setColorPalette(19,0,255,200);
$chart->setColorPalette(20,255,111,0);
$chart->setColorPalette(21,255,162,0);
$chart->setColorPalette(22,255,201,120);
$chart->setColorPalette(23,161,92,133);
$chart->setColorPalette(24,205,159,245);
$chart->setColorPalette(25,179,245,103);
$chart->setColorPalette(26,135,171,108);
$chart->setColorPalette(27,73,132,145);
$chart->setColorPalette(28,70,96,99);
$chart->setColorPalette(29,156,95,103);
break;
}
}
}
// Graf ima posebej nastavljen skin
else{
for($i=0; $i<7; $i++){
$color = self::$settings['colors'][$i];
$rgb = self::html2rgb($color);
$chart->setColorPalette($i,$rgb[0],$rgb[1],$rgb[2]);
$chart->setColorPalette($i+7,$rgb[0]+50,$rgb[1]+50,$rgb[2]+50);
$chart->setColorPalette($i+14,$rgb[0]+100,$rgb[1]+100,$rgb[2]+100);
}
}
return $chart;
}
public static function getDefaultColors($skin){
// ce je nastavljen globalen custom skin
if(is_numeric($skin)){
$skin = self::getCustomSkin($skin);
$default_colors = explode('_', $skin['colors']);
}
else{
switch($skin){
case '1ka':
$default_colors = array(0=>'#1e88e5', 1=>'#ffa608', 2=>'#48e5c2', 3=>'#f25757', 4=>'#754668', 5=>'#f8ca00', 6=>'#ff70a6');
break;
case 'lively':
$default_colors = array(0=>'#e9090d', 1=>'#0417e3', 2=>'#00ff08', 3=>'#fff703', 4=>'#ff9500', 5=>'#00fbff', 6=>'#a600ff');
break;
case 'mild':
$default_colors = array(0=>'#bce02e', 1=>'#e0642e', 2=>'#e0d62e', 3=>'#2e97e0', 4=>'#b02ee0', 5=>'#00fbff', 6=>'#5ce02e');
break;
case 'office':
$default_colors = array(0=>'#4f81bd', 1=>'#c0504d', 2=>'#9bbb59', 3=>'#8064a2', 4=>'#4bacc6', 5=>'#f79646', 6=>'#92a9cf');
break;
case 'pastel':
$default_colors = array(0=>'#799f0b', 1=>'#d7a125', 2=>'#9264be', 3=>'#188484', 4=>'#4cc68b', 5=>'#8a8823', 6=>'#6c99d2');
break;
case 'green':
$default_colors = array(0=>'#a8bc38', 1=>'#b8c948', 2=>'#c8d658', 3=>'#d8e468', 4=>'#e8e178', 5=>'#ffff00', 6=>'#e803b6');
break;
case 'blue':
$default_colors = array(0=>'#1e88e5', 1=>'#4f97ea', 2=>'#6ea6ee', 3=>'#89b5f3', 4=>'#a2c4f7', 5=>'#bad3fb', 6=>'#d1e3ff');
break;
case 'red':
$default_colors = array(0=>'#ff0000', 1=>'#dc0202', 2=>'#b90404', 3=>'#960606', 4=>'#730808', 5=>'#ffff00', 6=>'#e803b6');
break;
case 'multi':
$default_colors = array(0=>'#8c0000', 1=>'#f00800', 2=>'#ff8a82', 3=>'#f2c4c8', 4=>'#0b0387', 5=>'#0400fc', 6=>'#9794f2');
break;
}
}
return $default_colors;
}
public static function html2rgb($color){
if ($color[0] == '#')
$color = substr($color, 1);
if (strlen($color) == 6)
list($r, $g, $b) = array($color[0].$color[1],
$color[2].$color[3],
$color[4].$color[5]);
elseif (strlen($color) == 3)
list($r, $g, $b) = array($color[0].$color[0], $color[1].$color[1], $color[2].$color[2]);
else
return false;
$r = hexdec($r);
$g = hexdec($g);
$b = hexdec($b);
return array($r, $g, $b);
}
// Napolnimo podatke za posamezen graf
public static function getDataSet($spid, $settings){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
$dataArray = array();
$fullPercent = 0;
self::$numerusText = '';
$_answersOther = array();
$emptyData = true;
// napolnimo podatke za DROPDOWN, ki ima samo numeric variable
if($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)){
$dataArray = array();
$i=0;
$N = 0;
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$legendTitle = '';
$_variables_count = count($grid['variables']);
$avg_count = 0;
$avg_sum = 0;
# dodamo dodatne vrstice z albelami grida
if ($_variables_count > 0 )
foreach ($grid['variables'] AS $vid => $variable ){
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$_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) {
$N = SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'];
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;
$tempArray = array();
$tempArray['freq'] = $vAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_valid;
$tempArray['key'] = $vkey;
// ce je znotraj nastavljenih mej
if( ($settings['max'] == '' || ($settings['open_up'] == 1 || (int)$vAnswer['text'] <= (int)$settings['max']))
&& ($settings['min'] == '' || ($settings['open_down'] == 1 || (int)$vAnswer['text'] >= (int)$settings['min'])) ){
$avg_count += $vAnswer['cnt'];
$avg_sum += $vAnswer['cnt'] * (int)$vAnswer['text'];
}
else{
$N -= $vAnswer['cnt'];
}
// nastavimo da graf ni prazen
$emptyData = false;
$text = $spremenljivka['edit_graf'] == 0 ? $vAnswer['text'] : $vAnswer['text_graf'];
$tempArray['variable'] = $text;
$dataArray[] = $tempArray;
}
}
}
}
}
$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) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$tempArray = array();
$tempArray['freq'] = $iAnswer['cnt'];
//$N = ($settings['value_type'] == 0) ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_invalid;
$tempArray['key'] = $ikey;
$tempArray['variable'] = $iAnswer['text'];
$dataArray[] = $tempArray;
}
}
}
$i++;
}
// zascita pred praznimi vprasanji (brez variabel)
if($_variables_count == 0)
return -1;
//polnimo podatke
$DataSet = new pData;
//nastavimo numerus, ki se izpise pod legendo
$N = ((int)$N > 0) ? $N : 0;
$DataSet->SetNumerus($N);
// nastavimo POVPRECJE
$avg = ($avg_count > 0) ? $avg_sum / $avg_count : 0;
$DataSet->SetAverage(round($avg, 1));
// Sortiramo podatke - ce imamo izpis vsakega vnosa posebej sortiramo po freq, ce pa po skupinah pa po key
if($settings['type'] > 4){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['key'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
elseif($settings['sort'] == 1){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_DESC, $dataArray);
}
elseif($settings['sort'] == 2){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
$max = (int)$dataArray[count($dataArray,0)-1]['variable'];
$min = (int)$dataArray[0]['variable'];
$stIntervalov = ((int)$settings['interval'] == 0 ? 10 : (int)$settings['interval']);
// Ce imamo napredno napredne intervale
if($settings['limits']['advanced_settings'] == 1){
$limits = $settings['limits'];
$max = $limits['interval_'. ($stIntervalov-1) ]['max'];
$min = $limits['interval_0']['min'];
}
// Ce imamo osnovne intervale
else{
// Nastavimo custom zgornjo mejo skale (razen v primeru ko ne ignoriramo vrednosti ki padejo ven in ce je max vnos vecji od nastavljenega max)
if($settings['max'] != '' /*&& ($settings['open_up'] == 0 || (int)$settings['max'] > $max)*/)
$max = (int)$settings['max'];
// Nastavimo custom spodnjo mejo skale (razen v primeru ko ne ignoriramo vrednosti ki padejo ven in ce je min vnos manjsi od nastavljenega min)
if($settings['min'] != '' /*&& ($settings['open_down'] == 0 || (int)$settings['min'] < $min)*/)
$min = (int)$settings['min'];
$stIntervalov = ($stIntervalov == -1 ? $max-$min : $stIntervalov);
$part = ($max-$min) / $stIntervalov;
$part = ($part < 1) ? 1 : round($part);
}
// Poberemo podatke v posamezne tabele - po intervalih oz normalno
if($settings['type'] > 4){
// Ce imamo polodprt intrerval navzdol
if($settings['open_down'] == 1){
$count = 0;
$percent = 0;
$valid = 0;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i]['variable'] < $min){
$count += $dataArray[$i]['freq'];
$percent += $dataArray[$i]['percent'];
$valid += $dataArray[$i]['valid'];
}
}
// vnesemo podatke za interval
$vrednosti[] = $count;
$vrednostiPercent[] = $percent;
$vrednostiValid[] = $valid;
$vrednostiKey[] = $lang['srv_chart_less'].' '.$min;
$vrednostiVariable[] = $lang['srv_chart_less'].' '.$min;
}
// loop cez intervale - default 10
for($interval=0; $interval<$stIntervalov; $interval++){
$count = 0;
$percent = 0;
$valid = 0;
// Ce imamo napredno napredne intervale (custom dolocene)
if($settings['limits']['advanced_settings'] == 1){
$maxVal = $limits['interval_'.$interval]['max'];
$minVal = $limits['interval_'.$interval]['min'];
}
// Ce imamo osnovne intervale (racunamo sproti)
else{
$maxVal = ($interval < ($stIntervalov-1) ? $min + (($interval+1) * $part) : $max);
$minVal = ($interval > 0 ? $min + ($interval * $part) + 1 : $min);
}
// prekinemo ce zaradi zaokrozevanja pride do min > max
if($minVal > $maxVal)
break;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i]['variable'] <= $maxVal && $dataArray[$i]['variable'] >= $minVal && $dataArray[$i]['field'] == 0){
$count += $dataArray[$i]['freq'];
$percent += $dataArray[$i]['percent'];
$valid += $dataArray[$i]['valid'];
}
}
// vnesemo podatke za interval
$vrednosti[] = $count;
$vrednostiPercent[] = $percent;
$vrednostiValid[] = $valid;
// Ce imamo napredne intervale (custom dolocene labele)
if($settings['limits']['advanced_settings'] == 1 && $limits['interval_'.$interval]['label'] != ''){
$vrednostiKey[] = $limits['interval_'.$interval]['label'];
$vrednostiVariable[] = $limits['interval_'.$interval]['label'];
}
elseif($minVal == $maxVal){
$vrednostiKey[] = $minVal;
$vrednostiVariable[] = $minVal;
}
else{
$vrednostiKey[] = $minVal.'-'.$maxVal;
$vrednostiVariable[] = $minVal.'-'.$maxVal;
}
}
// Ce imamo polodprt intrerval navzgor
if($settings['open_up'] == 1){
$count = 0;
$percent = 0;
$valid = 0;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i]['variable'] > $max){
$count += $dataArray[$i]['freq'];
$percent += $dataArray[$i]['percent'];
$valid += $dataArray[$i]['valid'];
}
}
// vnesemo podatke za interval
$vrednosti[] = $count;
$vrednostiPercent[] = $percent;
$vrednostiValid[] = $valid;
$vrednostiKey[] = $lang['srv_chart_more'].' '.$max;
$vrednostiVariable[] = $lang['srv_chart_more'].' '.$max;
}
}
else{
for($i=0; $i<count($dataArray,0); $i++){
if($dataArray[$i]['field'] == 0){
$vrednosti[] = $dataArray[$i]['freq'];
$vrednostiPercent[] = $dataArray[$i]['percent'];
$vrednostiValid[] = $dataArray[$i]['valid'];
}
else{
$vrednosti[] = 0;
$vrednostiPercent[] = 0;
$vrednostiValid[] = 0;
}
$vrednostiKey[] = $dataArray[$i]['key'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
}
}
if(count($vrednosti) > 0){
if($settings['value_type'] == 0){
$DataSet->AddPoint($vrednosti,'Vrednosti');
}
elseif($settings['value_type'] == 1){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti');
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiValid,'Vrednosti');
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti');
$DataSet->AddSerie('Vrednosti');
$var_title[0] = ($var_title[0] == '' ? 'Vrednosti' : $var_title[0]);
$DataSet->SetSerieName($var_title[0],'Vrednosti');
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,"Variable");
//$DataSet->AddPoint($vrednostiKey,"Variable");
$DataSet->SetAbsciseLabelSerie("Variable");
if($settings['value_type'] > 0){
$DataSet->SetYAxisUnit("%");
$DataSet->SetYAxisFormat("number");
}
}
// napolnimo podatke za RADIO, DROPDOWN
elseif($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3){
$dataArray = array();
$i=0;
$N = 0;
$N_average = 0;
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$legendTitle = '';
$_variables_count = count($grid['variables']);
# dodamo dodatne vrstice z albelami grida
if ($_variables_count > 0 )
foreach ($grid['variables'] AS $vid => $variable ){
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$_sequence = $variable['sequence']; # id kolone z podatki
// Ce skrivamo prazne vrednosti
if($settings['hideEmptyVar'] == 1){
foreach (SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] AS $key => $valid) {
if ((int)$valid['cnt'] == 0) {
unset (SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][$key]);
}
}
}
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) {
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;
$tempArray = array();
$tempArray['freq'] = $vAnswer['cnt'];
// nastavimo da graf ni prazen
if($vAnswer['cnt'] > 0)
$emptyData = false;
$N = ($settings['value_type'] == 0) ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_valid;
$tempArray['key'] = $vkey;
$text = $spremenljivka['edit_graf'] == 0 ? $vAnswer['text'] : $vAnswer['text_graf'];
$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))
$dataArray[] = $tempArray;
// Ce je ordinalen racunamo povprecje
if($spremenljivka['skala'] != 1){
$xi = (int)$vkey;
$fi = (int)$vAnswer['cnt'];
$sum_xi_fi += $xi * $fi;
$N_average += $fi;
}
}
}
}
}
// polnimo array za drugo
else{
$_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) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$tempArray = array();
$tempArray['freq'] = $iAnswer['cnt'];
$N = ($settings['value_type'] == 0) ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_invalid;
$tempArray['key'] = $ikey;
$tempArray['variable'] = $iAnswer['text'];
$fullPercent += $tempArray['percent'];
// ce imamo vklopljeno da izpuscamo 0 in prikazujemo pie chart spustimo nicelne vrednosti
if($_invalid != 0 || SurveyDataSettingProfiles :: getSetting('chartPieZeros') == 1 || ($settings['type'] != 2 && $settings['type'] != 8))
$dataArray[] = $tempArray;
}
}
}
$i++;
}
// zascita pred praznimi vprasanji (brez variabel)
if($_variables_count == 0)
return -1;
//polnimo podatke
$DataSet = new pData;
//nastavimo numerus, ki se izpise pod legendo
$N = ((int)$N > 0) ? $N : 0;
$DataSet->SetNumerus($N);
self::$numerusText = ($settings['value_type'] == 0) ? ' ('.$lang['srv_analiza_frekvence_titleVeljavni'].')' : '';
//nastavimo povprecje ce je ordinalen
if($spremenljivka['skala'] != 1){
$avg = ($N_average > 0) ? $sum_xi_fi / $N_average : 0;
$DataSet->SetAverage(round($avg, 1));
}
// Sortiramo podatke ce je potrebno
if($settings['sort'] == 1){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_DESC, $dataArray);
}
elseif($settings['sort'] == 2){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
// Poberemo podatke v posamezne tabele
for($i=0; $i<count($dataArray,0); $i++){
$vrednosti[] = $dataArray[$i]['freq'];
$vrednostiPercent[] = $dataArray[$i]['percent'];
$vrednostiValid[] = $dataArray[$i]['valid'];
$vrednostiKey[] = $dataArray[$i]['key'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
}
if(is_countable($vrednosti) && count($vrednosti) > 0){
if($settings['type'] < 3 || $settings['type'] == 8){
if($settings['value_type'] == 1){
$DataSet->AddPoint($vrednosti,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
$DataSet->AddSerie('Vrednosti');
$DataSet->SetSerieName('Frekvence','Vrednosti');
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,"Variable");
//$DataSet->AddPoint($vrednostiKey,"Variable");
}
// Graf povprecja
elseif($settings['type'] == 9){
$DataSet->AddPoint(round($avg, 1),'Vrednosti');
$DataSet->AddSerie('Vrednosti');
$DataSet->SetSerieName('Frekvence','Vrednosti');
}
else{
for($i=0; $i<count($vrednosti); $i++){
if($settings['value_type'] == 1){
$DataSet->AddPoint($vrednosti[$i],'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiPercent[$i],'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid[$i],'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
$DataSet->AddSerie('Vrednosti_'.$i);
$DataSet->SetSerieName($vrednostiVariable[$i],'Vrednosti_'.$i);
}
$DataSet->AddPoint('','Variable');
//$DataSet->AddPoint($vrednostiKey,"Variable");
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti');
$DataSet->SetAbsciseLabelSerie('Variable');
if($settings['value_type'] != 1 && $settings['type'] != 9){
$DataSet->SetYAxisUnit("%");
$DataSet->SetYAxisFormat("number");
}
}
// napolnimo podatke za CHECKBOX
elseif($spremenljivka['tip'] == 2){
$dataArray = array();
$fullPercent = 0;
$i=0;
$nValid = 0;
$nAll = 0;
$nNavedbe = 0;
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$legendTitle = '';
$_variables_count = count($grid['variables']);
# dodamo dodatne vrstice z albelami grida
if ($_variables_count > 0 )
foreach ($grid['variables'] AS $vid => $variable ){
if ($variable['text'] != true && $variable['other'] != true){
$_sequence = $variable['sequence']; # id kolone z podatki
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$vAnswer = (int)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;
$tempArray = array();
$tempArray['freq'] = (int)SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][1]['cnt'];
// nastavimo da graf ni prazen
if($tempArray['freq'] > 0)
$emptyData = false;
$nValid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > $nValid) ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : $nValid;
$nAll = SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
$nNavedbe += (int)SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][1]['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_valid;
$tempArray['key'] = $variable['variable'];
$text = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$tempArray['variable'] = $text;
$fullPercent += $tempArray['percent'];
// ce imamo vklopljeno da izpuscamo 0 spustimo nicelne vrednosti
if(($_valid != 0 || SurveyDataSettingProfiles :: getSetting('chartPieZeros') == 1 || ($settings['type'] != 2 && $settings['type'] != 7))
&& ((int)SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']['1']['cnt'] > 0) || $settings['hideEmptyVar'] == 0)
$dataArray[] = $tempArray;
}
// polnimo array za drugo
else{
$_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) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$tempArray = array();
$tempArray['freq'] = (int)$iAnswer['cnt'];
//$nValid = SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'];
$nAll = SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
$nNavedbe += (int)$iAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_invalid;
$tempArray['key'] = $ikey;
$tempArray['variable'] = $iAnswer['text'];
$fullPercent += $tempArray['percent'];
// ce imamo vklopljeno da izpuscamo 0 in prikazujemo pie chart spustimo nicelne vrednosti
if($_invalid != 0 || SurveyDataSettingProfiles :: getSetting('chartPieZeros') == 1 || ($settings['type'] != 2 && $settings['type'] != 7))
$dataArray[] = $tempArray;
}
}
}
$i++;
}
// zascita pred praznimi vprasanji (brez variabel)
if($_variables_count == 0)
return -1;
//polnimo podatke
$DataSet = new pData;
// Sortiramo podaatke ce je potrebno
if($settings['sort'] == 1){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_DESC, $dataArray);
}
elseif($settings['sort'] == 2){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
// Poberemo podatke v posamezne tabele
for($i=0; $i<count($dataArray,0); $i++){
if($settings['base'] == 0){
//nastavimo numerus, ki se izpise pod legendo
if($settings['value_type'] == 0){
$numerus = $nValid;
self::$numerusText = ' ('.$lang['srv_analiza_frekvence_titleVeljavni'].')';
}
else
$numerus = $nAll;
$numerus = ((int)$numerus > 0) ? $numerus : 0;
$DataSet->SetNumerus($numerus);
//$valid = ($fullPercent * $dataArray[$i]['percent'] > 0) ? 100 / $fullPercent * $dataArray[$i]['percent'] : 0;
$valid = ($nValid > 0 ) ? $dataArray[$i]['freq'] * 100 / $nValid : 0;
$vrednosti[] = $dataArray[$i]['freq'];
$vrednostiPercent[] = $dataArray[$i]['percent'];
$vrednostiValid[] = $valid;
$vrednostiKey[] = $dataArray[$i]['key'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
}
else{
//nastavimo numerus, ki se izpise pod legendo
$nNavedbe = ((int)$nNavedbe > 0) ? $nNavedbe : 0;
$DataSet->SetNumerus($nNavedbe);
self::$numerusText = ' ('.$lang['srv_analiza_opisne_arguments'].')';
$percent = ($fullPercent * $dataArray[$i]['percent'] > 0) ? 100 / $fullPercent * $dataArray[$i]['percent'] : 0;
$vrednosti[] = $dataArray[$i]['freq'];
$vrednostiPercent[] = $percent;
$vrednostiValid[] = $percent;
$vrednostiKey[] = $dataArray[$i]['key'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
}
}
if(count($vrednosti) > 0){
if($settings['type'] < 3 || $settings['type'] == 5 || $settings['type'] == 6 || $settings['type'] == 7){
if($settings['value_type'] == 1 || ($settings['value_type'] == 0 && $settings['base'] == 1)){
$DataSet->AddPoint($vrednosti,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
$DataSet->AddSerie('Vrednosti');
$DataSet->SetSerieName('Frekvence','Vrednosti');
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,"Variable");
//$DataSet->AddPoint($vrednostiKey,"Variable");
}
else{
for($i=0; $i<count($vrednosti); $i++){
if($settings['value_type'] == 1){
$DataSet->AddPoint($vrednosti[$i],'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiPercent[$i],'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid[$i],'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
$DataSet->AddSerie('Vrednosti_'.$i);
$DataSet->SetSerieName($vrednostiVariable[$i],'Vrednosti_'.$i);
}
$DataSet->AddPoint('','Variable');
//$DataSet->AddPoint($vrednostiKey,"Variable");
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti');
$DataSet->SetAbsciseLabelSerie('Variable');
if(($settings['value_type'] == 0 && $settings['base'] == 0) || $settings['value_type'] == 2){
$DataSet->SetYAxisUnit("%");
$DataSet->SetYAxisFormat("number");
}
}
// napolnimo podatke za DVOJNI MULTIGRID
elseif($spremenljivka['tip'] == 6 && $spremenljivka['enota'] == 3){
$DataSet = new pData;
$dataArray = array();
$fullPercent = array();
$gridCount=0;
$sql = sisplet_query("SELECT count(*) AS count FROM srv_grid WHERE spr_id='$spid'");
$row = mysqli_fetch_array($sql);
$_variables_count = $row['count'];
$nArray = array();
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
// Prva podtabela
if($grid['part'] == 1){
# dodamo dodatne vrstice z albelami grida
foreach ($grid['variables'] AS $vid => $variable ){
if ($variable['text'] != true && $variable['other'] != true){
$_sequence = $variable['sequence']; # id kolone z podatki
$sum_xi_fi=0;
$N = 0;
$div=0;
if (count($spremenljivka['options']) > 0) {
foreach ( $spremenljivka['options'] as $key => $kategorija) {
$xi = $key;
$fi = SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt'];
$sum_xi_fi += $xi * $fi ;
$N += $fi;
}
}
$avg = ($N > 0) ? $sum_xi_fi / $N : 0;
$nArray[] = $N;
$tempArray = array();
// nastavimo da graf ni prazen
if($N > 0)
$emptyData = false;
$avg = $avg < 1 ? 1 : $avg;
$tempArray['freq'] = $avg;
$tempArray['percent'] = $avg;
$tempArray['valid'] = $avg;
$tempArray['key'] = $variable['variable'];
$text = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$tempArray['variable'] = $text;
$dataArray[] = $tempArray;
}
// polnimo array za drugo
if ($variable['text'] == true || $variable['other'] == true){
$_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) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$tempArray = array();
$tempArray['freq'] = $iAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_invalid;
$tempArray['key'] = $ikey;
$tempArray['variable'] = $iAnswer['text'];
$tempArray['grid'] = $grid['variables'][0]['naslov'];
$dataArray[] = $tempArray;
}
}
}
$gridCount++;
}
else{
# dodamo dodatne vrstice z albelami grida
foreach ($grid['variables'] AS $vid => $variable ){
if ($variable['text'] != true && $variable['other'] != true){
$_sequence = $variable['sequence']; # id kolone z podatki
$sum_xi_fi=0;
$N = 0;
$div=0;
if (count($spremenljivka['options']) > 0) {
foreach ( $spremenljivka['options'] as $key => $kategorija) {
$xi = $key;
$fi = SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt'];
$sum_xi_fi += $xi * $fi ;
$N += $fi;
}
}
$avg = ($N > 0) ? $sum_xi_fi / $N : 0;
$nArray[] = $N;
$tempArray = array();
// nastavimo da graf ni prazen
if($N > 0)
$emptyData = false;
$avg = $avg < 1 ? 1 : $avg;
$tempArray['freq'] = $avg;
$tempArray['percent'] = $avg;
$tempArray['valid'] = $avg;
$tempArray['key'] = $variable['variable'];
$text = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$tempArray['variable'] = $text;
$dataArray2[] = $tempArray;
}
// polnimo array za drugo
if ($variable['text'] == true || $variable['other'] == true){
$_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) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$tempArray = array();
$tempArray['freq'] = $iAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_invalid;
$tempArray['key'] = $ikey;
$tempArray['variable'] = $iAnswer['text'];
$tempArray['grid'] = $grid['variables'][0]['naslov'];
$dataArray2[] = $tempArray;
}
}
}
}
}
// zascita pred praznimi vprasanji (brez variabel)
if(count($spremenljivka['grids']) == 0)
return -1;
//nastavimo numerus, ki se izpise pod legendo
rsort($nArray);
$numerus = ((int)$nArray[0] > 0) ? $nArray[0] : 0;
$DataSet->SetNumerus($numerus);
self::$numerusText = ($settings['value_type'] == 0) ? ' ('.$lang['srv_analiza_frekvence_titleVeljavni'].')' : '';
// Poberemo podatke v posamezne tabele
for($i=0; $i<count($dataArray,0); $i++){
$vrednosti[] = $dataArray[$i]['freq'];
$vrednostiPercent[] = $dataArray[$i]['percent'];
$vrednostiValid[] = $dataArray[$i]['valid'];
$vrednostiKey[] = $dataArray[$i]['key'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
}
for($i=0; $i<count($dataArray2,0); $i++){
$vrednosti2[] = $dataArray2[$i]['freq'];
$vrednostiPercent2[] = $dataArray2[$i]['percent'];
$vrednostiValid2[] = $dataArray2[$i]['valid'];
$vrednostiKey2[] = $dataArray2[$i]['key'];
$vrednostiVariable2[] = $dataArray2[$i]['variable'];
}
if(count($vrednosti) > 0){
if($settings['value_type'] == 1){
$DataSet->AddPoint($vrednosti,'Vrednosti');
$DataSet->AddPoint($vrednosti2,'Vrednosti2');
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti');
$DataSet->AddPoint($vrednostiPercent2,'Vrednosti2');
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid,'Vrednosti');
$DataSet->AddPoint($vrednostiValid2,'Vrednosti2');
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
else{
$DataSet->AddPoint(array(0),'Vrednosti');
$DataSet->AddPoint(array(0),'Vrednosti2');
}
$title1 = ($spremenljivka['double'][1]['subtitle'] != '') ? $spremenljivka['double'][1]['subtitle'] : 'Tabela 1';
$title2 = ($spremenljivka['double'][2]['subtitle'] != '') ? $spremenljivka['double'][2]['subtitle'] : 'Tabela 2';
$DataSet->AddSerie('Vrednosti');
$DataSet->SetSerieName($title1,'Vrednosti');
$DataSet->AddSerie('Vrednosti2');
$DataSet->SetSerieName($title2,'Vrednosti2');
$DataSet->AddPoint($vrednostiVariable,"Variable");
$DataSet->SetAbsciseLabelSerie("Variable");
}
// napolnimo podatke za MULTIGRID
elseif($spremenljivka['tip'] == 6){
$DataSet = new pData;
$dataArray = array();
$fullPercent = array();
$gridCount=0;
// Prefiltriramo other, ki so manjkajoci
$_invalidAnswers = SurveyAnalysis :: getInvalidAnswers (2);
$noOthers = (isset($_invalidAnswers['-99'])) ? ' AND other!=-99' : '';
$noOthers .= (isset($_invalidAnswers['-98'])) ? ' AND other!=-98' : '';
$noOthers .= (isset($_invalidAnswers['-97'])) ? ' AND other!=-97' : '';
// Napolnimo vse gride, ki jih obravnavamo
$stolpci = array();
$sqlG = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$spid' ".$noOthers." ");
while($rowG = mysqli_fetch_array($sqlG)){
$stolpci[] = $rowG;
}
$_variables_count = count($stolpci);
# odstranimo še možne nepotrebne zapise za multigride
if($settings['hideEmptyVar'] == 1){
$allGrids = count($spremenljivka['grids']);
if (count($spremenljivka['grids']) > 0) {
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$cntValidInGrid = 0;
# dodamo dodatne vrstice z labelami grida
if (count($grid['variables']) > 0 ) {
foreach ($grid['variables'] AS $vid => $variable ){
$_sequence = $variable['sequence']; # id kolone z podatki
foreach(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] AS $valid){
$cntValidInGrid+= (int)$valid['cnt'];
}
}
}
# preverjamo ali lahko prikazujemo podkategorije
if((int)$cntValidInGrid > 0) {
$gidsCanShow[$gid] = true;
} else {
$gidsCanShow[$gid] = false;
}
}
}
}
$nArray = 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)){
# dodamo dodatne vrstice z albelami grida
foreach ($grid['variables'] AS $vid => $variable ){
if ($variable['text'] != true && $variable['other'] != true){
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$_sequence = $variable['sequence']; # id kolone z podatki
// Ce izrisujemo graf za povprecja
if($settings['type'] == 0 || $settings['type'] == 5 || $settings['type'] == 6){
$sum_xi_fi=0;
$N = 0;
$div=0;
if (count($spremenljivka['options']) > 0) {
foreach ( $spremenljivka['options'] as $key => $kategorija) {
$xi = $key;
$fi = SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt'];
$sum_xi_fi += $xi * $fi ;
$N += $fi;
}
}
$avg = ($N > 0) ? $sum_xi_fi / $N : 0;
$nArray[] = $N;
$tempArray = array();
// nastavimo da graf ni prazen
if($N > 0)
$emptyData = false;
$avg = $avg < 1 ? 1 : $avg;
$tempArray['freq'] = $avg;
$tempArray['percent'] = $avg;
$tempArray['valid'] = $avg;
$tempArray['key'] = $variable['variable'];
$text = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$tempArray['variable'] = $text;
// dodamo vrednosti na desni ce imamo vklopljen diferencial
if($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']);
}
$dataArray[] = $tempArray;
}
// izpisujemo navaden graf (ne povprecij)
else{
if (is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0) {
foreach ($stolpci as $key => $stolpec) {
$vkey = $stolpec['vrstni_red'];
// imamo OTHER grid (ne vem, zavrnil...)
if($stolpec['other'] != 0){
$vAnswer = SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][$stolpec['other']];
if($vAnswer != null){
$_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;
$tempArray = array();
if($settings['value_type'] == 0){
$nArray[] = SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'];
}
else{
$nArray[] = SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
}
// nastavimo da graf ni prazen
if($vAnswer['cnt'] > 0)
$emptyData = false;
$tempArray['freq'] = $vAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_valid;
}
// ce missling (-99, -98...) nima nobene vrednosti potem ga ni v tabeli - zato ga rocno napolnimo
else{
$tempArray = array();
$nArray[] = 0;
$tempArray['freq'] = 0;
$tempArray['percent'] = 0;
$tempArray['valid'] = 0;
}
$tempArray['key'] = $vkey;
$text = $stolpec['other'].' '.$stolpec['naslov'];
$tempArray['variable'] = $text;
$textGrid = $spremenljivka['edit_graf'] == 0 ? $grid['variables'][0]['naslov'] : $grid['variables'][0]['naslov_graf'];
$tempArray['grid'] = $textGrid;
$dataArray[] = $tempArray;
$fullPercent[$gridCount] += $tempArray['percent'];
}
// imamo NAVADEN GRID
else{
$vAnswer = SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][$vkey];
$_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;
// Za sortiranje po povprecju
$sum_xi_fi=0;
$N = 0;
if (count($spremenljivka['options']) > 0) {
foreach ( $spremenljivka['options'] as $key => $kategorija) {
$xi = $key;
$fi = SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][$key]['cnt'];
$sum_xi_fi += $xi * $fi ;
$N += $fi;
}
}
$avg = ($N > 0) ? $sum_xi_fi / $N : 0;
$avg = $avg < 1 ? 1 : $avg;
$tempArray = array();
if($settings['value_type'] == 0){
$nArray[] = SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'];
}
else{
$nArray[] = SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
}
// nastavimo da graf ni prazen
if($vAnswer['cnt'] > 0)
$emptyData = false;
$tempArray['avg'] = $avg;
$tempArray['freq'] = $vAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_valid;
$tempArray['key'] = $vkey;
$text = ($spremenljivka['edit_graf'] == 0) ? $vAnswer['text'] : $vAnswer['text_graf'];
$tempArray['variable'] = ($text == '') ? $vkey : $text;
$textGrid = $spremenljivka['edit_graf'] == 0 ? $grid['variables'][0]['naslov'] : $grid['variables'][0]['naslov_graf'];
$tempArray['grid'] = $textGrid;
// dodamo vrednosti na desni ce imamo vklopljen diferencial
if($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']);
}
$dataArray[] = $tempArray;
$fullPercent[$gridCount] += $tempArray['percent'];
}
}
}
}
}
// polnimo array za drugo
if ($variable['text'] == true || $variable['other'] == true){
$_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) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$tempArray = array();
$tempArray['freq'] = $iAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_invalid;
$tempArray['key'] = $ikey;
$tempArray['variable'] = $iAnswer['text'];
$tempArray['grid'] = $grid['variables'][0]['naslov'];
$dataArray[] = $tempArray;
$fullPercent[$gridCount] += $tempArray['percent'];
}
}
}
$gridCount++;
}
}
// zascita pred praznimi vprasanji (brez variabel)
if(count($spremenljivka['grids']) == 0)
return -1;
//nastavimo numerus, ki se izpise pod legendo
rsort($nArray);
$numerus = ((int)$nArray[0] > 0) ? $nArray[0] : 0;
$DataSet->SetNumerus($numerus);
self::$numerusText = ($settings['value_type'] == 0) ? ' ('.$lang['srv_analiza_frekvence_titleVeljavni'].')' : '';
// Ce prikazujemo POVPRECJA napolnimo podatke samo na koncu
if($settings['type'] == 0 || $settings['type'] == 5 || $settings['type'] == 6){
// Sortiramo podaatke ce je potrebno
if($settings['sort'] == 1){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_DESC, $dataArray);
}
elseif($settings['sort'] == 2){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
// Poberemo podatke v posamezne tabele
for($i=0; $i<count($dataArray,0); $i++){
$vrednosti[] = $dataArray[$i]['freq'];
$vrednostiPercent[] = $dataArray[$i]['percent'];
$vrednostiValid[] = $dataArray[$i]['valid'];
$vrednostiKey[] = $dataArray[$i]['key'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
// se vrednosti na desni pri sem. diferencialu
if($spremenljivka['enota'] == 1)
$vrednostiVariable2[] = $dataArray[$i]['variable2'];
}
if(count($vrednosti) > 0){
if($settings['value_type'] == 1){
$DataSet->AddPoint($vrednosti,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti');
$DataSet->AddSerie('Vrednosti');
$DataSet->SetSerieName('Povprečja','Vrednosti');
// Pri povprecjih vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,"Variable");
//$DataSet->AddPoint($vrednostiKey,"Variable");
// se vrednosti na desni pri sem. diferencialu
if($spremenljivka['enota'] == 1){
$DataSet->AddPoint($vrednostiVariable2,"Variable2");
$DataSet->SetRightLabelSerie("Variable2");
}
$DataSet->SetAbsciseLabelSerie("Variable");
}
// Prikazujemo navadne podatke
else{
// Normalno obrnjen graf - gridi v stolpcih, variable v legendi (deli stolpcev)
if($settings['rotate'] != 1){
// Sortiramo podaatke ce je potrebno - Po kategorijah
if($settings['sort'] == 1){
$tmp = Array();
// preberemo prve vrednosti iz vsakega stolpca
for($j=0; $j<$_variables_count; $j++){
$offset = $j;
$tmp[] = (int)$dataArray[$offset]['valid'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
// Sort po povprecjih
elseif($settings['sort'] == 2){
$tmp = Array();
// preberemo povprecje iz vsake prve vrednosti vrstice
for($j=0; $j<$gridCount; $j++){
$offset = $j*$_variables_count;
$tmp[] = $dataArray[$offset]['avg'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
// Sort po prvi kategoriji
elseif($settings['sort'] == 3){
$tmp = Array();
// preberemo prve vrednosti iz vsake vrstice
for($j=0; $j<$gridCount; $j++){
$offset = $j*$_variables_count;
$tmp[] = (int)$dataArray[$offset]['valid'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
for($i=0; $i<$_variables_count; $i++){
unset($vrednosti);
unset($vrednostiPercent);
unset($vrednostiValid);
unset($vrednostiKey);
unset($vrednostiVariable);
unset($vrednostiGrid);
unset($vrednostiVariable2);
// Poberemo podatke v posamezne tabele
for($j=0; $j<$gridCount; $j++){
// ce sortiramo uporabimo sortirane kljuce
if($settings['sort'] == 1)
$offset = $sorted_keys[$i] + ($j*$_variables_count);
// sort po povprecjih
elseif($settings['sort'] == 2)
$offset = ($sorted_keys[$j]*$_variables_count) + $i;
// sort po prvi kategoriji
elseif($settings['sort'] == 3)
$offset = ($sorted_keys[$j]*$_variables_count) + $i;
else
$offset = $i + ($j*$_variables_count);
$vrednosti[] = $dataArray[$offset]['freq'];
$vrednostiPercent[] = $dataArray[$offset]['percent'];
$vrednostiValid[] = $dataArray[$offset]['valid'];
$vrednostiKey[] = $dataArray[$offset]['key'];
$vrednostiVariable[] = $dataArray[$offset]['variable'];
$vrednostiGrid[] = $dataArray[$offset]['grid'];
// se vrednosti na desni pri sem. diferencialu
if($spremenljivka['enota'] == 1)
$vrednostiVariable2[] = $dataArray[$offset]['variable2'];
}
if(count($vrednosti) > 0){
if($settings['value_type'] == 1){
$DataSet->AddPoint($vrednosti,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti_'.$i);
$DataSet->AddSerie('Vrednosti_'.$i);
$DataSet->SetSerieName($vrednostiVariable[0],'Vrednosti_'.$i);
}
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiGrid,"Variable");
// se vrednosti na desni pri sem. diferencialu
if($spremenljivka['enota'] == 1){
$DataSet->AddPoint($vrednostiVariable2,"Variable2");
$DataSet->SetRightLabelSerie("Variable2");
}
$DataSet->SetAbsciseLabelSerie("Variable");
}
// Obratno obrnjen graf - gridi v legendi (deli stolpca), variable v stolpcih - default ce imamo samo en grid
else{
// prej moramo napolniti imena serij (variabel)
for($i=0; $i<$gridCount; $i++){
$vrednostiGrid[] = $dataArray[$i*$_variables_count]['grid'];
}
// Sortiramo podaatke ce je potrebno
if($settings['sort'] == 1){
$tmp = Array();
// preberemo prve vrednosti iz vsakega stolpca
for($j=0; $j<$gridCount; $j++){
$offset = $j*$_variables_count;
$tmp[] = (int)$dataArray[$offset]['valid'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
// Sort po prvi kategoriji
elseif($settings['sort'] == 3){
$tmp = Array();
// preberemo prve vrednosti iz vsake vrstice
for($j=0; $j<$_variables_count; $j++){
$offset = $j;
$tmp[] = (int)$dataArray[$offset]['valid'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
for($i=0; $i<$gridCount; $i++){
unset($vrednosti);
unset($vrednostiPercent);
unset($vrednostiValid);
unset($vrednostiKey);
unset($vrednostiVariable);
unset($vrednostiVariable2);
// Poberemo podatke v posamezne tabele
for($j=0; $j<$_variables_count; $j++){
// ce sortiramo uporabimo sortirane kljuce
if($settings['sort'] == 1)
$offset = ($sorted_keys[$i]*$_variables_count) + $j;
// sort po prvi kategoriji
elseif($settings['sort'] == 3)
$offset = $sorted_keys[$j] + ($i*$_variables_count);
else
$offset = ($i*$_variables_count) + $j;
$vrednosti[] = $dataArray[$offset]['freq'];
$vrednostiPercent[] = $dataArray[$offset]['percent'];
$vrednostiValid[] = $dataArray[$offset]['valid'];
$vrednostiKey[] = $dataArray[$offset]['key'];
$vrednostiVariable[] = $dataArray[$offset]['variable'];
// se vrednosti na desni pri sem. diferencialu
if($spremenljivka['enota'] == 1)
$vrednostiVariable2[] = $dataArray[$offset]['variable2'];
}
if(count($vrednosti) > 0){
if($settings['value_type'] == 1){
$DataSet->AddPoint($vrednosti,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti_'.$i);
$DataSet->AddSerie('Vrednosti_'.$i);
if($settings['sort'] == 1)
$DataSet->SetSerieName($vrednostiGrid[$sorted_keys[$i]],'Vrednosti_'.$i);
else
$DataSet->SetSerieName($vrednostiGrid[$i],'Vrednosti_'.$i);
}
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,"Variable");
// se vrednosti na desni pri sem. diferencialu
if($spremenljivka['enota'] == 1){
$DataSet->AddPoint($vrednostiVariable2,"Variable2");
$DataSet->SetRightLabelSerie("Variable2");
}
$DataSet->SetAbsciseLabelSerie("Variable");
}
}
if( $settings['value_type'] != 1 && $settings['type'] != 0 && $settings['type'] != 6 ){
$DataSet->SetYAxisUnit("%");
$DataSet->SetYAxisFormat("number");
}
}
// napolnimo podatke za NUMBER
elseif($spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 22){
$dataArray = array();
$has_decimal = false;
$i=0;
$N=0;
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$legendTitle = '';
$_variables_count = count($grid['variables']);
$field = 0;
$avg_count = 0;
$avg_sum = 0;
$avg_count2 = 0;
$avg_sum2 = 0;
# dodamo dodatne vrstice z albelami grida
if ($_variables_count > 0 )
foreach ($grid['variables'] AS $vid => $variable ){
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$var_title[] = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$_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($field == 0)
$N = SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'];
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;
$tempArray = array();
$tempArray['freq'] = $vAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_valid;
$tempArray['key'] = $vkey;
if(floor($vkey) != $vkey)
$has_decimal = true;
// racunamo povprecje (za prvo variablo)
if($field == 0){
// ce je znotraj nastavljenih mej
if( ($settings['max'] == '' || ($settings['open_up'] == 1 || (int)$vAnswer['text'] <= (int)$settings['max']))
&& ($settings['min'] == '' || ($settings['open_down'] == 1 || (int)$vAnswer['text'] >= (int)$settings['min'])) ){
$avg_count += $vAnswer['cnt'];
$avg_sum += $vAnswer['cnt'] * (int)$vAnswer['text'];
}
else{
$N--;
}
}
// racunamo povprecje (samo za drugo variablo)
if($field == 1){
// ce je znotraj nastavljenih mej
if( ($settings['max'] == '' || ($settings['open_up'] == 1 || (int)$vAnswer['text'] <= (int)$settings['max']))
&& ($settings['min'] == '' || ($settings['open_down'] == 1 || (int)$vAnswer['text'] >= (int)$settings['min'])) ){
$avg_count2 += $vAnswer['cnt'];
$avg_sum2 += $vAnswer['cnt'] * (int)$vAnswer['text'];
}
else{
$N--;
}
}
// nastavimo da graf ni prazen
$emptyData = false;
$text = $vAnswer['text'];
$tempArray['variable'] = $text;
$tempArray['field'] = $field;
$dataArray[] = $tempArray;
}
}
}
}
$field++;
}
$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) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$tempArray = array();
//$N = ($settings['value_type'] == 2) ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
$tempArray['freq'] = $iAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_invalid;
$tempArray['key'] = $ikey;
$tempArray['variable'] = $iAnswer['text'];
$dataArray[] = $tempArray;
}
}
}
$i++;
}
// zascita pred praznimi vprasanji (brez variabel)
if($_variables_count == 0)
return -1;
//polnimo podatke
$DataSet = new pData;
// nastavimo NUMERUS, ki se izpise pod legendo
$N = ((int)$N > 0) ? $N : 0;
$DataSet->SetNumerus($N);
// nastavimo POVPRECJE
$avg = ($avg_count > 0) ? $avg_sum / $avg_count : 0;
$DataSet->SetAverage(round($avg, 1));
// Povprecje za 2. variablo (rabimo pri grafu povprecja)
$avg2 = ($avg_count2 > 0) ? $avg_sum2 / $avg_count2 : 0;
// Sortiramo podatke - ce imamo izpis vsakega vnosa posebej sortiramo po freq, ce pa po skupinah pa po key
if($settings['type'] <= 2){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['key'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
elseif($settings['sort'] == 1){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_DESC, $dataArray);
}
elseif($settings['sort'] == 2){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
$max = (double)$dataArray[count($dataArray,0)-1]['variable'];
$min = (double)$dataArray[0]['variable'];
$stIntervalov = ((int)$settings['interval'] == 0 ? 10 : (int)$settings['interval']);
// Ce imamo napredno napredne intervale
if($settings['limits']['advanced_settings'] == 1){
$limits = $settings['limits'];
$max = $limits['interval_'. ($stIntervalov-1) ]['max'];
$min = $limits['interval_0']['min'];
}
// Ce imamo osnovne intervale
else{
// Nastavimo custom zgornjo mejo skale (razen v primeru ko ne ignoriramo vrednosti ki padejo ven in ce je max vnos vecji od nastavljenega max)
if($settings['max'] != '' /*&& ($settings['open_up'] == 0 || (int)$settings['max'] > $max)*/)
$max = (double)$settings['max'];
// Nastavimo custom spodnjo mejo skale (razen v primeru ko ne ignoriramo vrednosti ki padejo ven in ce je min vnos manjsi od nastavljenega min)
if($settings['min'] != '' /*&& ($settings['open_down'] == 0 || (int)$settings['min'] < $min)*/)
$min = (double)$settings['min'];
$stIntervalov = ($stIntervalov == -1 ? $max-$min : $stIntervalov);
$part = ($max-$min) / $stIntervalov;
if(!$has_decimal)
$part = ($part < 1) ? 1 : round($part);
}
// Poberemo podatke v posamezne tabele - po intervalih oz normalno
if($settings['type'] <= 2){
// Ce imamo polodprt intrerval navzdol
if($settings['open_down'] == 1){
$count = 0;
$percent = 0;
$valid = 0;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i]['variable'] < $min && $dataArray[$i]['field'] == 0){
$count += $dataArray[$i]['freq'];
$percent += $dataArray[$i]['percent'];
$valid += $dataArray[$i]['valid'];
}
}
// vnesemo podatke za interval
$vrednosti[] = $count;
$vrednostiPercent[] = $percent;
$vrednostiValid[] = $valid;
$vrednostiKey[] = $lang['srv_chart_less'].' '.$min;
$vrednostiVariable[] = $lang['srv_chart_less'].' '.$min;
}
// loop cez intervale - default 10
for($interval=0; $interval<$stIntervalov; $interval++){
$count = 0;
$percent = 0;
$valid = 0;
// Ce imamo napredno napredne intervale (custom dolocene)
if($settings['limits']['advanced_settings'] == 1){
$maxVal = $limits['interval_'.$interval]['max'];
$minVal = $limits['interval_'.$interval]['min'];
}
// Ce imamo osnovne intervale (racunamo sproti)
else{
// Ce imamo decimalke
if($has_decimal){
$maxVal = ($interval < ($stIntervalov-1) ? $min-0.01 + (($interval+1) * $part) : $max);
$minVal = ($interval > 0 ? $min + ($interval * $part) : $min);
}
else{
$maxVal = ($interval < ($stIntervalov-1) ? $min + (($interval+1) * $part) : $max);
$minVal = ($interval > 0 ? $min + ($interval * $part) + 1 : $min);
}
}
// prekinemo ce zaradi zaokrozevanja pride do min > max
if($minVal > $maxVal)
break;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i]['variable'] <= $maxVal && $dataArray[$i]['variable'] >= $minVal && $dataArray[$i]['field'] == 0){
$count += $dataArray[$i]['freq'];
$percent += $dataArray[$i]['percent'];
$valid += $dataArray[$i]['valid'];
}
}
// vnesemo podatke za interval
$vrednosti[] = $count;
$vrednostiPercent[] = $percent;
$vrednostiValid[] = $valid;
// Ce imamo napredne intervale (custom dolocene labele)
if($settings['limits']['advanced_settings'] == 1 && $limits['interval_'.$interval]['label'] != ''){
$vrednostiKey[] = $limits['interval_'.$interval]['label'];
$vrednostiVariable[] = $limits['interval_'.$interval]['label'];
}
elseif($minVal == $maxVal){
$vrednostiKey[] = $minVal;
$vrednostiVariable[] = $minVal;
}
else{
$vrednostiKey[] = $minVal.'-'.$maxVal;
$vrednostiVariable[] = $minVal.'-'.$maxVal;
}
}
// Ce imamo polodprt intrerval navzgor
if($settings['open_up'] == 1){
$count = 0;
$percent = 0;
$valid = 0;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i]['variable'] > $max && $dataArray[$i]['field'] == 0){
$count += $dataArray[$i]['freq'];
$percent += $dataArray[$i]['percent'];
$valid += $dataArray[$i]['valid'];
}
}
// vnesemo podatke za interval
$vrednosti[] = $count;
$vrednostiPercent[] = $percent;
$vrednostiValid[] = $valid;
$vrednostiKey[] = $lang['srv_chart_more'].' '.$max;
$vrednostiVariable[] = $lang['srv_chart_more'].' '.$max;
}
//ponovimo ce imamo 2 polja
if($field == 2){
// Ce imamo polodprt intrerval navzdol
if($settings['open_down'] == 1){
$count = 0;
$percent = 0;
$valid = 0;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i]['variable'] < $min && $dataArray[$i]['field'] == 1){
$count += $dataArray[$i]['freq'];
$percent += $dataArray[$i]['percent'];
$valid += $dataArray[$i]['valid'];
}
}
// vnesemo podatke za interval
$vrednosti2[] = $count;
$vrednostiPercent2[] = $percent;
$vrednostiValid2[] = $valid;
}
// loop cez intervale - default 10
for($interval=0; $interval<$stIntervalov; $interval++){
$count = 0;
$percent = 0;
$valid = 0;
// Ce imamo napredno napredne intervale (custom dolocene)
if($settings['limits']['advanced_settings'] == 1){
$maxVal = $limits['interval_'.$interval]['max'];
$minVal = $limits['interval_'.$interval]['min'];
}
// Ce imamo osnovne intervale (racunamo sproti)
else{
// Ce imamo decimalke
if($has_decimal){
$maxVal = ($interval < ($stIntervalov-1) ? $min-0.01 + (($interval+1) * $part) : $max);
$minVal = ($interval > 0 ? $min + ($interval * $part) : $min);
}
else{
$maxVal = ($interval < ($stIntervalov-1) ? $min + (($interval+1) * $part) : $max);
$minVal = ($interval > 0 ? $min + ($interval * $part) + 1 : $min);
}
}
// prekinemo ce zaradi zaokrozevanja pride do min > max
if($minVal > $maxVal)
break;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i]['variable'] <= $maxVal && $dataArray[$i]['variable'] >= $minVal && $dataArray[$i]['field'] == 1){
$count += $dataArray[$i]['freq'];
$percent += $dataArray[$i]['percent'];
$valid += $dataArray[$i]['valid'];
}
}
// vnesemo podatke za interval
$vrednosti2[] = $count;
$vrednostiPercent2[] = $percent;
$vrednostiValid2[] = $valid;
}
// Ce imamo polodprt intrerval navzgor
if($settings['open_up'] == 1){
$count = 0;
$percent = 0;
$valid = 0;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i]['variable'] > $max && $dataArray[$i]['field'] == 1){
$count += $dataArray[$i]['freq'];
$percent += $dataArray[$i]['percent'];
$valid += $dataArray[$i]['valid'];
}
}
// vnesemo podatke za interval
$vrednosti2[] = $count;
$vrednostiPercent2[] = $percent;
$vrednostiValid2[] = $valid;
}
}
}
else{
for($i=0; $i<count($dataArray,0); $i++){
if($dataArray[$i]['field'] == 0){
$vrednosti[] = $dataArray[$i]['freq'];
$vrednostiPercent[] = $dataArray[$i]['percent'];
$vrednostiValid[] = $dataArray[$i]['valid'];
}
else{
$vrednosti[] = 0;
$vrednostiPercent[] = 0;
$vrednostiValid[] = 0;
}
$vrednostiKey[] = $dataArray[$i]['key'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
}
//ponovimo ce imamo 2 polja
if($field == 2){
for($i=0; $i<count($dataArray,0); $i++){
if($dataArray[$i]['field'] == 1){
$vrednosti2[] = $dataArray[$i]['freq'];
$vrednostiPercent2[] = $dataArray[$i]['percent'];
$vrednostiValid2[] = $dataArray[$i]['valid'];
}
else{
$vrednosti2[] = 0;
$vrednostiPercent2[] = 0;
$vrednostiValid2[] = 0;
}
}
}
}
if(count($vrednosti) > 0){
// Graf povprecja
if($settings['type'] == 9){
$DataSet->AddPoint(round($avg, 1),'Vrednosti');
if($field == 2)
$DataSet->AddPoint(round($avg2, 1),'Vrednosti2');
}
else{
if($settings['value_type'] == 0){
$DataSet->AddPoint($vrednosti,'Vrednosti');
if($field == 2)
$DataSet->AddPoint($vrednosti2,'Vrednosti2');
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 1){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti');
if($field == 2)
$DataSet->AddPoint($vrednostiPercent2,'Vrednosti2');
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiValid,'Vrednosti');
if($field == 2)
$DataSet->AddPoint($vrednostiValid2,'Vrednosti2');
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti');
$DataSet->AddSerie('Vrednosti');
$var_title[0] = ($var_title[0] == '' ? 'Vrednosti' : $var_title[0]);
$DataSet->SetSerieName($var_title[0],'Vrednosti');
if($field == 2){
$DataSet->AddSerie('Vrednosti2');
$var_title[1] = ($var_title[1] == '' ? 'Vrednosti 2' : $var_title[1]);
$DataSet->SetSerieName($var_title[1],'Vrednosti2');
}
// Vedno izpisemo cela imena variabel
if($settings['type'] != 9)
$DataSet->AddPoint($vrednostiVariable,"Variable");
//$DataSet->AddPoint($vrednostiKey,"Variable");
$DataSet->SetAbsciseLabelSerie("Variable");
if($settings['value_type'] > 0){
$DataSet->SetYAxisUnit("%");
$DataSet->SetYAxisFormat("number");
}
}
// napolnimo podatke za DATUM
elseif($spremenljivka['tip'] == 8){
$dataArray = array();
$i=0;
$N=0;
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$legendTitle = '';
$_variables_count = count($grid['variables']);
# dodamo dodatne vrstice z albelami grida
if ($_variables_count > 0 )
foreach ($grid['variables'] AS $vid => $variable ){
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$var_title[] = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$_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) {
$N = SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'];
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;
$tempArray = array();
// ce je zunaj nastavljenih mej
if( ($settings['max'] != '' && ($settings['open_up'] == 0 && (int)$vAnswer['text'] > (int)$settings['max']))
|| ($settings['min'] != '' && ($settings['open_down'] == 0 && (int)$vAnswer['text'] < (int)$settings['min'])) ){
$N--;
}
$date = strtotime($vkey);
$tempArray['day'] = date('j', $date);
$tempArray['month'] = date('n', $date);
$tempArray['year'] = date('Y', $date);
$tempArray['freq'] = $vAnswer['cnt'];
// nastavimo da graf ni prazen
$emptyData = false;
$text = $vAnswer['text'];
$tempArray['variable'] = $text;
$dataArray[] = $tempArray;
}
}
}
}
}
$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) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$tempArray = array();
//$N = ($settings['value_type'] == 2) ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
$date = strtotime($ikey);
$tempArray['day'] = date('j', $date);
$tempArray['month'] = date('n', $date);
$tempArray['year'] = date('Y', $date);
$tempArray['freq'] = $iAnswer['cnt'];
$tempArray['variable'] = $iAnswer['text'];
$dataArray[] = $tempArray;
}
}
}
$i++;
}
if($settings['value_type'] == 0)
$key = 'day';
elseif($settings['value_type'] == 1)
$key = 'month';
else
$key = 'year';
//polnimo podatke
$DataSet = new pData;
//nastavimo numerus, ki se izpise pod legendo
$N = ((int)$N > 0) ? $N : 0;
$DataSet->SetNumerus($N);
// Sortiramo podatke - ce imamo izpis vsakega vnosa posebej sortiramo po datumu, ce pa po skupinah pa po key
if($settings['type'] < 3){
if($settings['value_type'] == 0){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['day'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
elseif($settings['value_type'] == 1){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['month'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
elseif($settings['value_type'] == 2){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['year'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
}
elseif($settings['sort'] == 1 ){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_DESC, $dataArray);
}
elseif($settings['sort'] == 2 ){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['freq'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
$max = (int)$dataArray[count($dataArray,0)-1][$key];
$min = (int)$dataArray[0][$key];
$stIntervalov = ((int)$settings['interval'] == 0 ? 10 : (int)$settings['interval']);
// Ce imamo napredno napredne intervale
if($settings['limits']['advanced_settings'] == 1){
$limits = $settings['limits'];
$max = $limits['interval_'. ($stIntervalov-1) ]['max'];
$min = $limits['interval_0']['min'];
}
// Ce imamo osnovne intervale
else{
// Nastavimo custom zgornjo mejo skale (razen v primeru ko ne ignoriramo vrednosti ki padejo ven in ce je max vnos vecji od nastavljenega max)
if($settings['max'] != '' /*&& ($settings['open_up'] == 0 || (int)$settings['max'] > $max)*/)
$max = (int)$settings['max'];
// Nastavimo custom spodnjo mejo skale (razen v primeru ko ne ignoriramo vrednosti ki padejo ven in ce je min vnos manjsi od nastavljenega min)
if($settings['min'] != '' /*&& ($settings['open_down'] == 0 || (int)$settings['min'] < $min)*/)
$min = (int)$settings['min'];
$stIntervalov = ($stIntervalov == -1 ? $max-$min : $stIntervalov);
$part = round( ($max-$min) / $stIntervalov );
}
// Poberemo podatke v posamezne tabele - po intervalih oz normalno
if($settings['type'] < 3){
// Ce imamo polodprt intrerval navzdol
if($settings['open_down'] == 1){
$value = 0;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i][$key] < $min){
$value ++;
}
}
// vnesemo podatke za interval
$vrednosti[] = $value;
$vrednostiVariable[] = $lang['srv_chart_less'].' '.$min;
}
// loop cez intervale - default 10
for($interval=0; $interval<$stIntervalov; $interval++){
$value = 0;
// Ce imamo napredno napredne intervale (custom dolocene)
if($settings['limits']['advanced_settings'] == 1){
$maxVal = $limits['interval_'.$interval]['max'];
$minVal = $limits['interval_'.$interval]['min'];
}
// Ce imamo osnovne intervale (racunamo sproti)
else{
$maxVal = ($interval < ($stIntervalov-1) ? $min + (($interval+1) * $part) : $max);
$minVal = ($interval > 0 ? $min + ($interval * $part) + 1 : $min);
}
// prekinemo ce zaradi zaokrozevanja pride do min > max
if($minVal > $maxVal)
break;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i][$key] <= $maxVal && $dataArray[$i][$key] >= $minVal){
$value ++;
}
}
// vnesemo podatke za interval
$vrednosti[] = $value;
// Ce imamo napredne intervale (custom dolocene labele)
if($settings['limits']['advanced_settings'] == 1 && $limits['interval_'.$interval]['label'] != ''){
$vrednostiVariable[] = $limits['interval_'.$interval]['label'];
}
elseif($minVal == $maxVal){
$vrednostiVariable[] = $minVal;
}
else{
$vrednostiVariable[] = $minVal.'-'.$maxVal;
}
}
// Ce imamo polodprt intrerval navzgor
if($settings['open_up'] == 1){
$value = 0;
// loop cez vse podatke
for($i=0; $i<count($dataArray,0); $i++){
// ce pripada intervalu
if($dataArray[$i][$key] > $max){
$value ++;
}
}
// vnesemo podatke za interval
$vrednosti[] = $value;
$vrednostiVariable[] = $lang['srv_chart_more'].' '.$max;
}
}
else{
for($i=0; $i<count($dataArray,0); $i++){
$vrednosti[] = $dataArray[$i]['freq'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
}
}
if(count($vrednosti) > 0){
$DataSet->AddPoint($vrednosti,'Vrednosti');
}
else
$DataSet->AddPoint(array(0),'Vrednosti');
$DataSet->AddSerie('Vrednosti');
$var_title[0] = ($var_title[0] == '' ? 'Vrednosti' : $var_title[0]);
$DataSet->SetSerieName($var_title[0],'Vrednosti');
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,"Variable");
$DataSet->SetAbsciseLabelSerie("Variable");
}
// napolnimo podatke za MULTICHECKBOX
elseif($spremenljivka['tip'] == 16){
$DataSet = new pData;
$dataArray = array();
$fullPercent = array();
# odstranimo še možne nepotrebne zapise
if($settings['hideEmptyVar'] == 1){
$allGrids = count($spremenljivka['grids']);
if (count($spremenljivka['grids']) > 0) {
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$cntValidInGrid = 0;
# dodamo dodatne vrstice z labelami grida
if (count($grid['variables']) > 0 ) {
foreach ($grid['variables'] AS $vid => $variable ){
$_sequence = $variable['sequence']; # id kolone z podatki
foreach(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] AS $valid){
$cntValidInGrid+= (int)$valid['cnt'];
}
}
}
# preverjamo ali lahko prikazujemo podkategorije
if((int)$cntValidInGrid > 0) {
$gidsCanShow[$gid] = true;
} else {
$gidsCanShow[$gid] = false;
}
}
}
}
$gridCount=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)){
# dodamo dodatne vrstice z albelami grida
$_variables_count=0;
foreach ($grid['variables'] AS $vid => $variable ){
if ($variable['text'] != true && $variable['other'] != true){
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$_sequence = $variable['sequence']; # id kolone z podatki
$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;
$tempArray = array();
$nValid[] = SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'];
$nAll = SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
$nNavedbe[$gid] += SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][1]['cnt'];
$tempArray['freq'] = SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'][1]['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_valid;
// nastavimo da graf ni prazen
if($vAnswer > 0)
$emptyData = false;
$tempArray['key'] = $variable['variable'];
$text = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$tempArray['variable'] = $text;
$textGrid = $spremenljivka['edit_graf'] == 0 ? $grid['naslov'] : $grid['naslov_graf'];
$tempArray['grid'] = $textGrid;
$dataArray[] = $tempArray;
$fullPercent[$gridCount] += $tempArray['percent'];
$fullPercentReverse[$_variables_count] += $tempArray['percent'];
$_variables_count++;
}
// polnimo array za drugo
if ($variable['text'] == true || $variable['other'] == true){
$_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) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$tempArray = array();
$tempArray['freq'] = $iAnswer['cnt'];
$tempArray['percent'] = $_percent;
$tempArray['valid'] = $_invalid;
$tempArray['key'] = $ikey;
$tempArray['variable'] = $iAnswer['text'];
$tempArray['grid'] = $grid['naslov'];
$fullPercent[$gridCount] += $tempArray['percent'];
$fullPercentReverse[$_variables_count] += $tempArray['percent'];
$dataArray[] = $tempArray;
}
}
}
$gridCount++;
}
}
// zascita pred praznimi vprasanji (brez variabel)
if(count($spremenljivka['grids']) == 0)
return -1;
// Normalno obrnjen graf - gridi v stolpcih, variable v legendi (deli stolpcev)
if($settings['rotate'] != 1){
// Sortiramo podaatke ce je potrebno
if($settings['sort'] == 1){
$tmp = Array();
// preberemo prve vrednosti iz vsakega stolpca
for($j=0; $j<$_variables_count; $j++){
$offset = $j;
$tmp[] = (int)$dataArray[$offset]['valid'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
// Sort po prvi kategoriji
elseif($settings['sort'] == 3){
$tmp = Array();
// preberemo prve vrednosti iz vsake vrstice
for($j=0; $j<$gridCount; $j++){
$offset = $j*$_variables_count;
$tmp[] = (int)$dataArray[$offset]['valid'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
// Prikazujemo podatke
for($i=0; $i<$_variables_count; $i++){
unset($vrednosti);
unset($vrednostiPercent);
unset($vrednostiValid);
unset($vrednostiKey);
unset($vrednostiVariable);
unset($vrednostiGrid);
// Poberemo podatke v posamezne tabele
for($j=0; $j<$gridCount; $j++){
// ce sortiramo uporabimo sortirane kljuce
if($settings['sort'] == 1)
$offset = $sorted_keys[$i] + ($j*$_variables_count);
// sort po prvi kategoriji
elseif($settings['sort'] == 3)
$offset = ($sorted_keys[$j]*$_variables_count) + $i;
else
$offset = $i + ($j*$_variables_count);
// Enote
if($settings['base'] != 1){
$vrednosti[] = $dataArray[$offset]['freq'];
$vrednostiPercent[] = $dataArray[$offset]['percent'];
$vrednostiValid[] = $dataArray[$offset]['valid'];
//nastavimo numerus, ki se izpise pod legendo
if($settings['value_type'] == 0){
rsort($nValid);
$numerus = ((int)$nValid[0] > 0) ? $nValid[0] : 0;
$DataSet->SetNumerus($numerus);
self::$numerusText = ' ('.$lang['srv_analiza_frekvence_titleVeljavni'].')';
}
else
$numerus = ((int)$nAll > 0) ? $nAll : 0;
$DataSet->SetNumerus($numerus);
}
// Navedbe
else{
$percent = ($fullPercent[$j] * $dataArray[$offset]['percent'] > 0) ? 100 / $fullPercent[$j] * $dataArray[$offset]['percent'] : 0;
$vrednosti[] = $dataArray[$offset]['freq'];
$vrednostiPercent[] = $percent;
$vrednostiValid[] = $percent;
//nastavimo numerus, ki se izpise pod legendo
rsort($nNavedbe);
$numerus = ((int)$nNavedbe[0] > 0) ? $nNavedbe[0] : 0;
$DataSet->SetNumerus($numerus);
self::$numerusText = ' ('.$lang['srv_analiza_opisne_arguments'].')';
}
$vrednostiKey[] = $dataArray[$offset]['key'];
$vrednostiVariable[] = $dataArray[$offset]['variable'];
$vrednostiGrid[] = $dataArray[$offset]['grid'];
}
if(count($vrednosti) > 0){
if($settings['value_type'] == 2){
$DataSet->AddPoint($vrednosti,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 1){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti_'.$i);
$DataSet->AddSerie('Vrednosti_'.$i);
$DataSet->SetSerieName($vrednostiVariable[0],'Vrednosti_'.$i);
}
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiGrid,"Variable");
$DataSet->SetAbsciseLabelSerie("Variable");
}
// Obratno obrnjen graf - gridi v legendi (deli stolpca), variable v stolpcih - default ce imamo samo en grid
else{
// prej moramo napolniti imena serij (variabel)
for($i=0; $i<$gridCount; $i++){
$vrednostiGrid[] = $dataArray[$i*$_variables_count]['grid'];
}
// Sortiramo podaatke ce je potrebno
if($settings['sort'] == 1){
$tmp = Array();
// preberemo prve vrednosti iz vsakega stolpca
for($j=0; $j<$gridCount; $j++){
$offset = $j*$_variables_count;
$tmp[] = (int)$dataArray[$offset]['valid'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
// Sort po prvi kategoriji
elseif($settings['sort'] == 3){
$tmp = Array();
// preberemo prve vrednosti iz vsake vrstice
for($j=0; $j<$_variables_count; $j++){
$offset = $j;
$tmp[] = (int)$dataArray[$offset]['valid'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
for($i=0; $i<$gridCount; $i++){
unset($vrednosti);
unset($vrednostiPercent);
unset($vrednostiValid);
unset($vrednostiKey);
unset($vrednostiVariable);
// Poberemo podatke v posamezne tabele
for($j=0; $j<$_variables_count; $j++){
if($settings['sort'] == 1)
$offset = ($sorted_keys[$i]*$_variables_count) + $j;
// sort po prvi kategoriji
elseif($settings['sort'] == 3)
$offset = $sorted_keys[$j] + ($i*$_variables_count);
else
$offset = ($i*$_variables_count) + $j;
// Enote
if($settings['base'] != 1){
$vrednosti[] = $dataArray[$offset]['freq'];
$vrednostiPercent[] = $dataArray[$offset]['percent'];
$vrednostiValid[] = $dataArray[$offset]['valid'];
//nastavimo numerus, ki se izpise pod legendo
if($settings['value_type'] == 0){
rsort($nValid);
$numerus = ((int)$nValid[0] > 0) ? $nValid[0] : 0;
$DataSet->SetNumerus($numerus);
self::$numerusText = ' ('.$lang['srv_analiza_frekvence_titleVeljavni'].')';
}
else
$numerus = ((int)$nAll > 0) ? $nAll : 0;
$DataSet->SetNumerus($numerus);
}
// Navedbe
else{
$percent = ($fullPercentReverse[$j] * $dataArray[$offset]['percent'] > 0) ? 100 / $fullPercentReverse[$j] * $dataArray[$offset]['percent'] : 0;
$vrednosti[] = $dataArray[$offset]['freq'];
$vrednostiPercent[] = $percent;
$vrednostiValid[] = $percent;
//nastavimo numerus, ki se izpise pod legendo
rsort($nNavedbe);
$numerus = ((int)$nNavedbe[0] > 0) ? $nNavedbe[0] : 0;
$DataSet->SetNumerus($numerus);
self::$numerusText = ' ('.$lang['srv_analiza_opisne_arguments'].')';
}
$vrednostiKey[] = $dataArray[$offset]['key'];
$vrednostiVariable[] = $dataArray[$offset]['variable'];
}
if(count($vrednosti) > 0){
if($settings['value_type'] == 2){
$DataSet->AddPoint($vrednosti,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 1){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 0){
$DataSet->AddPoint($vrednostiValid,'Vrednosti_'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti_'.$i);
$DataSet->AddSerie('Vrednosti_'.$i);
if($settings['sort'] == 1)
$DataSet->SetSerieName($vrednostiGrid[$sorted_keys[$i]],'Vrednosti_'.$i);
else
$DataSet->SetSerieName($vrednostiGrid[$i],'Vrednosti_'.$i);
}
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,"Variable");
$DataSet->SetAbsciseLabelSerie("Variable");
}
if($settings['value_type'] == 1 || $settings['value_type'] == 0){
$DataSet->SetYAxisUnit("%");
$DataSet->SetYAxisFormat("number");
}
}
// napolnimo podatke za VSOTO
elseif($spremenljivka['tip'] == 18){
$dataArray = array();
$i=0;
$numerus=0;
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$legendTitle = '';
$_variables_count = count($grid['variables']);
# dodamo dodatne vrstice z albelami grida
if ($_variables_count > 0 )
foreach ($grid['variables'] AS $vid => $variable ){
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$_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) {
# za povprečje
$sum_xi_fi=0;
$N = 0;
$div=0;
$min = null;
$max = null;
foreach ( SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] AS $vkey => $vAnswer) {
$fi = $vAnswer['cnt'];
$sum_xi_fi += $vkey * $fi ;
$N += $fi;
$min = $min != null ? min($min,$vkey) : $vkey;
$max = max($max,$vkey);
}
#povprečje
$avg = ($N > 0) ? $sum_xi_fi / $N : 0;
// nastavimo da graf ni prazen
if($avg > 0)
$emptyData = false;
$numerus = ($numerus > $N) ? $numerus : $N;
$tempArray = array();
$tempArray['avg'] = $avg;
$tempArray['max'] = $max;
$tempArray['min'] = $min;
$tempArray['key'] = $variable['variable'];
$text = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$tempArray['variable'] = $text;
// ce imamo vklopljeno da izpuscamo 0 in prikazujemo pie chart spustimo nicelne vrednosti
if($avg != 0 || SurveyDataSettingProfiles :: getSetting('chartPieZeros') == 1 || ($settings['type'] != 0 && $settings['type'] != 5))
$dataArray[] = $tempArray;
}
}
}
$i++;
}
// zascita pred praznimi vprasanji (brez variabel)
if($_variables_count == 0)
return -1;
//polnimo podatke
$DataSet = new pData;
//nastavimo numerus, ki se izpise pod legendo
$numerus = ((int)$numerus > 0) ? $numerus : 0;
$DataSet->SetNumerus($numerus);
// Sortiramo podatke in jih razvrstimo po skupinah
if($settings['sort'] == 1){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['avg'];
array_multisort($tmp, SORT_NUMERIC, SORT_DESC, $dataArray);
}
elseif($settings['sort'] == 2){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['avg'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
// Poberemo podatke v posamezne tabele
for($i=0; $i<count($dataArray,0); $i++){
$vrednosti[] = $dataArray[$i]['avg'];
$vrednostiMax[] = $dataArray[$i]['max'];
$vrednostiMin[] = $dataArray[$i]['min'];
$vrednostiKey[] = $dataArray[$i]['key'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
}
if(is_countable($vrednosti) && count($vrednosti) > 0){
if($settings['value_type'] == 0){
$DataSet->AddPoint($vrednosti,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 1){
$DataSet->AddPoint($vrednostiMax,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiMin,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti');
$DataSet->AddSerie('Vrednosti');
$DataSet->SetSerieName('Povprečja','Vrednosti');
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,"Variable");
//$DataSet->AddPoint($vrednostiKey,"Variable");
$DataSet->SetAbsciseLabelSerie("Variable");
if($settings['type'] != 2)
$DataSet->SetYAxisName($lang['srv_analiza_sums_average']);
}
// napolnimo podatke za RANKING
elseif($spremenljivka['tip'] == 17){
$dataArray = array();
$i=0;
$numerus=0;
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$legendTitle = '';
$_variables_count = count($grid['variables']);
# dodamo dodatne vrstice z albelami grida
if ($_variables_count > 0 )
foreach ($grid['variables'] AS $vid => $variable ){
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$_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) {
$rankingArray = array();
$_variables_count=0;
# za povprečje
$sum_xi_fi=0;
$N = 0;
$div=0;
$min = null;
$max = null;
foreach ( SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] AS $vkey => $vAnswer) {
$fi = $vAnswer['cnt'];
$sum_xi_fi += $vkey * $fi ;
$N += $fi;
$min = $min != null ? min($min,$vkey) : $vkey;
$max = max($max,$vkey);
$rankingArray[] = $vAnswer['cnt'];
$_variables_count++;
}
// nastavimo da graf ni prazen
if($N > 0)
$emptyData = false;
#povprečje
$avg = ($N > 0) ? $sum_xi_fi / $N : 0;
$avg = $avg < 1 ? 1 : $avg;
if($settings['type'] == 0){
$numerus = ($numerus > $N) ? $numerus : $N;
}
else{
$numerus = SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'];
}
$tempArray = array();
$tempArray['cnt'] = $N;
$tempArray['avg'] = $avg;
$tempArray['max'] = $max;
$tempArray['min'] = $min;
$tempArray['rankings'] = $rankingArray;
$tempArray['key'] = $variable['variable'];
$text = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$tempArray['variable'] = $text;
$dataArray[] = $tempArray;
}
}
}
$i++;
}
//polnimo podatke
$DataSet = new pData;
// zascita pred praznimi vprasanji (brez variabel)
if($_variables_count == 0)
return -1;
//nastavimo numerus, ki se izpise pod legendo
$numerus = ((int)$numerus > 0) ? $numerus : 0;
$DataSet->SetNumerus($numerus);
// Sortiramo podatke in jih razvrstimo po skupinah
if($settings['sort'] == 1){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['avg'];
array_multisort($tmp, SORT_NUMERIC, SORT_DESC, $dataArray);
}
elseif($settings['sort'] == 2){
$tmp = Array();
foreach($dataArray as &$data)
$tmp[] = &$data['avg'];
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
}
if($settings['type'] == 0){
// Poberemo podatke v posamezne tabele
for($i=0; $i<count($dataArray,0); $i++){
$vrednosti[] = $dataArray[$i]['avg'];
$vrednostiMax[] = $dataArray[$i]['max'];
$vrednostiMin[] = $dataArray[$i]['min'];
$vrednostiKey[] = $dataArray[$i]['key'];
$vrednostiVariable[] = $dataArray[$i]['variable'];
}
if(count($vrednosti) > 0){
if($settings['value_type'] == 0){
$DataSet->AddPoint($vrednosti,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 1){
$DataSet->AddPoint($vrednostiMax,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiMin,'Vrednosti');
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti');
$DataSet->AddSerie('Vrednosti');
$DataSet->SetSerieName('Povprečja','Vrednosti');
}
//polnimo podatke po posameznih serijah
else{
// loop cez variable za posamezno serijo
for($i=0; $i<$_variables_count; $i++){
unset($vrednosti);
unset($vrednostiPercent);
unset($vrednostiKey);
unset($vrednostiVariable);
for($j=0; $j<count($dataArray,0); $j++){
$vrednosti[] = $dataArray[$j]['rankings'][$i];
if($dataArray[$j]['cnt'] > 0)
$percent = $dataArray[$j]['rankings'][$i] / $dataArray[$j]['cnt'] * 100;
else
$percent = 0;
$vrednostiPercent[] = $percent;
$vrednostiKey[] = $dataArray[$j]['key'];
$vrednostiVariable[] = $dataArray[$j]['variable'];
}
if(count($vrednosti) > 0){
if($settings['value_type'] == 0){
$DataSet->AddPoint($vrednosti,'Vrednosti'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_freq']);
}
elseif($settings['value_type'] == 1){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_percent']);
}
elseif($settings['value_type'] == 2){
$DataSet->AddPoint($vrednostiPercent,'Vrednosti'.$i);
//$DataSet->SetYAxisName($lang['srv_chart_valid']);
}
}
else
$DataSet->AddPoint(array(0),'Vrednosti'.$i);
$DataSet->AddSerie('Vrednosti'.$i);
$DataSet->SetSerieName($i+1,'Vrednosti'.$i);
}
}
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,"Variable");
//$DataSet->AddPoint($vrednostiKey,"Variable");
$DataSet->SetAbsciseLabelSerie("Variable");
if($settings['type'] > 1)
$DataSet->SetYAxisName("Povprečje");
}
// napolnimo podatke za MULTINUMBER
elseif($spremenljivka['tip'] == 20){
$dataArray = array();
$i=0;
$numerus=0;
$sql = sisplet_query("SELECT count(*) AS count FROM srv_grid WHERE spr_id='$spid'");
$row = mysqli_fetch_array($sql);
$_variables_count = $row['count'];
$vrednostiGrid = array();
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$legendTitle = '';
$vrednostiGrid[] = $spremenljivka['edit_graf'] == 0 ? $grid['naslov'] : $grid['naslov_graf'];
//$_variables_count = count($grid['variables']);
# dodamo dodatne vrstice z albelami grida
if ($_variables_count > 0 )
foreach ($grid['variables'] AS $vid => $variable ){
$legendTitle = substr($variable['variable'],0,strpos($variable['variable'],'_'));
$_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) {
# za povprečje
$sum_xi_fi=0;
$N = 0;
$div=0;
$min = null;
$max = null;
foreach ( SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] AS $vkey => $vAnswer) {
$fi = $vAnswer['cnt'];
$sum_xi_fi += $vkey * $fi ;
$N += $fi;
$min = $min != null ? min($min,$vkey) : $vkey;
$max = max($max,$vkey);
}
#povprečje
$avg = ($N > 0) ? $sum_xi_fi / $N : 0;
// nastavimo da graf ni prazen
if($avg > 0)
$emptyData = false;
$numerus = ($numerus > $N) ? $numerus : $N;
$tempArray = array();
$tempArray['avg'] = $avg;
$tempArray['max'] = $max;
$tempArray['min'] = $min;
$tempArray['key'] = $variable['variable'];
$text = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$tempArray['variable'] = $text;
$dataArray[] = $tempArray;
}
// ce missling (-99, -98...) nima nobene vrednosti potem ga ni v tabeli - zato ga rocno napolnimo
else{
$tempArray = array();
$tempArray['avg'] = 0;
$tempArray['max'] = 0;
$tempArray['min'] = 0;
$tempArray['key'] = $variable['variable'];
$text = $spremenljivka['edit_graf'] == 0 ? $variable['naslov'] : $variable['naslov_graf'];
$tempArray['variable'] = $text;
$dataArray[] = $tempArray;
}
}
// polnimo array za drugo
if ($variable['text'] == true || $variable['other'] == true){
$_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence);
}
}
$i++;
}
// zascita pred praznimi vprasanji (brez variabel)
if($_variables_count == 0)
return -1;
//polnimo podatke
$DataSet = new pData;
//nastavimo numerus, ki se izpise pod legendo
$numerus = ((int)$numerus > 0) ? $numerus : 0;
$DataSet->SetNumerus($numerus);
// Normalno obrnjen graf - gridi v stolpcih, variable v legendi (deli stolpcev)
if($settings['rotate'] != 1 /*$_variables_count > 1*/){
// Sortiramo podaatke ce je potrebno
if($settings['sort'] == 1){
$tmp = Array();
// preberemo prve vrednosti iz vsakega stolpca
for($j=0; $j<$_variables_count; $j++){
$offset = $j*$_variables_count;
$tmp[] = (int)$dataArray[$offset]['avg'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
// Sortiramo podaatke po prvi kategoriji
elseif($settings['sort'] == 3){
$tmp = Array();
// preberemo prve vrednosti iz vsakega stolpca
for($j=0; $j<$_variables_count; $j++){
$offset = $j;
$tmp[] = (int)$dataArray[$offset]['avg'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
else{
for($j=0; $j<(count($spremenljivka['grids'])*$_variables_count); $j++){
$sorted_keys[] = $j;
}
}
// Poberemo podatke v posamezne tabele
for($j=0; $j<count($spremenljivka['grids']); $j++){
unset($vrednosti);
unset($vrednostiKey);
unset($vrednostiVariable);
// odmik glede na sortirane po prvem gridu (sort po kategorijah ali brez)
if($settings['sort'] < 3){
$offset = $sorted_keys[$j] /*$j*/ * $_variables_count;
for($i=0; $i<$_variables_count; $i++){
$vrednosti[] = $dataArray[$i+$offset]['avg'];
$vrednostiMax[] = $dataArray[$i+$offset]['max'];
$vrednostiMin[] = $dataArray[$i+$offset]['min'];
$vrednostiKey[] = $dataArray[$i+$offset]['key'];
$vrednostiVariable[] = $dataArray[$i+$offset]['variable'];
}
if(count($vrednosti) > 0)
$DataSet->AddPoint($vrednosti,'Vrednosti'.$sorted_keys[$j]);
else
$DataSet->AddPoint(array(0),'Vrednosti'.$sorted_keys[$j]);
$DataSet->AddSerie('Vrednosti'.$sorted_keys[$j]);
$DataSet->SetSerieName($vrednostiGrid[$sorted_keys[$j]],'Vrednosti'.$sorted_keys[$j]);
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,'Variable'.$sorted_keys[$j]);
//$DataSet->AddPoint($vrednostiKey,"Variable");
$DataSet->SetAbsciseLabelSerie('Variable'.$sorted_keys[$j]);
}
// sort po prvi kategoriji
else{
for($i=0; $i<$_variables_count; $i++){
$vrednosti[] = $dataArray[$j*$_variables_count + $sorted_keys[$i]]['avg'];
$vrednostiMax[] = $dataArray[$j*$_variables_count + $sorted_keys[$i]]['max'];
$vrednostiMin[] = $dataArray[$j*$_variables_count + $sorted_keys[$i]]['min'];
$vrednostiKey[] = $dataArray[$j*$_variables_count + $sorted_keys[$i]]['key'];
$vrednostiVariable[] = $dataArray[$j*$_variables_count + $sorted_keys[$i]]['variable'];
}
if(count($vrednosti) > 0)
$DataSet->AddPoint($vrednosti,'Vrednosti'.$j);
else
$DataSet->AddPoint(array(0),'Vrednosti'.$j);
$DataSet->AddSerie('Vrednosti'.$j);
$DataSet->SetSerieName($vrednostiGrid[$j],'Vrednosti'.$j);
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiVariable,'Variable'.$j);
//$DataSet->AddPoint($vrednostiKey,"Variable");
$DataSet->SetAbsciseLabelSerie('Variable'.$j);
}
}
}
// Obratno obrnjen graf - gridi v legendi (deli stolpca), variable v stolpcih - default ce imamo samo en grid
else{
// Sortiramo podaatke ce je potrebno
if($settings['sort'] == 1){
$tmp = Array();
// preberemo prve vrednosti iz vsakega stolpca
for($j=0; $j<$_variables_count; $j++){
$offset = $j;
$tmp[] = (int)$dataArray[$offset]['avg'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
// Sortiramo podaatke po prvi kategoriji
elseif($settings['sort'] == 3){
$tmp = Array();
// preberemo prve vrednosti iz vsakega stolpca
for($j=0; $j<count($spremenljivka['grids']); $j++){
$offset = $j * $_variables_count;
$tmp[] = (int)$dataArray[$offset]['avg'];
}
// sortiramo vrednosti in preberemo kljuce
arsort($tmp);
$sorted_keys = array_keys($tmp);
}
else{
for($j=0; $j<$_variables_count; $j++){
$sorted_keys[] = $j;
}
}
// Poberemo podatke v posamezne tabele
for($j=0; $j<$_variables_count; $j++){
// odmik glede na sortirane po prvem gridu (sort po kategorijah ali brez)
if($settings['sort'] < 3){
$offset = $sorted_keys[$j];
unset($vrednosti);
unset($vrednostiKey);
unset($vrednostiVariable);
for($i=0; $i<count($spremenljivka['grids']); $i++){
$vrednosti[] = $dataArray[$i*$_variables_count+$offset]['avg'];
$vrednostiMax[] = $dataArray[$i*$_variables_count+$offset]['max'];
$vrednostiMin[] = $dataArray[$i*$_variables_count+$offset]['min'];
$vrednostiKey[] = $dataArray[$i*$_variables_count+$offset]['key'];
$vrednostiVariable[] = $dataArray[$i*$_variables_count+$offset]['variable'];
}
if(count($vrednosti) > 0)
$DataSet->AddPoint($vrednosti,'Vrednosti'.$vrednostiKey[0]);
else
$DataSet->AddPoint(array(0),'Vrednosti'.$vrednostiKey[0]);
$DataSet->AddSerie('Vrednosti'.$vrednostiKey[0]);
$DataSet->SetSerieName($vrednostiVariable[0],'Vrednosti'.$vrednostiKey[0]);
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiGrid,'Variable'.$vrednostiKey[0]);
//$DataSet->AddPoint($vrednostiKey,"Variable");
$DataSet->SetAbsciseLabelSerie('Variable'.$vrednostiKey[0]);
}
// sort po prvi kategoriji
else{
$offset = $sorted_keys[$j];
unset($vrednosti);
unset($vrednostiKey);
unset($vrednostiVariable);
for($i=0; $i<count($spremenljivka['grids']); $i++){
$vrednosti[] = $dataArray[$sorted_keys[$i]*$_variables_count + $j]['avg'];
$vrednostiMax[] = $dataArray[$sorted_keys[$i]*$_variables_count + $j]['max'];
$vrednostiMin[] = $dataArray[$sorted_keys[$i]*$_variables_count + $j]['min'];
$vrednostiKey[] = $dataArray[$sorted_keys[$i]*$_variables_count + $j]['key'];
$vrednostiVariable[] = $dataArray[$sorted_keys[$i]*$_variables_count + $j]['variable'];
}
if(count($vrednosti) > 0)
$DataSet->AddPoint($vrednosti,'Vrednosti'.$vrednostiKey[0]);
else
$DataSet->AddPoint(array(0),'Vrednosti'.$vrednostiKey[0]);
$DataSet->AddSerie('Vrednosti'.$vrednostiKey[0]);
$DataSet->SetSerieName($vrednostiVariable[0],'Vrednosti'.$vrednostiKey[0]);
// Vedno izpisemo cela imena variabel
$DataSet->AddPoint($vrednostiGrid,'Variable'.$vrednostiKey[0]);
//$DataSet->AddPoint($vrednostiKey,"Variable");
$DataSet->SetAbsciseLabelSerie('Variable'.$vrednostiKey[0]);
}
}
}
//$DataSet->SetYAxisName($lang['srv_analiza_sums_average']);
}
// Nastavimo other vrednosti
$DataSet->SetOther($_answersOther);
// ce imamo prazno in de prikazujemo praznih grafov
$hideEmpty = SurveyDataSettingProfiles :: getSetting('hideEmpty');
if($emptyData && $hideEmpty == 1)
return 0;
else
return $DataSet;
}
// Preverimo ce ima dropdown samo numeric vrednosti -> potem ga obravnavamo kot tip number
static function checkDropdownNumeric($spid){
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
$check = true;
foreach ($spremenljivka['options'] AS $option) {
if(!is_numeric($option))
$check = false;
}
return $check;
}
// Funkcije za izris posameznih tipov grafov - vertikalni stolpci
static function createVerBars($DataSet, $spremenljivka, $show_legend=0, $fixedScale=0){
$Data = $DataSet->GetData();
$countGrids = count($Data);
$angle = 0;
$addHeight = 0;
$roundText = 15;
if($countGrids > 5){
$angle = 45;
$addHeight = 110;
$roundText = 25;
}
if($show_legend == 1)
$addHeight += 70;
// Initialise the graph
$Test = new pChart(self::$quality*800,self::$quality*(250+$addHeight));
// Nastavimo barve grafu glede na skin
$Test = self::setChartColors($Test, self::$skin);
$Test->setLineStyle(self::$quality,$DotSize=0);
$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*(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->drawGraphArea(255,255,255,TRUE);
// Pri checkboxu lahko naredimo fiksno skalo
if($spremenljivka['tip'] == 2 && self::$settings['noFixedScale'] == 1){
// Frekvence
if(self::$settings['value_type'] == 1){
// Dobimo sum frekvenc
$sum = 0;
foreach($Data as $vrednost){
$sum += $vrednost['Vrednosti'];
}
$Test->setFixedScale(0, $sum);
}
// Odstotki
else
$Test->setFixedScale(0, 100);
}
// Pri dvojnem multigridu prikazemo skalo od 1 do stevila variabel
if($spremenljivka['tip'] == 6 && $spremenljivka['enota'] == 3){
$VMax = count($spremenljivka['options']);
// Zacnemo skalo z 1
if($fixedScale == 0){
$Divisions = $VMax-1;
$VMin = 1;
}
// Zacnemo skalo z 0
else{
$VMax--;
$Divisions = $VMax;
$VMin = 0;
}
$Test->setFixedScale($VMin, $VMax, $Divisions);
}
$Test->drawScale($Data,$DataSet->GetDataDescription(),SCALE_START0,0,0,0,TRUE,$angle,0,TRUE,1,FALSE,$roundText);
$Test->drawGrid(4,TRUE,230,230,230,50);
// Draw the 0 line
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*6);
$Test->drawTreshold(0,143,55,72,TRUE,TRUE);
// Draw the bar graph
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
$Test->drawBarGraph($Data,$DataSet->GetDataDescription(), false, 95, self::$settings['barLabel'], self::$settings['barLabelSmall']);
// Finish the graph
if($show_legend == 1)
//$Test->drawLegend(self::$quality*680,self::$quality*30,$DataSet->GetDataDescription(),255,255,255);
// pri vodoravnih strukturnih stolpcih izrisemo legendo na dnu
$Test->drawVerticalLegend(self::$quality*400,self::$quality*(190+$addHeight),$DataSet->GetDataDescription(),255,255,255);
//$Test->setFontProperties("Fonts/verdana.ttf",10);
//$Test->drawTitle(50,22,$spremenljivka['variable'].' - '.$spremenljivka['naslov'],50,50,50,585);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Prikaz numerusa na grafu
$char = (self::$settings['base'] == 1 && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16)) ? 'r' : 'n';
if( self::$settings['show_numerus'] == 1 || (self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1) )
$numerus = $char.' = '.$DataSet->GetNumerus();
elseif( self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 2 )
$numerus = $char.' = ' . $DataSet->GetNumerus() . self::$numerusText;
else
$numerus = '';
$Test->drawTextBox(self::$quality*680,self::$quality*210,self::$quality*795,self::$quality*220,$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$vars = isset($spremenljivka['options']) ? count($spremenljivka['options']) : 0;
// Prikaz povprecja na grafu (samo pri ordinalnem radiu)
if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3)
&& $spremenljivka['skala'] != 1
&& (self::$settings['show_avg'] == 1 || (self::$settings['show_avg'] == -1 && $vars == 5 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ){
$Test->drawTextBox(self::$quality*680,self::$quality*40,self::$quality*795,self::$quality*45,'x = '.$DataSet->GetAverage(),$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$Test->drawTextBox(self::$quality*680,self::$quality*45,self::$quality*795,self::$quality*50,'‾',$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
}
// Prikaz povprecja za number
if( ($spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 22)
&& (self::$settings['show_avg'] == 1 || (self::$settings['show_avg'] == -1 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ){
$Test->drawTextBox(self::$quality*680,self::$quality*90,self::$quality*795,self::$quality*95,'x = '.$DataSet->GetAverage(),$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$Test->drawTextBox(self::$quality*680,self::$quality*95,self::$quality*795,self::$quality*100,'‾',$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
}
return $Test;
}
// Funkcije za izris posameznih tipov grafov - horizontalni stolpci
static function createHorBars($DataSet, $spremenljivka, $show_legend=0, $fixedScale=0){
global $lang;
// Nastavimo visino grafa (ce imamo vec kot 7 variabel/gridov)
$Data = $DataSet->GetData();
$countGrids = count($Data);
$addHeight = $countGrids > 5 ? ($countGrids-5)*30 : 0;
// Dodamo prostor na dnu za legendo pri multigrid povprecjih
$addLegendSpace = 0;
if($show_legend == 1 && $spremenljivka['tip'] == 6 && self::$settings['type'] == 0 && $spremenljivka['enota'] != 3)
$addLegendSpace = 70;
// Initialise the graph
$Test = new MyHorBar(self::$quality*800,self::$quality*(250+$addHeight+$addLegendSpace));
// Nastavimo barve grafu glede na skin
$Test = self::setChartColors($Test, self::$skin);
$Test->setLineStyle(self::$quality,$DotSize=0);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Sirina label
// Ce iamo povprecje ni labele
if(in_array($spremenljivka['tip'],array(1,3,7)) && self::$settings['type'] == 9){
$startX = 160;
$roundText = 35;
}
elseif(self::$settings['labelWidth'] == 20){
$startX = 225;
$roundText = 35;
}
elseif(self::$settings['labelWidth'] == 75){
$startX = 500;
$roundText = 80;
}
else{
$startX = 360;
$roundText = 60;
}
$Test->setGraphArea(self::$quality*$startX,self::$quality*50,self::$quality*650,self::$quality*(220+$addHeight));
$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->drawGraphArea(255,255,255,TRUE);
// Pri ordinalnih multigridih prikazemo skalo od 1 do stevila variabel (ce prikazujemo povprecja)
if( ($spremenljivka['tip'] == 6 && self::$settings['type'] == 0) || ($spremenljivka['tip'] == 17 && self::$settings['type'] == 0) ){
$VMax = count($spremenljivka['options']);
// Zacnemo skalo z 1
if($fixedScale == 0){
$Divisions = $VMax-1;
$VMin = 1;
}
// Zacnemo skalo z 0
else{
$VMax--;
$Divisions = $VMax;
$VMin = 0;
}
$Test->setFixedScale($VMin, $VMax, $Divisions);
}
// Pri checkboxu lahko naredimo fiksno skalo
if($spremenljivka['tip'] == 2 && self::$settings['noFixedScale'] == 1){
// Frekvence
if(self::$settings['value_type'] == 1){
// Dobimo sum frekvenc
$sum = 0;
foreach($DataSet->GetData() as $vrednost){
$sum += $vrednost['Vrednosti'];
}
$Test->setFixedScale(0, $sum);
}
// Odstotki
else
$Test->setFixedScale(0, 100);
}
// Pri povprecju (radio) poiscemo najvecjo vrednost
if(in_array($spremenljivka['tip'],array(1,3)) && self::$settings['type'] == 9){
$VMax = count($spremenljivka['options']);
foreach($DataSet->GetData() as $vrednost){
$VMax = ($VMax < $vrednost['Vrednosti']) ? $vrednost['Vrednosti'] : $VMax;
}
$VMin = 0;
$Test->setFixedScale($VMin, $VMax);
}
// Pri povprecju (numeric) poiscemo najvecjo vrednost
elseif(($spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 22) && self::$settings['type'] == 9){
$VMax = 1;
$sequences = explode('_', $spremenljivka['sequences']);
foreach($sequences as $sequence){
if (count(SurveyAnalysis::$_FREQUENCYS[$sequence]['valid']) > 0 ) {
foreach(SurveyAnalysis::$_FREQUENCYS[$sequence]['valid'] AS $vkey => $vAnswer) {
$VMax = ($VMax < (int)$vAnswer['text']) ? (int)$vAnswer['text'] : $VMax;
}
}
}
$VMin = 0;
$Test->setFixedScale($VMin, $VMax);
}
$Test->drawHorScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,0,0,0,TRUE,0,0,TRUE,1,FALSE,$roundText);
$Test->drawHorGrid(4,TRUE,230,230,230,50);
// Draw the 0 line
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*6);
$Test->drawTreshold(0,143,55,72,TRUE,TRUE);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Draw the bar graph
$Test->drawHorBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(), self::$settings['barLabel'], self::$settings['barLabelSmall']);
// Finish the graph
if($show_legend == 1){
// posebna legenda pri povprecjih
if($spremenljivka['tip'] == 6 && self::$settings['type'] == 0 && $spremenljivka['enota'] != 3)
//$Test->drawAvgVerticalLegend(self::$quality*680,self::$quality*30,$spremenljivka['options'],255,255,255);
$Test->drawAvgVerticalLegend(self::$quality*400,self::$quality*(190+$addHeight+$addLegendSpace),$spremenljivka['options'],255,255,255);
else
$Test->drawLegend(self::$quality*680,self::$quality*30,$DataSet->GetDataDescription(),255,255,255);
}
if($spremenljivka['tip'] == 18 || $spremenljivka['tip'] == 20)
$Test->drawTitle(self::$quality*200,self::$quality*22,$lang['srv_analiza_sums_average'],0,0,0,self::$quality*680);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Prikaz numerusa na grafu
$char = (self::$settings['base'] == 1 && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16)) ? 'r' : 'n';
if( self::$settings['show_numerus'] == 1 || (self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1) )
$numerus = $char.' = '.$DataSet->GetNumerus();
elseif( self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 2 )
$numerus = $char.' = ' . $DataSet->GetNumerus() . self::$numerusText;
else
$numerus = '';
$Test->drawTextBox(self::$quality*680,self::$quality*(210+$addHeight),self::$quality*795,self::$quality*(220+$addHeight),$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$vars = isset($spremenljivka['options']) ? count($spremenljivka['options']) : 0;
// Prikaz povprecja na grafu (samo pri ordinalnem radiu)
if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3)
&& $spremenljivka['skala'] != 1
&& (self::$settings['show_avg'] == 1 || (self::$settings['show_avg'] == -1 && $vars == 5 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ){
$Test->drawTextBox(self::$quality*680,self::$quality*50,self::$quality*795,self::$quality*55,'x = '.$DataSet->GetAverage(),$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$Test->drawTextBox(self::$quality*680,self::$quality*55,self::$quality*795,self::$quality*60,'‾',$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
}
// Prikaz povprecja za number
if( ($spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 22)
&& (self::$settings['show_avg'] == 1 || (self::$settings['show_avg'] == -1 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ){
$Test->drawTextBox(self::$quality*680,self::$quality*90,self::$quality*795,self::$quality*95,'x = '.$DataSet->GetAverage(),$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$Test->drawTextBox(self::$quality*680,self::$quality*95,self::$quality*795,self::$quality*100,'‾',$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
}
return $Test;
}
// Funkcije za izris posameznih tipov grafov - vertikalni sestavljeni stolpci
static function createVerStructBars($DataSet, $spremenljivka){
$Data = $DataSet->GetData();
$countGrids = count($Data);
$angle = 0;
$addHeight = 0;
$roundText = 15;
if($countGrids > 5){
$angle = 45;
$addHeight = 110;
$roundText = 30;
}
// Initialise the graph
$Test = new pChart(self::$quality*800,self::$quality*(250+$addHeight));
// Nastavimo barve grafu glede na skin
$Test = self::setChartColors($Test, self::$skin);
$Test->setLineStyle(self::$quality,$DotSize=0);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Pri navadnem radio in checkbox vprasanju imamo samo en stolpec - zato so dimenzije drugacne
if($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 3)
$Test->setGraphArea(self::$quality*250,self::$quality*40,self::$quality*500,self::$quality*220);
else
$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);
$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);
// Draw the 0 line
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*6);
$Test->drawTreshold(0,143,55,72,TRUE,TRUE);
// Draw the bar graph
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
$Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(), self::$settings['barLabel'], 95);
// Finish the graph
if($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 3)
$Test->drawLegend(self::$quality*580,self::$quality*30,$DataSet->GetDataDescription(),255,255,255,$Rs=-1,$Gs=-1,$Bs=-1,$Rt=0,$Gt=0,$Bt=0,$Border=false,$reverse=true);
else
$Test->drawLegend(self::$quality*680,self::$quality*30,$DataSet->GetDataDescription(),255,255,255,$Rs=-1,$Gs=-1,$Bs=-1,$Rt=0,$Gt=0,$Bt=0,$Border=false,$reverse=true);
$Test->setFontProperties("Fonts/verdana.ttf",self::$quality*10);
//$Test->drawTitle(50,22,$spremenljivka['variable'].' - '.$spremenljivka['naslov'],50,50,50,585);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Prikaz numerusa na grafu
$char = (self::$settings['base'] == 1 && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16)) ? 'r' : 'n';
if( self::$settings['show_numerus'] == 1 || (self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1) )
$numerus = $char.' = '.$DataSet->GetNumerus();
elseif( self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 2 )
$numerus = $char.' = ' . $DataSet->GetNumerus() . self::$numerusText;
else
$numerus = '';
if($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 3)
$Test->drawTextBox(self::$quality*540,self::$quality*210,self::$quality*645,self::$quality*220,$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
else
$Test->drawTextBox(self::$quality*680,self::$quality*210,self::$quality*795,self::$quality*220,$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$vars = count($spremenljivka['options']);
// Prikaz povprecja na grafu (samo pri ordinalnem radiu)
if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3)
&& $spremenljivka['skala'] != 1
&& (self::$settings['show_avg'] == 1 || (self::$settings['show_avg'] == -1 && $vars == 5 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ){
$Test->drawTextBox(self::$quality*350,self::$quality*25,self::$quality*400,self::$quality*30,'x = '.$DataSet->GetAverage(),$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$Test->drawTextBox(self::$quality*350,self::$quality*30,self::$quality*400,self::$quality*35,'‾',$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
}
return $Test;
}
// Funkcije za izris posameznih tipov grafov - horizontalni sestavljeni stolpci
static function createHorStructBars($DataSet, $spremenljivka){
// Nastavimo visino graffa (ce imamo vec kot 7 variabel/gridov)
$Data = $DataSet->GetData();
$countGrids = count($Data);
$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;
// Initialise the graph
$Test = new MyHorBar(self::$quality*800,self::$quality*(250+$addHeight+50));
// Nastavimo barve grafu glede na skin
$Test = self::setChartColors($Test, self::$skin);
$Test->setLineStyle(self::$quality,$DotSize=0);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Sirina label
if(self::$settings['labelWidth'] == 20){
$startX = 225;
$roundText = 35;
}
elseif(self::$settings['labelWidth'] == 75){
$startX = 500;
$roundText = 80;
}
else{
$startX = 360;
$roundText = 60;
}
// Pri navadnem radio in checkbox vprasanju imamo samo en stolpec - zato so dimenzije drugacne
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->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);
}
// Semanticni diferencial s skalo na desni
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->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);
$Test->drawHorGrid(4,false,230,230,230,50);
}
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->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);
}
// Draw the 0 line
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*6);
$Test->drawTreshold(0,143,55,72,TRUE,TRUE);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Draw the bar graph
$Test->drawStackedHorBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),self::$settings['barLabel'],95);
// Finish the graph
/*if($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 3)
$Test->drawLegend(560,30,$DataSet->GetDataDescription(),255,255,255);
else
$Test->drawLegend(680,30,$DataSet->GetDataDescription(),255,255,255);*/
// pri vodoravnih strukturnih stolpcih izrisemo legendo na dnu
$Test->drawVerticalLegend(self::$quality*400,self::$quality*(240+$addHeight),$DataSet->GetDataDescription(),255,255,255);
$Test->setFontProperties("Fonts/verdana.ttf",self::$quality*10);
//$Test->drawTitle(50,22,$spremenljivka['variable'].' - '.$spremenljivka['naslov'],50,50,50,585);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Prikaz numerusa na grafu
$char = (self::$settings['base'] == 1 && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16)) ? 'r' : 'n';
if( self::$settings['show_numerus'] == 1 || (self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1) )
$numerus = $char.' = '.$DataSet->GetNumerus();
elseif( self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 2 )
$numerus = $char.' = ' . $DataSet->GetNumerus() . self::$numerusText;
else
$numerus = '';
/*if($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 3)
$Test->drawTextBox(570,210+$addHeight,795,220+$addHeight,'n = '.$DataSet->GetNumerus().self::$numerusText,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
else*/
$Test->drawTextBox(self::$quality*680,self::$quality*(210+$addHeight),self::$quality*795,self::$quality*(220+$addHeight),$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$vars = count($spremenljivka['options']);
// Prikaz povprecja na grafu (samo pri ordinalnem radiu)
if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3)
&& $spremenljivka['skala'] != 1
&& (self::$settings['show_avg'] == 1 || (self::$settings['show_avg'] == -1 && $vars == 5 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ){
$Test->drawTextBox(self::$quality*680,self::$quality*50,self::$quality*795,self::$quality*55,'x = '.$DataSet->GetAverage(),$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$Test->drawTextBox(self::$quality*680,self::$quality*55,self::$quality*795,self::$quality*60,'‾',$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
}
return $Test;
}
// Funkcije za izris posameznih tipov grafov - krozni graf
static function createPie($DataSet, $spremenljivka, $show_legend=1){
global $lang;
// Initialise the graph
$Test = new pChart(self::$quality*800,self::$quality*280);
// Pri pie grafu uporabimo antialiasing
$Test->setAntialias(true, 20);
// Nastavimo barve grafu glede na skin
$Test = self::setChartColors($Test, self::$skin);
$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);
// Pri vsoti ne izpisujemo procentov
if($spremenljivka['tip'] == 18 || ($spremenljivka['tip'] == 1 && self::$settings['type'] == 2 && self::$settings['value_type'] == 1))
$labels = (self::$settings['sort'] == 1) ? 'custom_sort' : 'custom';
else
$labels = (self::$settings['sort'] == 1) ? 'custom_percent_sort' : 'custom_percent';
// Izrisemo navaden krozni graf
$Test->drawFlatPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),self::$quality*390,self::$quality*145,self::$quality*95,$labels);
// Finish the graph
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
//$Test->drawLegend(700,30,$DataSet->GetDataDescription(),255,255,255);
if($show_legend == 1)
$Test->drawPieLegend(self::$quality*600,self::$quality*50,$DataSet->GetData(),$DataSet->GetDataDescription(),255,255,255);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*10);
if($spremenljivka['tip'] == 18)
$Test->drawTitle(self::$quality*180,self::$quality*30,$lang['srv_analiza_sums_average'],0,0,0,self::$quality*610);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
$Test->setAntialias(false, 0);
// Prikaz numerusa na grafu
$char = (self::$settings['base'] == 1 && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16)) ? 'r' : 'n';
if( self::$settings['show_numerus'] == 1 || (self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1) )
$numerus = $char.' = '.$DataSet->GetNumerus();
elseif( self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 2 )
$numerus = $char.' = ' . $DataSet->GetNumerus() . self::$numerusText;
else
$numerus = '';
$Test->drawTextBox(self::$quality*600,self::$quality*220,self::$quality*715,self::$quality*230,$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$vars = count($spremenljivka['options']);
// Prikaz povprecja na grafu (samo pri ordinalnem radiu)
if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3)
&& $spremenljivka['skala'] != 1
&& (self::$settings['show_avg'] == 1 || (self::$settings['show_avg'] == -1 && $vars == 5 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ){
$Test->drawTextBox(self::$quality*600,self::$quality*240,self::$quality*715,self::$quality*245,'x = '.$DataSet->GetAverage(),$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$Test->drawTextBox(self::$quality*600,self::$quality*245,self::$quality*715,self::$quality*250,'‾',$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
}
return $Test;
}
// Funkcije za izris posameznih tipov grafov - 3D krozni graf
static function create3DPie($DataSet, $spremenljivka, $show_legend=1){
global $lang;
// Initialise the graph
$Test = new pChart(self::$quality*800,self::$quality*280);
// Pri 3d pie grafu uporabimo antialiasing
$Test->setAntialias(true, 20);
// Nastavimo barve grafu glede na skin
$Test = self::setChartColors($Test, self::$skin);
$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);
// Pri vsoti ne izpisujemo procentov
if($spremenljivka['tip'] == 18 || ($spremenljivka['tip'] == 1 && self::$settings['type'] == 2 && self::$settings['value_type'] == 1))
$labels = (self::$settings['sort'] == 1) ? 'custom_sort' : 'custom';
else
$labels = (self::$settings['sort'] == 1) ? 'custom_percent_sort' : 'custom_percent';
// Izrisemo 3d krozni graf
$Test->drawPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),self::$quality*390,self::$quality*130,self::$quality*95,$labels,$EnhanceColors=true,$Skew=50,$SpliceHeight=self::$quality*20,$SpliceDistance=0,$Decimals=0);
// Finish the graph
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
//$Test->drawLegend(700,30,$DataSet->GetDataDescription(),255,255,255);
if($show_legend == 1)
$Test->drawPieLegend(self::$quality*600,self::$quality*50,$DataSet->GetData(),$DataSet->GetDataDescription(),255,255,255);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*10);
if($spremenljivka['tip'] == 18)
$Test->drawTitle(self::$quality*180,self::$quality*30,$lang['srv_analiza_sums_average'],0,0,0,self::$quality*610);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
$Test->setAntialias(false, 0);
// Prikaz numerusa na grafu
$char = (self::$settings['base'] == 1 && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16)) ? 'r' : 'n';
if( self::$settings['show_numerus'] == 1 || (self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1) )
$numerus = $char.' = '.$DataSet->GetNumerus();
elseif( self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 2 )
$numerus = $char.' = ' . $DataSet->GetNumerus() . self::$numerusText;
else
$numerus = '';
$Test->drawTextBox(self::$quality*600,self::$quality*220,self::$quality*715,self::$quality*230,$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$vars = count($spremenljivka['options']);
// Prikaz povprecja na grafu (samo pri ordinalnem radiu)
if( ($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3)
&& $spremenljivka['skala'] != 1
&& (self::$settings['show_avg'] == 1 || (self::$settings['show_avg'] == -1 && $vars == 5 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ){
$Test->drawTextBox(self::$quality*600,self::$quality*240,self::$quality*715,self::$quality*245,'x = '.$DataSet->GetAverage(),$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$Test->drawTextBox(self::$quality*600,self::$quality*245,self::$quality*715,self::$quality*250,'‾',$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
}
return $Test;
}
// Funkcije za izris posameznih tipov grafov - linijski graf
//spremenljivka je lahko null za linijski graf analize editiranja (SurveyEditsAnalysis)
static function createLine($DataSet, $spremenljivka, $show_legend=0, $fixedScale=0){
// Initialise the graph
$Test = new pChart(self::$quality*800,self::$quality*280);
// Nastavimo barve grafu glede na skin
$Test = self::setChartColors($Test, self::$skin);
if($spremenljivka != null && ($spremenljivka['tip'] == 6 && $fixedScale == 1 && $spremenljivka['enota'] != 3) || ($spremenljivka['tip'] == 6 && $fixedScale == 0 && $spremenljivka['enota'] == 3)){
$VMax = count($spremenljivka['options']);
$Divisions = $VMax-1;
$Test->setFixedScale($VMin=1, $VMax, $Divisions);
}
$count = count($DataSet->GetData());
// Ce imamo numeric vse vrednosti in jih je vec kot 20 omejimo max 20 label na X osi
$SkipLabels = 1;
if($spremenljivka != null && ($spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 22) && $count > 20)
$SkipLabels = $count / 20;
// Kot label na x osi
$angle = 0;
if($count > 6)
$angle = 45;
$Test->setLineStyle(self::$quality,$DotSize=0);
$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->drawGraphArea(255,255,255,TRUE);
// Pri checkboxu lahko naredimo fiksno skalo
if($spremenljivka != null && $spremenljivka['tip'] == 2 && self::$settings['noFixedScale'] == 1){
// Frekvence
if(self::$settings['value_type'] == 1){
// Dobimo sum frekvenc
$sum = 0;
foreach($DataSet->GetData() as $vrednost){
$sum += $vrednost['Vrednosti'];
}
$Test->setFixedScale(0, $sum);
}
// Odstotki
else
$Test->setFixedScale(0, 100);
}
$Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,0,0,0,TRUE,$angle,0,TRUE, $SkipLabels);
if($count <= 20)
$Test->drawGrid(4,TRUE,230,230,230,50);
// Draw the 0 line
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
//$Test->drawTreshold(0,143,55,72,TRUE,TRUE);
// Draw the bar graph
$Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription());
if($count <= 20)
$Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),self::$quality*3,self::$quality*2,255,255,255);
if($show_legend == 1)
$Test->drawLegend(self::$quality*680,self::$quality*30,$DataSet->GetDataDescription(),255,255,255);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Prikaz numerusa na grafu
$char = (self::$settings['base'] == 1 && ($spremenljivka != null && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16))) ? 'r' : 'n';
if( self::$settings['show_numerus'] == 1 || (self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1) )
$numerus = $char.' = '.$DataSet->GetNumerus();
elseif( self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 2 )
$numerus = $char.' = ' . $DataSet->GetNumerus() . self::$numerusText;
else
$numerus = '';
$Test->drawTextBox(self::$quality*690,self::$quality*(210+$addHeight),self::$quality*795,self::$quality*(220+$addHeight),$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
// Prikaz povprecja za number
if($spremenljivka != null && ($spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 22)
&& (self::$settings['show_avg'] == 1 || (self::$settings['show_avg'] == -1 && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ){
$Test->drawTextBox(self::$quality*690,self::$quality*80,self::$quality*795,self::$quality*85,'x = '.$DataSet->GetAverage(),$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
$Test->drawTextBox(self::$quality*690,self::$quality*85,self::$quality*795,self::$quality*90,'‾',$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
}
return $Test;
}
// Funkcije za izris posameznih tipov grafov - linijski graf
static function createVerLine($DataSet, $spremenljivka, $show_legend=0, $fixedScale=0){
// Nastavimo visino grafa (ce imamo vec kot 7 variabel/gridov)
$Data = $DataSet->GetData();
$countGrids = count($Data);
$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;
// Initialise the graph
$Test = new MyHorBar(self::$quality*800,self::$quality*(250+$addHeight));
// Nastavimo barve grafu glede na skin
$Test = self::setChartColors($Test, self::$skin);
if($spremenljivka['tip'] == 6 && $fixedScale == 0){
$VMax = count($spremenljivka['options']);
$Divisions = $VMax-1;
$Test->setFixedScale($VMin=1, $VMax, $Divisions);
}
$Test->setLineStyle(self::$quality,$DotSize=0);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
$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->drawGraphArea(255,255,255,TRUE);
$Test->drawHorScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,0,0,0,TRUE,0,0,TRUE,1,$rightScale,$roundText=40);
$Test->drawHorGrid(4,false,230,230,230,50);
// Draw the 0 line
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*6);
$Test->drawTreshold(0,143,55,72,TRUE,TRUE);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Draw the line graph
$Test->drawVerLineGraph($DataSet->GetData(),$DataSet->GetDataDescription(), $insideValues=false);
// Finish the graph
if($show_legend == 1){
// posebna legenda pri povprecjih
if($spremenljivka['tip'] == 6 && self::$settings['type'] == 6)
$Test->drawAvgLegend(self::$quality*680,self::$quality*30,$spremenljivka['options'],255,255,255);
else
$Test->drawLegend(self::$quality*680,self::$quality*30,$DataSet->GetDataDescription(),255,255,255);
}
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
if($spremenljivka['tip'] == 18)
$Test->drawTitle(self::$quality*200,self::$quality*22,'Povprečje',150,150,150,self::$quality*585);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Prikaz numerusa na grafu
$char = (self::$settings['base'] == 1 && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16)) ? 'r' : 'n';
if( self::$settings['show_numerus'] == 1 || (self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1) )
$numerus = $char.' = '.$DataSet->GetNumerus();
elseif( self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 2 )
$numerus = $char.' = ' . $DataSet->GetNumerus() . self::$numerusText;
else
$numerus = '';
$Test->drawTextBox(self::$quality*680,self::$quality*(210+$addHeight),self::$quality*795,self::$quality*(220+$addHeight),$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
return $Test;
}
// Funkcije za izris posameznih tipov grafov - vertikalni stolpci
static function createRadar($DataSet, $spremenljivka, $show_legend=0, $fixedScale=0){
$Data = $DataSet->GetData();
$countGrids = count($Data);
// Initialise the graph
$Test = new pChart(self::$quality*800,self::$quality*350);
// Pri radarju uporabimo antialiasing
$Test->setAntialias(true, 20);
// Nastavimo barve grafu glede na skin
$Test = self::setChartColors($Test, self::$skin);
$Test->setLineStyle(self::$quality,$DotSize=0);
$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);
// Draw the 0 line
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
$Test->drawTreshold(0,143,55,72,TRUE,TRUE);
// Pri ordinalnih multigridih prikazemo skalo od 1 do stevila variabel (ce prikazujemo povprecja)
if($spremenljivka['tip'] == 6 /*&& $spremenljivka['skala'] == 0*/ && $fixedScale == 0){
$VMax = count($spremenljivka['options']) - 1;
$Divisions = $VMax-1;
$Test->setFixedScale($VMin=1, $VMax, $Divisions);
}
else
$VMax = -1;
// Draw the radar
$Test->drawRadarAxis($DataSet->GetData(),$DataSet->GetDataDescription(),true,5,0,0,0,160,160,160,$VMax,self::$settings['radar_scale']);
// Tip radarja - navaden ali samo crte
if(self::$settings['radar_type'] == 1)
$Test->drawFilledRadar($DataSet->GetData(),$DataSet->GetDataDescription(),50,5,$VMax);
else{
$Test->setLineStyle($Width=(2*self::$quality),$DotSize=0);
$Test->drawRadar($DataSet->GetData(),$DataSet->GetDataDescription(),5,$VMax);
}
$Test->setAntialias(false, 0);
// Finish the graph
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
if($show_legend == 1){
// posebna legenda pri povprecjih
if($spremenljivka['tip'] == 6 && self::$settings['type'] == 5)
$Test->drawAvgLegend(self::$quality*680,self::$quality*30,$spremenljivka['options'],255,255,255);
else
$Test->drawLegend(self::$quality*680,self::$quality*30,$DataSet->GetDataDescription(),255,255,255);
}
$Test->setFontProperties("Fonts/verdana.ttf",self::$quality*10);
//$Test->drawTitle(50,22,$spremenljivka['variable'].' - '.$spremenljivka['naslov'],50,50,50,585);
$Test->setFontProperties(dirname(__FILE__).'/../../pChart/Fonts/verdana.ttf',self::$quality*self::$fontSize);
// Prikaz numerusa na grafu
$char = (self::$settings['base'] == 1 && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16)) ? 'r' : 'n';
if( self::$settings['show_numerus'] == 1 || (self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1) )
$numerus = $char.' = '.$DataSet->GetNumerus();
elseif( self::$settings['show_numerus'] == -1 && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 2 )
$numerus = $char.' = ' . $DataSet->GetNumerus() . self::$numerusText;
else
$numerus = '';
$Test->drawTextBox(self::$quality*600,self::$quality*220,self::$quality*715,self::$quality*230,$numerus,$Angle=0,$R=0,$G=0,$B=0,$Align=ALIGN_LEFT,$Shadow=FALSE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=0);
return $Test;
}
// Nastavitve na vrhu
static function displayGlobalSettings(){
global $lang;
global $admin_type;
global $site_url;
self::$skin = SurveyUserSetting :: getInstance()->getSettings('default_chart_profile_skin');
//moznost osvezevanja grafov - ne uporabljamo zaenkrat
if($admin_type < 2 && false)
echo '<a href="'.$site_url.'?anketa='.self::$anketa.'&a=analysis&m=charts&refresh=1"><img src="img_0/random_off.png" title="Osveži grafe" /></a>';
// Izrisemo ostale filtre
SurveyAnalysis::DisplayFilters(self::$quality);
// prklop na vecjo resolucijo grafov (zaenkrat tukaj - kasneje v globalne nastavitve)
//self::displayHQSetting();
echo '<div id="displayFilterNotes">';
# če imamo filter zoom ga izpišemo
SurveyZoom::getConditionString();
# če imamo filter ifov ga izpišemo
SurveyConditionProfiles:: getConditionString();
# če imamo filter ifov za inspect ga izpišemo
$SI = new SurveyInspect(self::$anketa);
$SI->getConditionString();
# če ne uporabljamo privzetega časovnega profila izpišemo opozorilo
SurveyTimeProfiles :: printIsDefaultProfile();
# če imamo filter spremenljivk ga izpišemo
SurveyVariablesProfiles:: getProfileString(true);
# če imamo rekodiranje
$SR = new SurveyRecoding(self::$anketa);
$SR -> getProfileString();
SurveyDataSettingProfiles :: getVariableTypeNote($doNewLine);
echo '</div>';
}
public static function displayHQSetting(){
global $lang;
echo '<div id="chart_hq_setting" class="analiza">';
echo '<ul>';
echo '<li>';
echo $lang['srv_chart_hq'].': ';
echo '<input type="checkbox" name="chart_hq" id="chart_hq" onClick="changeChartHq(this)" '.(self::$quality == 3 ? ' checked="checked"' : '').'>';
echo '</li>';
# nastavitev skina grafov
echo '<li>';
$SSH = new SurveyStaticHtml(self::$anketa);
$SSH -> displayLinkChart(false);
echo '</li>';
echo '</div>';
}
// Nastavitve na dnu
static function displayBottomSettings(){
global $site_path;
global $lang;
echo '<div class="chart_bottom_settings">';
echo '<a href="#" onClick="addCustomReportAllElementsAlert(4);" title="'.$lang['srv_custom_report_comments_add_hover'].'" style="margin-right: 40px;"><span class="spaceRight faicon comments_creport" ></span><span class="bold">'.$lang['srv_custom_report_comments_add'].'</span></a>';
echo '<a href="#" onClick="printAnaliza(\'Grafi\'); return false;" title="'.$lang['hour_print2'].'" class="srv_ico"><span class="faicon print icon-grey_dark_link"></span></a>';
echo '<a href="'.makeEncodedIzvozUrlString('izvoz.php?m=charts&anketa=' . self::$anketa) . '" target="_blank" title="'.$lang['PDF_Izpis'].'"><span class="faicon pdf black very_large" ></span></a>';
echo '<a href="'.makeEncodedIzvozUrlString('izvoz.php?m=charts_rtf&anketa=' . self::$anketa) . '" target="_blank" title="'.$lang['RTF_Izpis'].'"><span class="faicon rtf black very_large"></span></a>';
echo '<a href="'.makeEncodedIzvozUrlString('izvoz.php?m=charts_ppt&anketa=' . self::$anketa) . '" target="_blank" title="'.$lang['PPT_Izpis'].'"><span class="faicon ppt black very_large"></span></a>';
echo '<a href="#" onclick="doArchiveAnaliza();" title="'.$lang['srv_analiza_arhiviraj_ttl'].'"><span class="faicon arhiv black very_large"></span></a>';
echo '<a href="#" onclick="createArchiveBeforeEmail();" title="'.$lang['srv_analiza_arhiviraj_email_ttl'] . '"><span class="faicon arhiv_mail black very_large"></span></a>';
echo '</div>';
}
// Pripis pod grafom (numerus, povprecje, spremenljivka...)
static function displayBottomChartInfo($DataSet, $spremenljivka){
global $site_path;
global $lang;
echo '<div class="chart_bottom_info">';
echo '<ul>';
// spremenljivka
echo '<li>'.$lang['srv_spremenljivka'].': <span class="strong">'.$spremenljivka['variable'].'</span> <span class="anl_ita">('.$lang['srv_vprasanje_tip_'.$spremenljivka['tip']].')</span></li>';
// numerus
if(self::$settings['base'] == 1 && ($spremenljivka['tip'] == 2 || $spremenljivka['tip'] == 16))
echo '<li>, r = <span class="strong">'.$DataSet->GetNumerus().'</span> <span class="anl_ita">'.self::$numerusText.'</span></li>';
else
echo '<li>, n = <span class="strong">'.$DataSet->GetNumerus().'</span> <span class="anl_ita">'.self::$numerusText.'</span></li>';
// povprecje (ce je radio ali droipdown ordinalna)
if(($spremenljivka['tip'] == 1 || $spremenljivka['tip'] == 3) && $spremenljivka['skala'] != 1)
echo '<li>, <span style="text-decoration: overline;">x</span> = <span class="strong">'.$DataSet->GetAverage().'</span></li>';
echo '</ul>';
echo '</div>';
}
// Nastavitve posameznega grafa
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 '<div id="switch_left_'.$spid.'_loop_'.self::$current_loop.'" class="switch_left '.(self::$settings_mode == 1 ? ' non-active' : '').'" onClick="chartSwitchSettings(\''.$spid.'\', \'0\', \''.self::$current_loop.'\')">'.$lang['srv_chart_settings_basic'].'</div>';
//echo '<span id="switch_middle_'.$spid.'_loop_'.self::$current_loop.'" class="'.(self::$settings_mode == 1 ? 'rightHighlight' : 'leftHighlight').'"></span>';
echo '<div id="switch_right_'.$spid.'_loop_'.self::$current_loop.'" class="switch_right '.(self::$settings_mode == 0 ? ' non-active' : '').'" onClick="chartSwitchSettings(\''.$spid.'\', \'1\', \''.self::$current_loop.'\')">'.$lang['srv_chart_settings_advanced'].'</div>';
// OSNOVNE NASTAVITVE
echo '<div class="chart_settings_inner" id="chart_settings_basic_'.$spid.'_loop_'.self::$current_loop.'" '.(self::$settings_mode == 1 ? ' style="display:none;"' : '').'>';
//echo '<span class="title">'.$lang['srv_chart_settings'].'</span>';
switch($spremenljivka['tip']){
case 1:
case 3:
self::displayRadioSettings($spid, $settings);
break;
case 2:
self::displayCheckboxSettings($spid, $settings);
break;
case 6:
if($spremenljivka['enota'] == 3)
self::displayDoubleMultigridSettings($spid, $settings);
else
self::displayMultigridSettings($spid, $settings);
break;
case 7:
case 22:
self::displayNumberSettings($spid, $settings);
break;
case 8:
self::displayDateSettings($spid, $settings);
break;
case 16:
self::displayMulticheckboxSettings($spid, $settings);
break;
case 17:
self::displayRankingSettings($spid, $settings);
break;
case 18:
self::displayVsotaSettings($spid, $settings);
break;
case 20:
self::displayMultinumberSettings($spid, $settings);
break;
case 21:
case 4:
self::displayTableSettings($spid);
break;
case 19:
self::displayMultitextSettings($spid, $settings);
break;
default:
break;
}
// Preview vprasanja
//SurveyAnalysis::showVariable($spid, $spremenljivka['variable']);
echo '<div class="chart_setting" style="text-align: center; margin-top: 20px;">';
echo '<span style="margin-right: 6px; line-height: 6px; font-weight: 600; font-size: 11px;">';
//echo $lang['srv_vprasanje'].': ';
echo $spremenljivka['variable'];
echo '</span>';
//echo '<a href="/" title="' . $lang['srv_predogled_spremenljivka'] . '" onclick="preview_spremenljivka_analiza(\'' . $spid . '\'); return false;"><span class="sprites preview"></span></a>';
echo '<a href="#" title="' . $lang['srv_predogled_spremenljivka'] . '" onclick="showspremenljivkaSingleVarPopup(\''.$spid.'\'); return false;"><span class="faicon preview"></span></a> ';
//echo '</div>';
//echo '<div class="chart_setting" style="text-align: center;">';
SurveyAnalysis::showIcons($spid,$spremenljivka,$_from='charts');
echo '</div>';
echo '</div>';
// NAPREDNE NASTAVITVE
echo '<div class="chart_settings_inner" id="chart_settings_advanced_'.$spid.'_loop_'.self::$current_loop.'" '.(self::$settings_mode == 0 ? ' style="display:none;"' : '').'>';
switch($spremenljivka['tip']){
case 1:
case 3:
self::displayAdvancedRadioSettings($spid, $settings);
break;
case 2:
self::displayAdvancedCheckboxSettings($spid, $settings);
break;
case 6:
if($spremenljivka['enota'] == 3)
self::displayAdvancedDoubleMultigridSettings($spid, $settings);
else
self::displayAdvancedMultigridSettings($spid, $settings);
break;
case 7:
case 22:
self::displayAdvancedNumberSettings($spid, $settings);
break;
case 8:
self::displayAdvancedDateSettings($spid, $settings);
break;
case 16:
self::displayAdvancedMulticheckboxSettings($spid, $settings);
break;
case 17:
self::displayAdvancedRankingSettings($spid, $settings);
break;
case 18:
self::displayAdvancedVsotaSettings($spid, $settings);
break;
case 20:
self::displayAdvancedMultinumberSettings($spid, $settings);
break;
default:
break;
}
// Link na urejanje label
echo '<span class="edit" style="margin-top:15px;" onclick="chartAdvancedSettings(\''.$spid.'\', 1, \''.self::$current_loop.'\');">'.$lang['srv_chart_advancedLink_labels'].'</span>';
// Vprasajcek za pomoc
echo Help :: display('displaychart_settings_labels');
// Link na urejanje barv
echo '<span class="edit" onclick="chartAdvancedSettings(\''.$spid.'\', \'2\', \''.self::$current_loop.'\');">'.$lang['srv_chart_advancedLink_colors'].'</span>';
// Vprasajcek za pomoc
echo Help :: display('displaychart_settings_colors');
// Link na rekodiranje
echo '<span class="edit" onclick="chartAdvancedSettings(\''.$spid.'\', \'3\', \''.self::$current_loop.'\');">'.$lang['srv_chart_advancedLink_recoding'].'</span>';
// Vprasajcek za pomoc
echo Help :: display('displaychart_settings_recoding');
// 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 '<span class="edit" onclick="chartAdvancedSettings(\''.$spid.'\', \'4\', \''.self::$current_loop.'\');">'.$lang['srv_chart_advancedLink_limits'].'</span>';
// Vprasajcek za pomoc
//echo Help :: display('displaychart_settings_number');
}
echo '</div>';
}
// ikone na vrhu posameznih nastavitev (izvozi)
static function displayExportIcons($spid){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
$loop = (isset(SurveyAnalysis::$_CURRENT_LOOP)) ? SurveyAnalysis::$_CURRENT_LOOP['cnt'] : 'undefined';
// linki
echo '<div class="chart_setting_exportLinks">';
// Ikona za print
echo '<a href="#" onclick="showAnalizaSingleChartPopup(\''.$spid.'\',\''.M_ANALYSIS_CHARTS.'\'); return false;">';
echo '<span class="faicon print_small icon-grey_dark_link" title="' . $lang['PRN_Izpis'] . '"></span>';
echo '</a>';
// Izvoz posameznega grafa v PDF/RTF/PPT
echo '<a href="'.makeEncodedIzvozUrlString('izvoz.php?m=charts&anketa='.self::$anketa.'&sprID='.$spid.'&loop='.$loop).'" target="_blank" title="'.$lang['PDF_Izpis'].'"><span class="faicon pdf"></span></a>';
echo '<a href="'.makeEncodedIzvozUrlString('izvoz.php?m=charts_rtf&anketa='.self::$anketa.'&sprID='.$spid.'&loop='.$loop).'" target="_blank" title="'.$lang['RTF_Izpis'].'"><span class="faicon rtf"></span></a>';
// V PPT zaenkrat ne izvazamo tabel
if($spremenljivka['tip'] != 4 && $spremenljivka['tip'] != 19 && $spremenljivka['tip'] != 21)
echo '<a href="'.makeEncodedIzvozUrlString('izvoz.php?m=charts_ppt&anketa='.self::$anketa.'&sprID='.$spid.'&loop='.$loop).'" target="_blank" title="'.$lang['PPT_Izpis'].'"><span class="faicon ppt"></span></a>';
echo '</div>';
}
// Nastavitve za radio grafe (tip 1,3)
static function displayRadioSettings($spid, $settings){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Nastavitve numeric dropdowna - obravnavamo kot number
if($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)){
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 1, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="5" '.($settings['type']=='5'?' selected="selected"':'').'>'.$lang['srv_chart_group_horizontal'].'</option>';
echo ' <option value="6" '.($settings['type']=='6'?' selected="selected"':'').'>'.$lang['srv_chart_group_vertical'].'</option>';
echo ' <option value="7" '.($settings['type']=='7'?' selected="selected"':'').'>'.$lang['srv_chart_group_line'].'</option>';
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
echo '</select>';
echo '</div>';
// tip izpisa vrednosti
echo '<div class="chart_setting">';
echo $lang['srv_chart_valtype'].': <select id="chart_value_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_value_type" onchange="changeChart(\''.$spid.'\', 1, \'value_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['value_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_freq'].'</option>';
echo ' <option value="1" '.($settings['value_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_percent'].'</option>';
echo ' <option value="2" '.($settings['value_type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_valid'].'</option>';
echo '</select>';
echo '</div>';
// sortiranje
if($settings['type'] < 5){
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 1, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_desc'].'</option>';
echo ' <option value="2" '.($settings['sort']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_sort_asc'].'</option>';
echo '</select>';
echo '</div>';
}
// stevilo intervalov
if($settings['type'] > 4){
echo '<div class="chart_setting">';
echo $lang['srv_chart_interval'].': <select id="chart_interval_'.$spid.'_loop_'.self::$current_loop.'" name="chart_interval" onchange="changeChart(\''.$spid.'\', 1, \'interval\', \''.self::$current_loop.'\');">';
for($i=3; $i<=10; $i++){
echo ' <option value="'.$i.'" '.($settings['interval']==$i ?' selected="selected"':'').'>'.$i.'</option>';
}
echo ' <option value="20" '.($settings['interval']=='20'?' selected="selected"':'').'>20</option>';
//echo ' <option value="50" '.($settings['interval']=='50'?' selected="selected"':'').'>50</option>';
//echo ' <option value="100" '.($settings['interval']=='100'?' selected="selected"':'').'>100</option>';
echo ' <option value="-1" '.($settings['interval']=='-1'?' selected="selected"':'').'>Vsi</option>';
echo '</select>';
echo '</div>';
}
// prikaz label v stolpcih
if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 3 || $settings['type'] == 4){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabel'].': ';
echo '<input type="checkbox" id="chart_barLabel_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabel" '.($settings['barLabel']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 1, \'barLabel\', \''.self::$current_loop.'\');">';
echo '</div>';
}
}
// Nastavitve radia in navadnega dropdowna
else{
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 1, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_pie'].'</option>';
echo ' <option value="8" '.($settings['type']=='8'?' selected="selected"':'').'>'.$lang['srv_chart_3Dpie'].'</option>';
echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_structure1_hor'].'</option>';
echo ' <option value="4" '.($settings['type']=='4'?' selected="selected"':'').'>'.$lang['srv_chart_structure1_ver'].'</option>';
if($spremenljivka['skala'] != 1)
echo ' <option value="9" '.($settings['type']=='9'?' selected="selected"':'').'>'.$lang['srv_chart_avg_single'].'</option>';
echo '</select>';
echo '</div>';
// sortiranje
if($settings['type'] != 9){
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 1, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_desc'].'</option>';
echo ' <option value="2" '.($settings['sort']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_sort_asc'].'</option>';
echo '</select>';
echo '</div>';
}
// tip izpisa vrednosti
if($settings['type'] != 9){
echo '<div class="chart_setting">';
echo $lang['srv_chart_valtype'].': <select id="chart_value_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_value_type" onchange="changeChart(\''.$spid.'\', 1, \'value_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['value_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_valid'].'</option>';
echo ' <option value="1" '.($settings['value_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_freq'].'</option>';
if($settings['type'] != 2 && $settings['type'] != 8)
echo ' <option value="2" '.($settings['value_type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_percent'].'</option>';
echo '</select>';
echo '</div>';
}
// prikaz legende
if($settings['type'] == 2 || $settings['type'] == 8){
echo '<div class="chart_setting">';
echo $lang['srv_analiza_legenda'].': ';
echo '<input type="checkbox" id="chart_show_legend_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_legend" '.($settings['show_legend']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 1, \'show_legend\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// prikaz label v stolpcih
if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 3 || $settings['type'] == 4 || $settings['type'] == 9){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabel'].': ';
echo '<input type="checkbox" id="chart_barLabel_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabel" '.($settings['barLabel']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 1, \'barLabel\', \''.self::$current_loop.'\');">';
echo '</div>';
}
}
}
// Nastavitve za radio grafe (tip 1,3) - NAPREDNO
static function displayAdvancedRadioSettings($spid, $settings){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 1, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// prikaz povprecja
if($spremenljivka['skala'] != 1 && $settings['type'] != 9){
echo '<div class="chart_setting">';
$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 '<input type="checkbox" id="chart_show_avg_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_avg" '.$checked.' onchange="changeChart(\''.$spid.'\', 1, \'show_avg\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// sirina label
if($settings['type'] == 0 || $settings['type'] == 3){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 1, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
// 3D strukturni krog
/*if($settings['type'] == 2){
echo '<div class="chart_setting">';
echo $lang['srv_chart_3d_pie'].': ';
echo '<input type="checkbox" id="chart_3d_pie_'.$spid.'_loop_'.self::$current_loop.'" name="chart_3d_pie" '.($settings['3d_pie']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 1, \'3d_pie\', \''.self::$current_loop.'\');">';
echo '</div>';
}*/
// Izpusti variable brez odgovora
if(($spremenljivka['tip'] != 3 || !self::checkDropdownNumeric($spid)) && $settings['type'] != 9){
echo '<div class="chart_setting">';
echo $lang['srv_chart_hideEmtyVar'].': ';
echo '<input type="checkbox" id="chart_hideEmptyVar_'.$spid.'_loop_'.self::$current_loop.'" name="chart_hideEmptyVar" '.($settings['hideEmptyVar']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 1, \'hideEmptyVar\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// prikaz label majhnih vrednosti zraven stolpcov
if($settings['barLabel'] == 1 && ($settings['type'] == 0 || $settings['type'] == 1)){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabelSmall'].': ';
echo '<input type="checkbox" id="chart_barLabelSmall_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabelSmall" '.($settings['barLabelSmall']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 1, \'barLabelSmall\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// Preklop med ordinalno in nominalno spremenljivko - ce imamo povprecja ne smemo preklopiti na nominalno
if($settings['type'] != 9){
echo '<div class="chart_setting">';
$lestvica = SurveyAnalysis::getSpremenljivkaLegenda($spremenljivka,'skalaAsValue');
echo $lang['srv_skala'].': ';
// Vprasajcek za pomoc
echo Help :: display('srv_skala_edit');
echo '<span class="spaceLeft"></span>';
echo '<a onclick="chartAdvancedSettingsSkala(\''.$spid.'\', \'0\', \''.self::$current_loop.'\'); return false;" href="#" title="'.$lang['srv_skala_long_0'].'"><span '.($lestvica == 0 ? ' class="strong"' : '').'>'.$lang['srv_skala_short_0'].'</span></a>';
echo '<span class="blue"> / </span>';
echo '<a onclick="chartAdvancedSettingsSkala(\''.$spid.'\', \'1\', \''.self::$current_loop.'\'); return false;" href="#" title="'.$lang['srv_skala_long_1'].'"><span '.($lestvica == 1 ? ' class="strong"' : '').'>'.$lang['srv_skala_short_1'].'</span></a>';
echo '</div>';
}
}
// Nastavitve za checkbox grafe (tip 2)
static function displayCheckboxSettings($spid, $settings){
global $site_path;
global $lang;
// omejitev skale
echo '<div class="chart_setting">';
echo $lang['srv_chart_base'].': <select id="chart_base_'.$spid.'_loop_'.self::$current_loop.'" name="chart_base" onchange="changeChart(\''.$spid.'\', 2, \'base\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['base']=='0'?' selected="selected"':'').'>'.$lang['srv_analiza_opisne_units'].'</option>';
echo ' <option value="1" '.($settings['base']=='1'?' selected="selected"':'').'>'.$lang['srv_analiza_opisne_arguments'].'</option>';
echo '</select>';
echo '</div>';
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 2, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
if($settings['base'] != '0'){
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_pie'].'</option>';
echo ' <option value="7" '.($settings['type']=='7'?' selected="selected"':'').'>'.$lang['srv_chart_3Dpie'].'</option>';
echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_structure1_hor'].'</option>';
echo ' <option value="4" '.($settings['type']=='4'?' selected="selected"':'').'>'.$lang['srv_chart_structure1_ver'].'</option>';
}
else{
echo ' <option value="5" '.($settings['type']=='5'?' selected="selected"':'').'>'.$lang['srv_chart_radar'].'</option>';
echo ' <option value="6" '.($settings['type']=='6'?' selected="selected"':'').'>'.$lang['srv_chart_line'].'</option>';
}
echo '</select>';
echo '</div>';
// Tip radarja
if($settings['type'] == '5'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_type'].': <select id="chart_radar_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_type" onchange="changeChart(\''.$spid.'\', 2, \'radar_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type0'].'</option>';
echo ' <option value="1" '.($settings['radar_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type1'].'</option>';
echo '</select>';
echo '</div>';
}
// Postavitev skale pri radarju
if($settings['type'] == '5'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_scale'].': <select id="chart_radar_scale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_scale" onchange="changeChart(\''.$spid.'\', 2, \'radar_scale\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_scale']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale0'].'</option>';
echo ' <option value="1" '.($settings['radar_scale']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale1'].'</option>';
echo '</select>';
echo '</div>';
}
// tip izpisa vrednosti
echo '<div class="chart_setting">';
echo $lang['srv_chart_valtype'].': <select id="chart_value_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_value_type" onchange="changeChart(\''.$spid.'\', 2, \'value_type\', \''.self::$current_loop.'\');" '.($settings['type'] == 2 ? 'disabled="disabled"' : '').'>';
if($settings['base'] != '1')
echo ' <option value="0" '.($settings['value_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_valid'].'</option>';
echo ' <option value="1" '.($settings['value_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_freq'].'</option>';
echo ' <option value="2" '.($settings['value_type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_percent'].'</option>';
echo '</select>';
echo '</div>';
// sortiranje
if($settings['type'] != 5){
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 2, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_desc'].'</option>';
echo ' <option value="2" '.($settings['sort']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_sort_asc'].'</option>';
echo '</select>';
echo '</div>';
}
// prikaz legende
if($settings['type'] == 2 || $settings['type'] == 7){
echo '<div class="chart_setting">';
echo $lang['srv_analiza_legenda'].': ';
echo '<input type="checkbox" id="chart_show_legend_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_legend" '.($settings['show_legend']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 2, \'show_legend\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// prikaz label v stolpcih
if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 3 || $settings['type'] == 4){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabel'].': ';
echo '<input type="checkbox" id="chart_barLabel_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabel" '.($settings['barLabel']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 2, \'barLabel\', \''.self::$current_loop.'\');">';
echo '</div>';
}
}
// Nastavitve za checkbox grafe (tip 2)
static function displayAdvancedCheckboxSettings($spid, $settings){
global $site_path;
global $lang;
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 2, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// sirina label
if($settings['type'] == 0 || $settings['type'] == 3){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 2, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
// Izpusti variable brez odgovora
echo '<div class="chart_setting">';
echo $lang['srv_chart_hideEmtyVar'].': ';
echo '<input type="checkbox" id="chart_hideEmptyVar_'.$spid.'_loop_'.self::$current_loop.'" name="chart_hideEmptyVar" '.($settings['hideEmptyVar']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 2, \'hideEmptyVar\', \''.self::$current_loop.'\');">';
echo '</div>';
// prikaz polne skale
if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 6){
echo '<div class="chart_setting">';
echo $lang['srv_chart_settings_fullScale'].': ';
echo '<input type="checkbox" id="chart_noFixedScale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_noFixedScale" '.($settings['noFixedScale']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 2, \'noFixedScale\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// prikaz label majhnih vrednosti zraven stolpcov
if($settings['barLabel'] == 1 && ($settings['type'] == 0 || $settings['type'] == 1)){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabelSmall'].': ';
echo '<input type="checkbox" id="chart_barLabelSmall_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabelSmall" '.($settings['barLabelSmall']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 2, \'barLabelSmall\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// 3D strukturni krog
/*if($settings['type'] == 2){
echo '<div class="chart_setting">';
echo $lang['srv_chart_3d_pie'].': ';
echo '<input type="checkbox" id="chart_3d_pie_'.$spid.'_loop_'.self::$current_loop.'" name="chart_3d_pie" '.($settings['3d_pie']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 2, \'3d_pie\', \''.self::$current_loop.'\');">';
echo '</div>';
}*/
}
// Nastavitve za number grafe (tip 7)
static function displayNumberSettings($spid, $settings){
global $site_path;
global $lang;
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 7, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_group_horizontal'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_group_vertical'].'</option>';
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_group_line'].'</option>';
echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo ' <option value="4" '.($settings['type']=='4'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
echo ' <option value="9" '.($settings['type']=='9'?' selected="selected"':'').'>'.$lang['srv_chart_avg_single'].'</option>';
echo '</select>';
echo '</div>';
// tip izpisa vrednosti
if($settings['type'] != 9){
echo '<div class="chart_setting">';
echo $lang['srv_chart_valtype'].': <select id="chart_value_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_value_type" onchange="changeChart(\''.$spid.'\', 7, \'value_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['value_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_freq'].'</option>';
echo ' <option value="1" '.($settings['value_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_percent'].'</option>';
echo ' <option value="2" '.($settings['value_type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_valid'].'</option>';
echo '</select>';
echo '</div>';
}
// sortiranje
if($settings['type'] > 2 && $settings['type'] != 9){
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 7, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_desc'].'</option>';
echo ' <option value="2" '.($settings['sort']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_sort_asc'].'</option>';
echo '</select>';
echo '</div>';
}
// stevilo intervalov
if($settings['type'] < 3){
echo '<div class="chart_setting">';
echo $lang['srv_chart_interval'].': <select id="chart_interval_'.$spid.'_loop_'.self::$current_loop.'" name="chart_interval" onchange="changeChart(\''.$spid.'\', 7, \'interval\', \''.self::$current_loop.'\');">';
for($i=3; $i<=10; $i++){
echo ' <option value="'.$i.'" '.($settings['interval']==$i ?' selected="selected"':'').'>'.$i.'</option>';
}
echo ' <option value="20" '.($settings['interval']=='20'?' selected="selected"':'').'>20</option>';
//echo ' <option value="50" '.($settings['interval']=='50'?' selected="selected"':'').'>50</option>';
//echo ' <option value="100" '.($settings['interval']=='100'?' selected="selected"':'').'>100</option>';
echo ' <option value="-1" '.($settings['interval']=='-1'?' selected="selected"':'').'>Vsi</option>';
echo '</select>';
echo '</div>';
}
// prikaz legende
echo '<div class="chart_setting">';
echo $lang['srv_analiza_legenda'].': ';
echo '<input type="checkbox" id="chart_show_legend_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_legend" '.($settings['show_legend']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 7, \'show_legend\', \''.self::$current_loop.'\');">';
echo '</div>';
// div z nastavitvami za zgornjo in spodnjo mejo
/*echo '<fieldset class="chart_num_limits"><legend>'.$lang['srv_chart_num_limit'].'</legend>';
// min
echo '<div class="chart_setting">';
echo $lang['srv_chart_min'].': ';
echo '<input type="text" id="chart_min_'.$spid.'_loop_'.self::$current_loop.'" name="chart_min" value="'.$settings['min'].'" onBlur="changeChart(\''.$spid.'\', 7, \'min\', \''.self::$current_loop.'\');" onkeypress="checkNumber(this, 6, 0);" onkeyup="checkNumber(this, 6, 0);" />';
echo '</div>';
// polodprt interval navzdol
echo '<div class="chart_setting" style="text-align:right;">';
echo $lang['srv_chart_open_down'].': ';
echo '<input type="checkbox" id="chart_open_down_'.$spid.'_loop_'.self::$current_loop.'" name="chart_open_down" '.($settings['open_down']=='1'?' checked="checked"':'').' '.($settings['min']==''?' disabled="disabled"':'').' onchange="changeChart(\''.$spid.'\', 7, \'open_down\', \''.self::$current_loop.'\');">';
echo '</div>';
// max
echo '<div class="chart_setting">';
echo $lang['srv_chart_max'].': ';
echo '<input type="text" id="chart_max_'.$spid.'_loop_'.self::$current_loop.'" name="chart_max" value="'.$settings['max'].'" onBlur="changeChart(\''.$spid.'\', 7, \'max\', \''.self::$current_loop.'\');" onkeypress="checkNumber(this, 6, 0);" onkeyup="checkNumber(this, 6, 0);" />';
echo '</div>';
// polodprt interval navzgor
echo '<div class="chart_setting" style="text-align:right;">';
echo $lang['srv_chart_open_up'].': ';
echo '<input type="checkbox" id="chart_open_up_'.$spid.'_loop_'.self::$current_loop.'" name="chart_open_up" '.($settings['open_up']=='1'?' checked="checked"':'').' '.($settings['max']==''?' disabled="disabled"':'').' onchange="changeChart(\''.$spid.'\', 7, \'open_up\', \''.self::$current_loop.'\');">';
echo '</div>';
echo '</fieldset>';*/
}
// Nastavitve za number grafe (tip 7)
static function displayAdvancedNumberSettings($spid, $settings){
global $site_path;
global $lang;
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 7, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// prikaz povprecja
if($settings['type'] != 9){
echo '<div class="chart_setting">';
$checked = ($settings['show_avg']=='1' || ($settings['show_avg']=='-1' && SurveyDataSettingProfiles :: getSetting('chartAvgText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showAvg'].': ';
echo '<input type="checkbox" id="chart_show_avg_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_avg" '.$checked.' onchange="changeChart(\''.$spid.'\', 7, \'show_avg\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// prikaz label v stolpcih
if($settings['type'] != 2){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabel'].': ';
echo '<input type="checkbox" id="chart_barLabel_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabel" '.($settings['barLabel']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 7, \'barLabel\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// prikaz label majhnih vrednosti zraven stolpcov
if($settings['barLabel'] == 1 && $settings['type'] != 2 && $settings['type'] != 9){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabelSmall'].': ';
echo '<input type="checkbox" id="chart_barLabelSmall_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabelSmall" '.($settings['barLabelSmall']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 7, \'barLabelSmall\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// sirina label
if($settings['type'] == 0 || $settings['type'] == 3){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 7, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
}
// Nastavitve za datum grafe (tip 8)
static function displayDateSettings($spid, $settings){
global $site_path;
global $lang;
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 8, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_group_horizontal'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_group_vertical'].'</option>';
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_line'].'</option>';
echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo ' <option value="4" '.($settings['type']=='4'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
echo '</select>';
echo '</div>';
// tip izpisa vrednosti
if($settings['type'] < 3){
echo '<div class="chart_setting">';
echo $lang['srv_chart_valtype'].': <select id="chart_value_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_value_type" onchange="changeChart(\''.$spid.'\', 8, \'value_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['value_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_day'].'</option>';
echo ' <option value="1" '.($settings['value_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_month'].'</option>';
echo ' <option value="2" '.($settings['value_type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_year'].'</option>';
echo '</select>';
echo '</div>';
}
// sortiranje
if($settings['type'] > 2){
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 8, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_desc'].'</option>';
echo ' <option value="2" '.($settings['sort']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_sort_asc'].'</option>';
echo '</select>';
echo '</div>';
}
// stevilo intervalov
if($settings['type'] < 3){
echo '<div class="chart_setting">';
echo $lang['srv_chart_interval'].': <select id="chart_interval_'.$spid.'_loop_'.self::$current_loop.'" name="chart_interval" onchange="changeChart(\''.$spid.'\', 8, \'interval\', \''.self::$current_loop.'\');">';
for($i=3; $i<=10; $i++){
echo ' <option value="'.$i.'" '.($settings['interval']==$i ?' selected="selected"':'').'>'.$i.'</option>';
}
echo ' <option value="20" '.($settings['interval']=='20'?' selected="selected"':'').'>20</option>';
//echo ' <option value="50" '.($settings['interval']=='50'?' selected="selected"':'').'>50</option>';
//echo ' <option value="100" '.($settings['interval']=='100'?' selected="selected"':'').'>100</option>';
echo ' <option value="-1" '.($settings['interval']=='-1'?' selected="selected"':'').'>Vsi</option>';
echo '</select>';
echo '</div>';
}
// div z nastavitvami za zgornjo in spodnjo mejo
/*echo '<fieldset class="chart_num_limits"><legend>'.$lang['srv_chart_num_limit'].'</legend>';
// min
echo '<div class="chart_setting">';
echo $lang['srv_chart_min'].': ';
echo '<input type="text" id="chart_min_'.$spid.'_loop_'.self::$current_loop.'" name="chart_min" value="'.$settings['min'].'" onBlur="changeChart(\''.$spid.'\', 8, \'min\', \''.self::$current_loop.'\');" onkeypress="checkNumber(this, 6, 0);" onkeyup="checkNumber(this, 6, 0);" />';
echo '</div>';
// polodprt interval navdol
echo '<div class="chart_setting">';
echo $lang['srv_chart_open_down'].': ';
echo '<input type="checkbox" id="chart_open_down_'.$spid.'_loop_'.self::$current_loop.'" name="chart_open_down" '.($settings['open_down']=='1'?' checked="checked"':'').' '.($settings['min']==''?' disabled="disabled"':'').' onchange="changeChart(\''.$spid.'\', 8, \'open_down\', \''.self::$current_loop.'\');">';
echo '</div>';
// max
echo '<div class="chart_setting">';
echo $lang['srv_chart_max'].': ';
echo '<input type="text" id="chart_max_'.$spid.'_loop_'.self::$current_loop.'" name="chart_max" value="'.$settings['max'].'" onBlur="changeChart(\''.$spid.'\', 8, \'max\', \''.self::$current_loop.'\');" onkeypress="checkNumber(this, 6, 0);" onkeyup="checkNumber(this, 6, 0);" />';
echo '</div>';
// polodprt interval navgor
echo '<div class="chart_setting">';
echo $lang['srv_chart_open_up'].': ';
echo '<input type="checkbox" id="chart_open_up_'.$spid.'_loop_'.self::$current_loop.'" name="chart_open_up" '.($settings['open_up']=='1'?' checked="checked"':'').' '.($settings['max']==''?' disabled="disabled"':'').' onchange="changeChart(\''.$spid.'\', 8, \'open_up\', \''.self::$current_loop.'\');">';
echo '</div>';
echo '</fieldset>';*/
}
// Nastavitve za datum grafe (tip 8)
static function displayAdvancedDateSettings($spid, $settings){
global $site_path;
global $lang;
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 8, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// sirina label
if($settings['type'] == 0 || $settings['type'] == 3){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 8, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
}
// Nastavitve za multigrid grafe (tip 6)
static function displayMultigridSettings($spid, $settings){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 6, \'type\', \''.self::$current_loop.'\');">';
// Pri nominalnih ne prikazujemo povprecij
if($spremenljivka['skala'] != 1 && $spremenljivka['cnt_all'] != 1){
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_avg_hor'].'</option>';
echo ' <option value="5" '.($settings['type']=='5'?' selected="selected"':'').'>'.$lang['srv_chart_avg_radar'].'</option>';
echo ' <option value="6" '.($settings['type']=='6'?' selected="selected"':'').'>'.$lang['srv_chart_avg_line'].'</option>';
}
// Pri nominalnih pokazemo posebej radar
if($spremenljivka['skala'] == 1){
echo ' <option value="7" '.($settings['type']=='7'?' selected="selected"':'').'>'.$lang['srv_chart_radar'].'</option>';
}
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_structure_ver'].'</option>';
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_structure_hor'].'</option>';
echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
echo ' <option value="4" '.($settings['type']=='4'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo '</select>';
echo '</div>';
// Obrnjeni gridi in variable
if(($settings['type'] > 0 && $settings['type'] < 5) || $settings['type'] == 7){
echo '<div class="chart_setting">';
if($settings['rotate']=='1'){
echo $lang['srv_chart_rotate_grids'].' ';
//echo '<input type="checkbox" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" '.($settings['rotate']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 20, \'rotate\', \''.self::$current_loop.'\');">';
echo '<span onclick="changeChart(\''.$spid.'\', 6, \'rotate\', \''.self::$current_loop.'\');" style="cursor: pointer;"><img src="img_0/random_off.png" title="Obrni grafe/variable" /></span>';
echo '<input type="hidden" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" value="0">';
echo ' '.$lang['srv_chart_rotate_vars'].' ';
}
else{
echo $lang['srv_chart_rotate_vars'].' ';
//echo '<input type="checkbox" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" '.($settings['rotate']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 20, \'rotate\', \''.self::$current_loop.'\');">';
echo '<span onclick="changeChart(\''.$spid.'\', 6, \'rotate\', \''.self::$current_loop.'\');" style="cursor: pointer;"><img src="img_0/random_off.png" title="Obrni grafe/variable" /></span>';
echo '<input type="hidden" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" value="1">';
echo ' '.$lang['srv_chart_rotate_grids'];
}
echo '</div>';
}
// sortiranje - pri povprecjih sortiramo po velikosti (brez, narascajoce, padajoce)
if($settings['type'] == 0 || $settings['type'] == 5 || $settings['type'] == 6){
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 6, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_desc'].'</option>';
echo ' <option value="2" '.($settings['sort']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_sort_asc'].'</option>';
echo '</select>';
echo '</div>';
}
// sortiranje - pri navadnih grafih za gride (ne povprecja) sortiramo po povprecju, 1. kategoriji ali kategorijah
else{
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 6, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_category'].'</option>';
if($settings['rotate']=='0')
echo ' <option value="2" '.($settings['sort']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_sort_avg'].'</option>';
echo ' <option value="3" '.($settings['sort']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_sort_first'].'</option>';
echo '</select>';
echo '</div>';
}
// tip izpisa vrednosti
if(($settings['type'] > 0 && $settings['type'] < 5) || $settings['type'] == 7){
echo '<div class="chart_setting">';
echo $lang['srv_chart_valtype'].': <select id="chart_value_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_value_type" onchange="changeChart(\''.$spid.'\', 6, \'value_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['value_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_valid'].'</option>';
echo ' <option value="1" '.($settings['value_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_freq'].'</option>';
echo ' <option value="2" '.($settings['value_type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_percent'].'</option>';
echo '</select>';
echo '</div>';
}
// Tip radarja
if($settings['type'] == 5 || $settings['type'] == 7){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_type'].': <select id="chart_radar_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_type" onchange="changeChart(\''.$spid.'\', 6, \'radar_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type0'].'</option>';
echo ' <option value="1" '.($settings['radar_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type1'].'</option>';
echo '</select>';
echo '</div>';
}
// Postavitev skale pri radarju
if($settings['type'] == 5 || $settings['type'] == 7){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_scale'].': <select id="chart_radar_scale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_scale" onchange="changeChart(\''.$spid.'\', 6, \'radar_scale\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_scale']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale0'].'</option>';
echo ' <option value="1" '.($settings['radar_scale']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale1'].'</option>';
echo '</select>';
echo '</div>';
}
// prikaz desne skale pri sem. diferencialu (ver. linijski graf ali hor. strukturni stolpci)
if($spremenljivka['enota'] == 1 && ($settings['type'] == 2 || $settings['type'] == 6)){
echo '<div class="chart_setting">';
echo $lang['srv_chart_right_scale'].': ';
echo '<input type="checkbox" id="chart_scale_limit_'.$spid.'_loop_'.self::$current_loop.'" name="chart_scale_limit" '.($settings['scale_limit']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 6, \'scale_limit\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// prikaz legende - opcija samo pri povprecjih (drugje je vedno vklopljena)
if($settings['type'] == 0 || $settings['type'] == 5 || $settings['type'] == 6){
echo '<div class="chart_setting">';
echo $lang['srv_analiza_legenda'].': ';
echo '<input type="checkbox" id="chart_show_legend_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_legend" '.($settings['show_legend']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 6, \'show_legend\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// prikaz label v stolpcih
if($settings['type'] == 0 || $settings['type'] == 1 || $settings['type'] == 2){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabel'].': ';
echo '<input type="checkbox" id="chart_barLabel_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabel" '.($settings['barLabel']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 6, \'barLabel\', \''.self::$current_loop.'\');">';
echo '</div>';
}
}
// Nastavitve za multigrid grafe (tip 6)
static function displayAdvancedMultigridSettings($spid, $settings){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 6, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// sirina label
if($settings['type'] == 0 || $settings['type'] == 2 || $settings['type'] == 4){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 6, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
// Izpusti variable brez odgovora
echo '<div class="chart_setting">';
echo $lang['srv_chart_hideEmtyVar'].': ';
echo '<input type="checkbox" id="chart_hideEmptyVar_'.$spid.'_loop_'.self::$current_loop.'" name="chart_hideEmptyVar" '.($settings['hideEmptyVar']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 6, \'hideEmptyVar\', \''.self::$current_loop.'\');">';
echo '</div>';
// prikaz label majhnih vrednosti zraven stolpcov
if($settings['barLabel'] == 1 && $settings['type'] == 0){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabelSmall'].': ';
echo '<input type="checkbox" id="chart_barLabelSmall_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabelSmall" '.($settings['barLabelSmall']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 6, \'barLabelSmall\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// zacni skalo z 0 (samo pri povprecju)
if($settings['type'] == 0 || $settings['type'] == 5 || $settings['type'] == 6){
echo '<div class="chart_setting">';
echo $lang['srv_chart_noFixedScale'].': ';
echo '<input type="checkbox" id="chart_noFixedScale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_noFixedScale" '.($settings['noFixedScale']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 6, \'noFixedScale\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// Preklop med ordinalno in nominalno spremenljivko
echo '<div class="chart_setting">';
$lestvica = SurveyAnalysis::getSpremenljivkaLegenda($spremenljivka,'skalaAsValue');
echo $lang['srv_skala'].': ';
// Vprasajcek za pomoc
echo Help :: display('srv_skala_edit');
echo '<span class="spaceLeft"></span>';
echo '<a onclick="chartAdvancedSettingsSkala(\''.$spid.'\', \'0\', \''.self::$current_loop.'\'); return false;" href="#" title="'.$lang['srv_skala_long_0'].'"><span '.($lestvica == 0 ? ' class="strong"' : '').'>'.$lang['srv_skala_short_0'].'</span></a>';
echo '<span class="blue"> / </span>';
echo '<a onclick="chartAdvancedSettingsSkala(\''.$spid.'\', \'1\', \''.self::$current_loop.'\'); return false;" href="#" title="'.$lang['srv_skala_long_1'].'"><span '.($lestvica == 1 ? ' class="strong"' : '').'>'.$lang['srv_skala_short_1'].'</span></a>';
echo '</div>';
}
// Nastavitve za dvojne multigrid grafe (tip 6, enota 3)
static function displayDoubleMultigridSettings($spid, $settings){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 62, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_line_hor'].'</option>';
echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_line_ver'].'</option>';
echo ' <option value="4" '.($settings['type']=='4'?' selected="selected"':'').'>'.$lang['srv_chart_radar'].'</option>';
echo '</select>';
echo '</div>';
// Tip radarja
if($settings['type'] == '4'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_type'].': <select id="chart_radar_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_type" onchange="changeChart(\''.$spid.'\', 62, \'radar_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type0'].'</option>';
echo ' <option value="1" '.($settings['radar_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type1'].'</option>';
echo '</select>';
echo '</div>';
}
// Postavitev skale pri radarju
if($settings['type'] == '4'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_scale'].': <select id="chart_radar_scale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_scale" onchange="changeChart(\''.$spid.'\', 62, \'radar_scale\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_scale']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale0'].'</option>';
echo ' <option value="1" '.($settings['radar_scale']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale1'].'</option>';
echo '</select>';
echo '</div>';
}
// prikaz label v stolpcih
if($settings['type'] == 0 || $settings['type'] == 1){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabel'].': ';
echo '<input type="checkbox" id="chart_barLabel_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabel" '.($settings['barLabel']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 62, \'barLabel\', \''.self::$current_loop.'\');">';
echo '</div>';
}
}
// Nastavitve za dvojne multigrid grafe (tip 6, enota 3)
static function displayAdvancedDoubleMultigridSettings($spid, $settings){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 62, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// sirina label
if($settings['type'] == 0){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 62, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
// zacni skalo z 0
echo '<div class="chart_setting">';
echo $lang['srv_chart_noFixedScale'].': ';
echo '<input type="checkbox" id="chart_noFixedScale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_noFixedScale" '.($settings['noFixedScale']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 62, \'noFixedScale\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// Nastavitve za multicheckbox grafe (tip 16)
static function displayMulticheckboxSettings($spid, $settings){
global $site_path;
global $lang;
// omejitev skale
echo '<div class="chart_setting">';
echo $lang['srv_chart_base'].': <select id="chart_base_'.$spid.'_loop_'.self::$current_loop.'" name="chart_base" onchange="changeChart(\''.$spid.'\', 16, \'base\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['base']=='0'?' selected="selected"':'').'>'.$lang['srv_analiza_opisne_units'].'</option>';
echo ' <option value="1" '.($settings['base']=='1'?' selected="selected"':'').'>'.$lang['srv_analiza_opisne_arguments'].'</option>';
echo '</select>';
echo '</div>';
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 16, \'type\', \''.self::$current_loop.'\');">';
if($settings['base'] == '1'){
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_structure_ver'].'</option>';
echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_structure_hor'].'</option>';
}
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
if($settings['base'] == '0'){
echo ' <option value="4" '.($settings['type']=='4'?' selected="selected"':'').'>'.$lang['srv_chart_radar'].'</option>';
}
echo '</select>';
echo '</div>';
// sortiranje
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 16, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_category'].'</option>';
echo ' <option value="3" '.($settings['sort']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_sort_first'].'</option>';
echo '</select>';
echo '</div>';
// Obrnjeni gridi in variable
echo '<div class="chart_setting">';
if($settings['rotate']=='1'){
echo $lang['srv_chart_rotate_grids'].' ';
//echo '<input type="checkbox" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" '.($settings['rotate']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 20, \'rotate\', \''.self::$current_loop.'\');">';
echo '<span onclick="changeChart(\''.$spid.'\', 16, \'rotate\', \''.self::$current_loop.'\');" style="cursor: pointer;"><img src="img_0/random_off.png" title="Obrni grafe/variable" /></span>';
echo '<input type="hidden" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" value="0">';
echo ' '.$lang['srv_chart_rotate_vars'].' ';
}
else{
echo $lang['srv_chart_rotate_vars'].' ';
//echo '<input type="checkbox" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" '.($settings['rotate']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 20, \'rotate\', \''.self::$current_loop.'\');">';
echo '<span onclick="changeChart(\''.$spid.'\', 16, \'rotate\', \''.self::$current_loop.'\');" style="cursor: pointer;"><img src="img_0/random_off.png" title="Obrni grafe/variable" /></span>';
echo '<input type="hidden" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" value="1">';
echo ' '.$lang['srv_chart_rotate_grids'];
}
echo '</div>';
// Tip radarja
if($settings['type'] == '4'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_type'].': <select id="chart_radar_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_type" onchange="changeChart(\''.$spid.'\', 16, \'radar_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type0'].'</option>';
echo ' <option value="1" '.($settings['radar_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type1'].'</option>';
echo '</select>';
echo '</div>';
}
// Postavitev skale pri radarju
if($settings['type'] == '4'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_scale'].': <select id="chart_radar_scale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_scale" onchange="changeChart(\''.$spid.'\', 16, \'radar_scale\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_scale']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale0'].'</option>';
echo ' <option value="1" '.($settings['radar_scale']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale1'].'</option>';
echo '</select>';
echo '</div>';
}
// tip izpisa vrednosti
echo '<div class="chart_setting">';
echo $lang['srv_chart_valtype'].': <select id="chart_value_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_value_type" onchange="changeChart(\''.$spid.'\', 16, \'value_type\', \''.self::$current_loop.'\');">';
echo ' <option value="1" '.($settings['value_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_percent'].'</option>';
echo ' <option value="2" '.($settings['value_type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_freq'].'</option>';
if($settings['base'] == '0')
echo ' <option value="0" '.($settings['value_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_valid'].'</option>';
echo '</select>';
echo '</div>';
// prikaz label v stolpcih
if($settings['type'] == 2 || $settings['type'] == 3){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabel'].': ';
echo '<input type="checkbox" id="chart_barLabel_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabel" '.($settings['barLabel']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 16, \'barLabel\', \''.self::$current_loop.'\');">';
echo '</div>';
}
}
// Nastavitve za multicheckbox grafe (tip 16)
static function displayAdvancedMulticheckboxSettings($spid, $settings){
global $site_path;
global $lang;
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 16, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// sirina label
if($settings['type'] == 0 || $settings['type'] == 3){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 16, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
// Izpusti variable brez odgovora
echo '<div class="chart_setting">';
echo $lang['srv_chart_hideEmtyVar'].': ';
echo '<input type="checkbox" id="chart_hideEmptyVar_'.$spid.'_loop_'.self::$current_loop.'" name="chart_hideEmptyVar" '.($settings['hideEmptyVar']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 16, \'hideEmptyVar\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// Nastavitve za vsoto (tip 18)
static function displayVsotaSettings($spid, $settings){
global $site_path;
global $lang;
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 18, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_pie'].'</option>';
echo ' <option value="5" '.($settings['type']=='5'?' selected="selected"':'').'>'.$lang['srv_chart_3Dpie'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_line'].'</option>';
echo ' <option value="4" '.($settings['type']=='4'?' selected="selected"':'').'>'.$lang['srv_chart_radar'].'</option>';
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
echo '</select>';
echo '</div>';
// Tip radarja
if($settings['type'] == '4'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_type'].': <select id="chart_radar_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_type" onchange="changeChart(\''.$spid.'\', 18, \'radar_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type0'].'</option>';
echo ' <option value="1" '.($settings['radar_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type1'].'</option>';
echo '</select>';
echo '</div>';
}
// Postavitev skale pri radarju
if($settings['type'] == '4'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_scale'].': <select id="chart_radar_scale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_scale" onchange="changeChart(\''.$spid.'\', 18, \'radar_scale\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_scale']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale0'].'</option>';
echo ' <option value="1" '.($settings['radar_scale']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale1'].'</option>';
echo '</select>';
echo '</div>';
}
// sortiranje
if($settings['type'] != '4'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 18, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_desc'].'</option>';
echo ' <option value="2" '.($settings['sort']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_sort_asc'].'</option>';
echo '</select>';
echo '</div>';
}
// prikaz legende
if($settings['type'] == 0 || $settings['type'] == 5){
echo '<div class="chart_setting">';
echo $lang['srv_analiza_legenda'].': ';
echo '<input type="checkbox" id="chart_show_legend_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_legend" '.($settings['show_legend']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 18, \'show_legend\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// prikaz label v stolpcih
if($settings['type'] == 2 || $settings['type'] == 3){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabel'].': ';
echo '<input type="checkbox" id="chart_barLabel_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabel" '.($settings['barLabel']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 18, \'barLabel\', \''.self::$current_loop.'\');">';
echo '</div>';
}
}
// Nastavitve za vsoto (tip 18)
static function displayAdvancedVsotaSettings($spid, $settings){
global $site_path;
global $lang;
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 18, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// sirina label
if($settings['type'] == 2){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 18, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
// prikaz label majhnih vrednosti zraven stolpcov
if($settings['barLabel'] == 1 && ($settings['type'] == 2 || $settings['type'] == 3)){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabelSmall'].': ';
echo '<input type="checkbox" id="chart_barLabelSmall_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabelSmall" '.($settings['barLabelSmall']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 18, \'barLabelSmall\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// 3D strukturni krog
/*if($settings['type'] == 0){
echo '<div class="chart_setting">';
echo $lang['srv_chart_3d_pie'].': ';
echo '<input type="checkbox" id="chart_3d_pie_'.$spid.'_loop_'.self::$current_loop.'" name="chart_3d_pie" '.($settings['3d_pie']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 18, \'3d_pie\', \''.self::$current_loop.'\');">';
echo '</div>';
}*/
}
// Nastavitve za ranking grafe (tip 17)
static function displayRankingSettings($spid, $settings){
global $site_path;
global $lang;
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 17, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_avg'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_structure_hor'].'</option>';
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_structure_ver'].'</option>';
//echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_structure'].'</option>';
echo '</select>';
echo '</div>';
// sortiranje
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 17, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_desc'].'</option>';
echo ' <option value="2" '.($settings['sort']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_sort_asc'].'</option>';
echo '</select>';
echo '</div>';
// tip izpisa vrednosti
echo '<div class="chart_setting">';
echo $lang['srv_chart_valtype'].': <select id="chart_value_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_value_type" onchange="changeChart(\''.$spid.'\', 17, \'value_type\', \''.self::$current_loop.'\');" '.($settings['type'] == 0 ? 'disabled="disabled"' : '').'>';
echo ' <option value="0" '.($settings['value_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_freq'].'</option>';
echo ' <option value="1" '.($settings['value_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_percent'].'</option>';
//echo ' <option value="2" '.($settings['value_type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_valid'].'</option>';
echo '</select>';
echo '</div>';
// prikaz label v stolpcih
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabel'].': ';
echo '<input type="checkbox" id="chart_barLabel_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabel" '.($settings['barLabel']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 17, \'barLabel\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// Nastavitve za ranking grafe (tip 17)
static function displayAdvancedRankingSettings($spid, $settings){
global $site_path;
global $lang;
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 17, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// sirina label
if($settings['type'] == 0 || $settings['type'] == 1){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 17, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
// prikaz label majhnih vrednosti zraven stolpcov
if($settings['barLabel'] == 1 && $settings['type'] == 0){
echo '<div class="chart_setting">';
echo $lang['srv_chart_barLabelSmall'].': ';
echo '<input type="checkbox" id="chart_barLabelSmall_'.$spid.'_loop_'.self::$current_loop.'" name="chart_barLabelSmall" '.($settings['barLabelSmall']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 17, \'barLabelSmall\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// zacni skalo z 0 (samo pri povprecju)
if($settings['type'] == 0){
echo '<div class="chart_setting">';
echo $lang['srv_chart_noFixedScale'].': ';
echo '<input type="checkbox" id="chart_noFixedScale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_noFixedScale" '.($settings['noFixedScale']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 17, \'noFixedScale\', \''.self::$current_loop.'\');">';
echo '</div>';
}
}
// Nastavitve za multinumber (tip 20)
static function displayMultinumberSettings($spid, $settings){
global $site_path;
global $lang;
// Tip grafa
echo '<div class="chart_setting">';
echo $lang['srv_chart_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 20, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar'].'</option>';
echo ' <option value="1" '.($settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_vertical'].'</option>';
echo ' <option value="2" '.($settings['type']=='2'?' selected="selected"':'').'>'.$lang['srv_chart_horizontal'].'</option>';
echo ' <option value="3" '.($settings['type']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_line'].'</option>';
echo '</select>';
echo '</div>';
// sortiranje
echo '<div class="chart_setting">';
echo $lang['srv_chart_sort'].': <select id="chart_sort_'.$spid.'_loop_'.self::$current_loop.'" name="chart_sort" onchange="changeChart(\''.$spid.'\', 20, \'sort\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['sort']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_sort_no'].'</option>';
echo ' <option value="1" '.($settings['sort']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_sort_category'].'</option>';
echo ' <option value="3" '.($settings['sort']=='3'?' selected="selected"':'').'>'.$lang['srv_chart_sort_first'].'</option>';
echo '</select>';
echo '</div>';
// Obrnjeni gridi in variable
echo '<div class="chart_setting">';
if($settings['rotate']=='1'){
echo $lang['srv_chart_rotate_grids'].' ';
//echo '<input type="checkbox" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" '.($settings['rotate']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 20, \'rotate\', \''.self::$current_loop.'\');">';
echo '<span onclick="changeChart(\''.$spid.'\', 20, \'rotate\', \''.self::$current_loop.'\');" style="cursor: pointer;"><img src="img_0/random_off.png" title="Obrni grafe/variable" /></span>';
echo '<input type="hidden" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" value="0">';
echo ' '.$lang['srv_chart_rotate_vars'].' ';
}
else{
echo $lang['srv_chart_rotate_vars'].' ';
//echo '<input type="checkbox" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" '.($settings['rotate']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 20, \'rotate\', \''.self::$current_loop.'\');">';
echo '<span onclick="changeChart(\''.$spid.'\', 20, \'rotate\', \''.self::$current_loop.'\');" style="cursor: pointer;"><img src="img_0/random_off.png" title="Obrni grafe/variable" /></span>';
echo '<input type="hidden" id="chart_rotate_'.$spid.'_loop_'.self::$current_loop.'" name="chart_rotate" value="1">';
echo ' '.$lang['srv_chart_rotate_grids'];
}
echo '</div>';
// Tip radarja
if($settings['type'] == '0'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_type'].': <select id="chart_radar_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_type" onchange="changeChart(\''.$spid.'\', 20, \'radar_type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type0'].'</option>';
echo ' <option value="1" '.($settings['radar_type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_type1'].'</option>';
echo '</select>';
echo '</div>';
}
// Postavitev skale pri radarju
if($settings['type'] == '0'){
echo '<div class="chart_setting">';
echo $lang['srv_chart_radar_scale'].': <select id="chart_radar_scale_'.$spid.'_loop_'.self::$current_loop.'" name="chart_radar_scale" onchange="changeChart(\''.$spid.'\', 20, \'radar_scale\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.($settings['radar_scale']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale0'].'</option>';
echo ' <option value="1" '.($settings['radar_scale']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_radar_scale1'].'</option>';
echo '</select>';
echo '</div>';
}
}
// Nastavitve za multinumber (tip 20)
static function displayAdvancedMultinumberSettings($spid, $settings){
global $site_path;
global $lang;
// prikaz numerusa
echo '<div class="chart_setting">';
$checked = ($settings['show_numerus']=='1' || ($settings['show_numerus']=='-1' && SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 1)) ? ' checked="checked"': '';
echo $lang['srv_chart_showNumerus'].': ';
echo '<input type="checkbox" id="chart_show_numerus_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_numerus" '.$checked.' onchange="changeChart(\''.$spid.'\', 20, \'show_numerus\', \''.self::$current_loop.'\');">';
echo '</div>';
// sirina label
if($settings['type'] == 2){
echo '<div class="chart_setting">';
echo $lang['srv_wide_chart'].': <select id="chart_labelWidth_'.$spid.'_loop_'.self::$current_loop.'" name="chart_labelWidth" onchange="changeChart(\''.$spid.'\', 20, \'labelWidth\', \''.self::$current_loop.'\');">';
echo ' <option value="75" '.($settings['labelWidth']=='75'?' selected="selected"':'').'>75%</option>';
echo ' <option value="50" '.($settings['labelWidth']=='50'?' selected="selected"':'').'>50%</option>';
echo ' <option value="20" '.($settings['labelWidth']=='20'?' selected="selected"':'').'>20%</option>';
echo '</select>';
echo '</div>';
}
}
// Nastavitve za vse tabele
static function displayTableSettings($spid){
global $site_path;
global $lang;
// Tip tabele
echo '<div class="chart_setting">';
echo $lang['srv_chart_table_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 21, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.(self::$settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_table_type_0'].'</option>';
echo ' <option value="1" '.(self::$settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_table_type_1'].'</option>';
echo '</select>';
echo '</div>';
//Poravnava texta
echo '<div class="chart_setting">';
echo $lang['srv_chart_table_align'].': ';
echo '<input type="checkbox" id="chart_show_legend_'.$spid.'_loop_'.self::$current_loop.'" name="chart_show_legend" '.(self::$settings['show_legend']=='1'?' checked="checked"':'').' onchange="changeChart(\''.$spid.'\', 21, \'show_legend\', \''.self::$current_loop.'\');">';
echo '</div>';
}
// Nastavitve za vse multitext tabele
static function displayMultitextSettings($spid){
global $site_path;
global $lang;
// Tip tabele
echo '<div class="chart_setting">';
echo $lang['srv_chart_table_type'].':<br /> <select style="width:140px;" id="chart_type_'.$spid.'_loop_'.self::$current_loop.'" name="chart_type" onchange="changeChart(\''.$spid.'\', 19, \'type\', \''.self::$current_loop.'\');">';
echo ' <option value="0" '.(self::$settings['type']=='0'?' selected="selected"':'').'>'.$lang['srv_chart_table_type_0'].'</option>';
echo ' <option value="1" '.(self::$settings['type']=='1'?' selected="selected"':'').'>'.$lang['srv_chart_table_type_1'].'</option>';
echo '</select>';
echo '</div>';
}
// Nastavitve za other tabele
static function displayOtherSettings($spid){
global $site_path;
global $lang;
echo '<div class="chart_settings_inner">';
echo '<span class="title">'.$lang['srv_chart_settings'].'</span>';
//Poravnava texta
echo '<div class="chart_setting">';
echo $lang['srv_chart_table_align'].': ';
echo '<input type="checkbox" id="chart_other_otherType_'.$spid.'_loop_'.self::$current_loop.'" name="chart_other_otherType" '.(self::$settings['otherType']=='1'?' checked="checked"':'').' onchange="changeOther(\''.$spid.'\', \'otherType\', \''.self::$current_loop.'\');">';
echo '</div>';
//Prikaz frekvenc
echo '<div class="chart_setting">';
echo $lang['srv_chart_table_freq'].': ';
echo '<input type="checkbox" id="chart_other_otherFreq_'.$spid.'_loop_'.self::$current_loop.'" name="chart_other_otherFreq" '.(self::$settings['otherFreq']=='1'?' checked="checked"':'').' onchange="changeOther(\''.$spid.'\', \'otherFreq\', \''.self::$current_loop.'\');">';
echo '</div>';
echo '</div>';
}
// Napredne nastavitve za posamezen graf (popup)
static function displayAdvancedSettings($spid){
global $site_path;
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
echo '<h2>'.$spremenljivka['variable'].' - '.$spremenljivka['naslov'].'</h2>';
echo '<div class="popup_close"><a href="#" onClick="chartCloseAdvancedSettings(); return false;">✕</a></div>';
echo '<form method="post" name="chart_advanced_settings" onsubmit="chartSaveAdvancedSettings(\''.$spid.'\', \''.self::$current_loop.'\'); return false;">';
echo '<input type="hidden" name="anketa" value="'.self::$anketa.'" />';
echo '<input type="hidden" name="spid" value="'.$spid.'" />';
echo '<input type="hidden" name="loop" value="'.self::$current_loop.'" />';
echo '<input type="hidden" name="spr_type" value="'.$spremenljivka['tip'].'" />';
// urejanje label
echo '<div id="chartSettingsArea1" class="chartSettingsArea">';
self::displayAdvancedSettingsLabels($spid);
echo '</div>';
// urejanje barv
echo '<div id="chartSettingsArea2" class="chartSettingsArea" style="visibility: hidden;">';
self::displayAdvancedSettingsColors($spid);
echo '</div>';
// urejanje mej pri numericih
if(($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)) || $spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 8 || $spremenljivka['tip'] == 22){
echo '<div id="chartSettingsArea4" class="chartSettingsArea" style="visibility: hidden;">';
self::displayAdvancedSettingsLimits($spid, self::$settings['limits']['advanced_settings']);
echo '</div>';
}
/* REKODIRANJE */
echo '<div id="chartSettingsArea3" class="chartSettingsArea" style="visibility: hidden;">';
$spr_id=explode('_',$spid);
$vmv = new RecodeValues(self::$anketa,$spr_id[0]);
$vmv->DisplayMissingValuesForQuestion(false);
echo '</div>';
echo '</form>';
/* ZAVIHKI NA DESNI */
echo '<div id="chartTabs" class="chartSettingsTabs">';
echo '<ul>';
echo '<li id="chartTab1" class="chartTab active" onClick="chartTabAdvancedSettings(\'1\');">';
echo $lang['srv_chart_advanced_labels'];
echo '</li>';
echo '<li id="chartTab2" class="chartTab" onClick="chartTabAdvancedSettings(\'2\');">';
echo $lang['srv_chart_advanced_colors'];
echo '</li>';
echo '<li id="chartTab3" class="chartTab" onClick="chartTabAdvancedSettings(\'3\');">';
echo $lang['srv_chart_advanced_recoding'];
echo '</li>';
// Tab za meje numericov
if(($spremenljivka['tip'] == 3 && self::checkDropdownNumeric($spid)) || $spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 8 || $spremenljivka['tip'] == 22){
echo '<li id="chartTab4" class="chartTab" onClick="chartTabAdvancedSettings(\'4\');">';
echo $lang['srv_chart_advanced_limits'];
echo '</li>';
}
echo '</ul>';
echo '</div>';
/* GUMBI NA DNU */
echo '<div id="chartSettingsButtons" class="buttons_holder">';
echo '<span class="buttonwrapper spaceRight floatLeft">';
echo '<a class="ovalbutton ovalbutton_gray" onclick="chartCloseAdvancedSettings(); return false;"><span>'.$lang['srv_zapri'].'</span></a>';
echo '</span>';
echo '<span class="buttonwrapper floatLeft">';
echo '<a class="ovalbutton ovalbutton_orange" onclick="chartSaveAdvancedSettings(\''.$spid.'\', \''.self::$current_loop.'\'); return false;">'.$lang['srv_potrdi'].'</a>';
echo '</span>';
echo '</div>';
}
// Urejanje barv posameznega grafa
static function displayAdvancedSettingsColors($spid){
global $site_path;
global $lang;
echo '<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var f = $.farbtastic(\'#picker\');
var p = $(\'#picker\').css(\'opacity\', 0.25);
var selected;
$(\'.colorwell\')
.each(function () { f.linkTo(this); $(this).css(\'opacity\', 0.75); })
.focus(function() {
if (selected) {
$(selected).css(\'opacity\', 0.75).removeClass(\'colorwell-selected\');
}
f.linkTo(this);
p.css(\'opacity\', 1);
$(selected = this).css(\'opacity\', 1).addClass(\'colorwell-selected\');
});
});
</script>';
echo ' <div id="picker" style="float: right;"></div>';
$default_colors = self::getDefaultColors(self::$skin);
for($i=0; $i<7; $i++){
$name = 'color'.($i+1);
$value = (self::$settings['colors'][$i] != '') ? self::$settings['colors'][$i] : $default_colors[$i];
echo ' <div class="form-item"><label for="'.$name.'">'.$lang['srv_color'].' '.($i+1).': </label><input type="text" id="'.$name.'" name="'.$name.'" class="colorwell" value="'.$value.'" /></div>';
}
// reset na default barvo
echo '<br /><span class="as_link clr" onClick="chartAdvancedSettingsSetColor(\''.(is_numeric(self::$skin) ? implode("_",$default_colors) : self::$skin).'\')">'.$lang['srv_chart_advanced_default_color'].'</span>';
// nastavitev ene od palet
echo '<br /><span class="clr">'.$lang['srv_chart_advanced_skin'].': ';
echo '<select name="chart_advanced_color" id="chart_advanced_color" onChange="chartAdvancedSettingsSetColor(this.value)">';
echo ' <option' . (self::$skin == '1ka' ? ' selected="selected"' : '') . ' value="1ka">'.$lang['srv_chart_skin_1ka'].'</option>';
echo ' <option' . (self::$skin == 'lively' ? ' selected="selected"' : '') . ' value="lively">'.$lang['srv_chart_skin_0'].'</option>';
echo ' <option' . (self::$skin == 'mild' ? ' selected="selected"' : '') . ' value="mild">'.$lang['srv_chart_skin_1'].'</option>';
echo ' <option' . (self::$skin == 'office' ? ' selected="selected"' : '') . ' value="office">'.$lang['srv_chart_skin_6'].'</option>';
echo ' <option' . (self::$skin == 'pastel' ? ' selected="selected"' : '') . ' value="pastel">'.$lang['srv_chart_skin_7'].'</option>';
echo ' <option' . (self::$skin == 'green' ? ' selected="selected"' : '') . ' value="green">'.$lang['srv_chart_skin_2'].'</option>';
echo ' <option' . (self::$skin == 'blue' ? ' selected="selected"' : '') . ' value="blue">'.$lang['srv_chart_skin_3'].'</option>';
echo ' <option' . (self::$skin == 'red' ? ' selected="selected"' : '') . ' value="red">'.$lang['srv_chart_skin_4'].'</option>';
echo ' <option' . (self::$skin == 'multi' ? ' selected="selected"' : '') . ' value="multi">'.$lang['srv_chart_skin_5'].'</option>';
$customSkins = self::getCustomSkins();
foreach($customSkins as $customSkin){
echo ' <option' . (self::$skin == $customSkin['id'] ? ' selected="selected"' : '') . ' value="'.$customSkin['colors'].'">'.$customSkin['name'].'</option>';
}
echo '</select></span>';
}
// Urejanje label posameznega grafa
static function displayAdvancedSettingsLabels($spid){
global $site_path;
global $lang;
$row = Cache::srv_spremenljivka($spid);
$disabled = ($row['edit_graf'] == 0) ? ' disabled="disabled"' : '';
echo '<div><p>';
echo $lang['srv_chart_advanced_useLabels'].':';
echo '<label for="edit_graf_0"><input type="radio" value="0" name="edit_graf" id="edit_graf_0" '.(($row['edit_graf'] == 0) ? ' checked="checked" ' : '').' onClick="edit_labels(\'0\');" />';
echo $lang['no'].'</label>';
echo ' <label for="edit_graf_1"><input type="radio" value="1" name="edit_graf" id="edit_graf_1" '.(($row['edit_graf'] == 1) ? ' checked="checked" ' : '').' onClick="edit_labels(\'1\');" />';
echo $lang['yes'].'</label>';
echo '</p></div>';
echo '<div class="chart_editing">';
// Urejanje naslova spremenljivke
$text = $row['naslov_graf'] == '<p></p>' ? $row['naslov'] : $row['naslov_graf'];
if (strtolower(substr($text, 0, 3)) == '<p>' && strtolower(substr($text, -4)) == '</p>' && strrpos($text, '<p>') == 0) {
$text = substr($text, 3);
$text = substr($text, 0, -4);
}
echo '<p>';
echo '<textarea style="width:99%; height:50px;" name="naslov_graf" id="naslov_graf" class="chart_label" '.$disabled.'>'.$text.'</textarea>';
echo '</p>';
// Urejanje label za gride
if($row['tip'] == 6 || $row['tip'] == 16 || $row['tip'] == 19 || $row['tip'] == 20){
echo '<div class="grid_settings">';
echo '<input type="hidden" name="edit_grid_graf" value="1" />';
echo '<table id="grids" style="width:100%">';
echo '<tr>';
for ($i=1; $i<=$row['grids']; $i++) {
echo '<td>'.$i.'</td>';
}
//dodatne vrednosti (ne vem, zavrnil...)
if (count($already_set_mv) > 0 ) {
echo '<td></td>';
if (count($missing_values) > 0) {
foreach ($missing_values AS $mv_key => $mv_text) {
if (isset($already_set_mv[$mv_key])) {
echo '<td>'.$mv_key.'</td>';
}
}
}
}
echo '</tr>';
echo '<tr>';
for ($i=1; $i<=$row['grids']; $i++) {
$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 '<td><input type="text" maxlength="30" name="grid_graf_'.$i.'" id="grid_naslov_'.$i.'_graf" class="chart_label" value="'.$text.'" '.$disabled.' /></td>';
}
//dodatne vrednosti (ne vem, zavrnil...)
if (count($already_set_mv) > 0 ) {
echo '<td></td>';
if (count($missing_values) > 0) {
foreach ($missing_values AS $mv_key => $mv_text) {
if (isset($already_set_mv[$mv_key])) {
echo '<td><input type="text" maxlength="30" name="grid_'.$mv_key.'_graf" class="chart_label" value="'.$already_set_mv[$mv_key].'" '.$disabled.' /></td>';
}
}
}
}
echo '</tr>';
echo '</table>';
echo '</div>';
}
// Urejanje naslovov variabel
$sql1 = sisplet_query("SELECT id, variable, naslov, REPLACE(REPLACE(REPLACE(naslov_graf,'\n',' '),'\r',' '),'|',' ') as naslov_graf, other FROM srv_vrednost WHERE spr_id = '$spid' ORDER BY vrstni_red ASC");
if (!$sql1) echo mysqli_error($GLOBALS['connect_db']);
echo '<input type="hidden" name="edit_vrednost_graf" value="1" />';
echo '<div id="vrednosti_holder"><ul class="vrednost_sort">';
while ($row1 = mysqli_fetch_array($sql1)) {
$text = $row1['naslov_graf'] == '' ? $row1['naslov'] : $row1['naslov_graf'];
echo '<li id="vrednost_'.$vrednost.'" '.($row1['other'] == 1 ? 'class="li_other"' : '').'>';
echo '<textarea maxlength="30" name="vrednost_graf_'.$row1['id'].'" id="'.$row1['variable'].'_graf" class="vrednost_textarea chart_label" style="width:60%; height:15px;" '.$disabled.'>'.$text.'</textarea> ';
echo '['.$row1['variable'].']</span>';
if ($row1['other'] == 1) echo ' <input type="text" disabled style="width:40px" />';
echo '</li>';
}
echo '</ul></div>';
echo '<span class="red" style="font-size:11px;">'.$lang['srv_chart_advanced_labelsWarning'].'</span>';
echo '</div>';
}
// Urejanje mej za numericne tipe (radio dropdown number, number, date)
static function displayAdvancedSettingsLimits($spid, $mode=0){
global $site_path;
global $lang;
$spremenljivka = Cache::srv_spremenljivka($spid);
$limits = self::$settings['limits'];
// preklop med navadnimi mejami (zgornja/spodnja) in naprednimi (custom za vsak interval)
echo '<div class="chart_setting">';
echo '<span class="bold">'.$lang['srv_chart_num_limit_basic'].'<input type="radio" name="chart_number_limits_switch" value="0" '.($mode=='0'?' checked="checked"':'').' onClick="chartAdvancedSettingsLimitSwitch(\'0\');" /></span>';
echo '<span class="spaceLeft bold">'.$lang['srv_chart_num_limit_advanced'].'<input type="radio" name="chart_number_limits_switch" value="1" '.($mode=='1'?' checked="checked"':'').' onClick="chartAdvancedSettingsLimitSwitch(\'1\');" /></span>';
echo '</div>';
// OSNOVNE NASTAVITVE MEJ
echo '<div id="chart_number_limits_basic" '.($mode=='1'?' style="display:none;"':'').'>';
// stevilo intervalov
echo '<div class="chart_setting">';
echo $lang['srv_chart_interval'].': <select id="chart_interval_'.$spid.'_loop_'.self::$current_loop.'" name="chart_interval">';
for($i=3; $i<=10; $i++){
echo ' <option value="'.$i.'" '.(self::$settings['interval']==$i ?' selected="selected"':'').'>'.$i.'</option>';
}
echo ' <option value="20" '.(self::$settings['interval']=='20'?' selected="selected"':'').'>20</option>';
echo ' <option value="-1" '.(self::$settings['interval']=='-1'?' selected="selected"':'').'>Vsi</option>';
echo '</select>';
echo '</div>';
// Naslov "zgornja in spodnja meja"
echo '<div class="chart_setting">';
echo '<span class="bold">'.$lang['srv_chart_num_limit'].':</span>';
echo '</div>';
// min in polodprtost navzdol
echo '<div class="chart_setting">';
echo $lang['srv_chart_min'].': ';
echo '<input type="text" id="chart_min_'.$spid.'_loop_'.self::$current_loop.'" name="chart_min" value="'.self::$settings['min'].'" onkeyup="checkNumber(this, 6, 2);" onkeypress="checkNumber(this, 6, 2);" />';
echo '<span style="padding-left:20px;">'.$lang['srv_chart_open_down'].': </span>';
echo '<input type="checkbox" id="chart_basic_open_down_'.$spid.'_loop_'.self::$current_loop.'" name="chart_basic_open_down" value="1" '.(self::$settings['open_down']=='1'?' checked="checked"':'').' />';
echo '</div>';
// max in polodprtost navzgor
echo '<div class="chart_setting">';
echo $lang['srv_chart_max'].': ';
echo '<input type="text" id="chart_max_'.$spid.'_loop_'.self::$current_loop.'" name="chart_max" value="'.self::$settings['max'].'" onkeyup="checkNumber(this, 6, 2);" onkeypress="checkNumber(this, 6, 2);" />';
echo '<span style="padding-left:20px;">'.$lang['srv_chart_open_up'].': </span>';
echo '<input type="checkbox" id="chart_basic_open_up_'.$spid.'_loop_'.self::$current_loop.'" name="chart_basic_open_up" value="1" '.(self::$settings['open_up']=='1'?' checked="checked"':'').' />';
echo '</div>';
echo '</div>';
// NAPREDNE NASTAVITVE MEJ
echo '<div id="chart_number_limits_advanced" '.($mode=='0'?' style="display:none;"':'').'>';
// stevilo intervalov
echo '<div class="chart_setting">';
echo $lang['srv_chart_interval'].': <select id="chart_interval_'.$spid.'_loop_'.self::$current_loop.'" name="chart_interval" onChange="chartAdvancedSettingsLimitInterval(this.value, \''.$spid.'\', \''.self::$current_loop.'\');">';
for($i=3; $i<=10; $i++){
echo ' <option value="'.$i.'" '.(self::$settings['interval']==$i ?' selected="selected"':'').'>'.$i.'</option>';
}
echo ' <option value="20" '.(self::$settings['interval']=='20'?' selected="selected"':'').'>20</option>';
echo ' <option value="-1" '.(self::$settings['interval']=='-1'?' selected="selected"':'').'>Vsi</option>';
echo '</select>';
echo '</div>';
// Polodprtost navzdol
echo '<span style="padding-left:20px;">'.$lang['srv_chart_open_down'].': </span>';
echo '<input type="checkbox" id="chart_advanced_open_down_'.$spid.'_loop_'.self::$current_loop.'" name="chart_advanced_open_down" value="1" '.(self::$settings['open_down']=='1'?' checked="checked"':'').' />';
echo '<ul>';
for($i=0; $i<self::$settings['interval']; $i++){
echo '<li>';
echo '<span class="bold">'.$lang['interval'].' '. ($i+1) .': </span>';
echo '<span class="spaceLeft">'.$lang['srv_chart_num_limit_from'].' <input type="text" id="interval_'.$i.'_min_'.$spid.'_loop_'.self::$current_loop.'" name="interval_'.$i.'_min" value="'.$limits['interval_'.$i]['min'].'" class="advanced_interval" style="width:40px;" onBlur="chartAdvancedSettingsLimitLabel(\''.$i.'\', \''.$spid.'\', \''.self::$current_loop.'\'); chartAdvancedSettingsLimitCheck(\''.$i.'\', \''.$spid.'\', \''.self::$current_loop.'\');" onkeyup="checkNumber(this, 6, 2);" onkeypress="checkNumber(this, 6, 2);" /></span>';
echo '<span class="spaceLeft">'.$lang['srv_chart_num_limit_to'].' <input type="text" id="interval_'.$i.'_max_'.$spid.'_loop_'.self::$current_loop.'" name="interval_'.$i.'_max" value="'.$limits['interval_'.$i]['max'].'" class="advanced_interval" style="width:40px;" onBlur="chartAdvancedSettingsLimitLabel(\''.$i.'\', \''.$spid.'\', \''.self::$current_loop.'\'); chartAdvancedSettingsLimitCheck(\''.$i.'\', \''.$spid.'\', \''.self::$current_loop.'\');" onkeyup="checkNumber(this, 6, 2);" onkeypress="checkNumber(this, 6, 2);" /></span>';
// labela intervala
$label = ($limits['interval_'.$i]['label'] == '') ? $limits['interval_'.$i]['min'].'-'.$limits['interval_'.$i]['max'] : $limits['interval_'.$i]['label'];
echo '<span class="spaceLeft">'.$lang['srv_chart_num_limit_label'].': <input type="text" id="interval_'.$i.'_label_'.$spid.'_loop_'.self::$current_loop.'" name="interval_'.$i.'_label" value="'.$label.'" style="width:120px;" /></span>';
// Warningi, ce niso intervali v redu nastavljeni po velikosti
$show = ($limits['interval_'.$i]['min'] >= $limits['interval_'.$i]['max'] && $limits['interval_'.$i]['min'] != '' && $limits['interval_'.$i]['max'] != '') ? '' : ' style="display:none;"';
echo '<div id="chart_advanced_warning_1_interval_'.$i.'" class="chart_advanced_warning" '.$show.'>';
echo $lang['srv_chart_num_limit_warning1'];
echo '</div>';
$show = ($limits['interval_'.$i]['min'] <= $limits['interval_'. ($i-1) ]['max'] && $limits['interval_'.$i]['min'] != '' && $limits['interval_'. ($i-1) ]['max'] != '') ? '' : ' style="display:none;"';
echo '<div id="chart_advanced_warning_2_interval_'.$i.'" class="chart_advanced_warning" '.$show.'>';
echo $lang['srv_chart_num_limit_warning2'];
echo '</div>';
echo '</li>';
}
echo '</ul>';
// Polodprtost navzgor
echo '<span style="padding-left:20px;">'.$lang['srv_chart_open_up'].': </span>';
echo '<input type="checkbox" id="chart_advanced_open_up_'.$spid.'_loop_'.self::$current_loop.'" name="chart_advanced_open_up" value="1" '.(self::$settings['open_up']=='1'?' checked="checked"':'').' />';
echo '</div>';
}
// Izpis opozorila ce ni vnesenih podatkov in ne prikazujemo grafa
static function displayEmptyWarning($spid){
//$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
// Naslov posameznega grafa
//echo '<div class="chart_title">Graf '.$spremenljivka['variable'].' nima veljavnih podatkov!</div>';
}
/** Izriše frekvence v vertikalni obliki
*
* @param unknown_type $spid
*/
static function frequencyVertical($spid) {
global $lang;
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
# če je besedilo * in je samo ena kategorija je inline legenda false
$inline_legenda = (SurveyAnalysis::$_HEADERS[$spid]['cnt_all'] == 1 || in_array($spremenljivka['tip'],array(1,8) ) ) ? false: true;
# koliko zapisov prikažemo naenkrat
$num_show_records = (self::$num_records == 0) ? 10 : self::$num_records;
//$num_show_records = SurveyAnalysis::getNumRecords();
// ce imamo prazno in ne prikazujemo praznih tabel
$hideEmpty = SurveyDataSettingProfiles :: getSetting('hideEmpty');
if($hideEmpty == 1){
$emptyData = true;
if (count($spremenljivka['grids']) > 0)
foreach ($spremenljivka['grids'] AS $gid => $grid) {
$_variables_count = count($grid['variables']);
if ($_variables_count > 0 )
foreach ($grid['variables'] AS $vid => $variable ){
$_sequence = $variable['sequence']; # id kolone z podatki
if(SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0)
$emptyData = false;
}
}
if($emptyData){
self::displayEmptyWarning($spid);
return;
}
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'"></div>';
echo '<div id="freq_'.$spid.'_loop_'.self::$current_loop.'" class="freq_chart_table">';
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title.'</div>';
# tekst vprašanja
echo '<table class="anl_tbl anl_bt anl_br anl_bb" style="font-size: '.(self::$fontSize+3).'px !important; padding:0px; margin-top:5px !important; border-collapse: collapse; width: 800px;">';
if(self::$settings['type']==1){
echo '<tr>';
#odgovori
echo '<td class="anl_bl anl_br anl_bb anl_ac">'.$lang['srv_analiza_frekvence_titleAnswers'] . '</td>';
echo '<td class="anl_br anl_bb anl_ac anl_w70">'. $lang['srv_analiza_frekvence_titleFrekvenca'] .'</td>';
echo '</tr>';
// konec naslovne vrstice
}
$_answersOther = array();
# dodamo opcijo kje izrisujemo legendo
$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)
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
if (($variable['text'] != true && $variable['other'] != true)
|| (in_array($spremenljivka['tip'],array(4,8,21,22,25)))){
# 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) {
$options['doubleTop'] = true;
$_current_grid = $gid;
} else {
$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 || $spremenljivka['tip'] == 22) && is_array(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'])) {
ksort(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']);
}
//SurveyAnalysis::$_FREQUENCYS[$_sequence]
if (is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0) {
foreach (SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] 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))) { // text, number, datum, mtext, mnumber, text*
$options['isTextAnswer'] = true;
} else {
$options['isTextAnswer'] = false;
}
$counter = self::outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,$_kumulativa,$options);
}
}
}
# izpišemo sumo veljavnih
if(self::$settings['type'] == 1)
$counter = self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,$options);
}
if (count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalid'])> 0 && self::$settings['type'] == 1) {
foreach (SurveyAnalysis::$_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
if(self::$settings['type'] == 1)
$counter = self::outputSumaVertical($counter,$_sequence,$spid,$options);
} else {
$_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence);
}
}
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
}
}
echo '</table>'.NEW_LINE;
echo '</div>';
// Izpisemo nastavitve za tabele
echo '<div class="chart_settings printHide iconHide" style="margin-top: 5px;">';
self::displaySingleSettings($spid);
echo '</div>';
# izpišemo še tekstovne odgovore za polja drugo
if (count($_answersOther) > 0 && SurveyAnalysis::$_FILTRED_OTHER) {
foreach ($_answersOther AS $oAnswers) {
echo '<div id="chart_other_text_'.$spid.'_loop_'.self::$current_loop.'" class="chart_other_text">';
self::outputOtherAnswers($oAnswers);
echo '</div>';
echo '<div class="chart_settings other_settings printHide iconHide">';
self::displayOtherSettings($spid);
echo '</div>';
}
if (self::$returnChartAsHtml == false) {
ob_flush(); flush();
}
}
echo '</div>';
}
static function outputSubVariablaVertical($spremenljivka,$variable,$grid,$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
'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 '<tr'.($options['doubleTop'] ? ' class="anl_double_bt"' : '').'>';
echo '<td class="anl_bl anl_bt anl_bb anl_br anl_al anl_str">';
echo $variable['naslov'];
echo '</td>';
if(self::$settings['type'] == 1)
echo '<td class="anl_bb anl_br anl_w70"> </td>';
echo '</tr>';
}
static function outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,&$_kumulativa,$_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
);
foreach ($_options as $_oKey => $_option) {
$options[$_oKey] = $_option;
}
$cssBck = ($counter % 2 == 1) ? ' anl_bck_0_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;
$_kumulativa += $_valid;
echo '<tr id="'.$spid.'_'.$_sequence.'_'.$counter.'" name="valid_row_'.$_sequence.'" >';
//echo '<td class="anl_bl anl_ac anl_br gray"> </td>';
if($options['isOtherAnswer'] == 1){
// poravnava celice
$cellAlign = (self::$settings['otherType'] == 0) ? ' anl_al' : ' anl_ac';
echo '<td class="anl_bl anl_br '.$cellAlign.' '.$cssBck.'">'.$vkey;
if(self::$settings['otherFreq'] == 1){
echo '<td class="anl_ac anl_br '.$cssBck.'">';
echo (int)$vAnswer['cnt'];
echo '</td>';
}
}
elseif(self::$settings['type'] == 0){
// poravnava celice
$cellAlign = (self::$settings['show_legend'] == 0) ? ' anl_al' : ' anl_ac';
echo '<td class="anl_bl anl_br '.$cellAlign.' '.$cssBck.'">'.$vkey;
}
else{
// poravnava celice
$cellAlign = (self::$settings['show_legend'] == 0) ? ' style="float: none;"' : '';
echo '<td class="anl_bl anl_br '.$cssBck.'">';
echo '<div class="anl_user_text_more_charts" '.$cellAlign.'>'.$vkey.'</div>';
echo (($options['isTextAnswer'] == false && (string)$vkey != $vAnswer['text']) ? ' ('.$vAnswer['text'] .')' : '');
}
if ( $counter+1 == $options['num_show_records'] && $options['num_show_records'] < count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'])) {
echo '<div id="valid_row_togle_more_'.$_sequence.'" class="floatRight '.(self::$publicChart != true ? ' blue pointer' : '').' anl_more" onclick="showHidenTextTable(\''.$spid.'\', \''.$options['num_show_records'].'\', \''.self::$current_loop.'\');return false;">'.$lang['srv_anl_more'].'</div>'.NEW_LINE;
}
echo '</td>';
if(self::$settings['type'] == 1){
echo '<td class="anl_ac anl_br '.$cssBck.'">';
echo (int)$vAnswer['cnt'];
echo '</td>';
}
echo '</tr>';
$counter++;
return $counter;
}
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
);
foreach ($_options as $_oKey => $_option) {
$options[$_oKey] = $_option;
}
$cssBck = ($counter % 2 == 1) ? ' anl_bck_0_0' : '';
$_brez_MV = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 0 ) ? TRUE : FALSE;
$_hide_minus = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 2 ) ? TRUE : FALSE;
$value =((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 0 ) ? 0 : 1;
$_sufix = (SurveyAnalysis::$podstran == M_ANALYSIS_SUMMARY_NEW ? '_NEW' : '');
# da deluje razpiranje manjkajočih tudi kadar imamo skupine
if (isset(SurveyAnalysis::$_CURRENT_LOOP['cnt'])) {
$_sufix = '_loop'.SurveyAnalysis::$_CURRENT_LOOP['cnt'].$_sufix;
}
echo '<tr id="anl_click_missing_tr_'.$_sequence.$_sufix.'" class="'.($_brez_MV ? 'anl_bb' : 'anl_dash_red_bb').'">';
echo '<td class="anl_bl anl_br anl_al anl_ita red '.$cssBck.'" >'.$lang['srv_anl_suma1'].'</td>';
echo '<td class="anl_ita red anl_br anl_ac '.$cssBck.'" >';
echo SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : 0;
echo '</td>';
$_percent = SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0
? 100 * SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt']
: 0;
echo '</tr>';
return $counter;
}
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
);
foreach ($_options as $_oKey => $_option) {
$options[$_oKey] = $_option;
}
//$cssBck = ' '.SurveyAnalysis::$cssColors['text_' . ($counter & 1)];
$cssBck = ($counter % 2 == 1) ? ' anl_bck_0_0' : '';
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
$_sufix = (SurveyAnalysis::$podstran == M_ANALYSIS_SUMMARY_NEW ? '_NEW' : '');
# da deluje razpiranje manjkajočih tudi kadar imamo skupine
if (isset(SurveyAnalysis::$_CURRENT_LOOP['cnt'])) {
$_sufix = '_loop'.SurveyAnalysis::$_CURRENT_LOOP['cnt'].$_sufix;
}
$_Z_MV = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 2) ? TRUE : FALSE;
echo '<tr name="missing_detail_'.$_sequence.$_sufix.'"'.($_Z_MV ? '': ' class="hidden"').'>';
//echo '<td class="anl_bl anl_br anl_ac gray" style="width:10px"> </td>';
echo '<td class="anl_bl anl_br">';
echo '<div class="floatLeft"><div class="anl_tin2">'.'<span class="anl_user_text">' . $vkey . '</span>' . ' (' . $vAnswer['text'].')'.'</div></div>'.NEW_LINE;
echo '<div class="floatRight anl_detail_percent anl_w50 anl_ac anl_dash_bl">'.SurveyAnalysis::formatNumber($_invalid, 2, '%').'</div>'.NEW_LINE;
echo '<div class="floatRight anl_detail_percent anl_w30 anl_ac">'.$vAnswer['cnt'].'</div>'.NEW_LINE;
echo '</td>';
echo '<td class="anl_ac anl_br">';
echo (int)$vAnswer['cnt'];
echo '</td>';
echo '</tr>';
$counter++;
return $counter;
}
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
);
foreach ($_options as $_oKey => $_option) {
$options[$_oKey] = $_option;
}
//$cssBck = ' '.SurveyAnalysis::$cssColors['text_' . ($counter & 1)];
$cssBck = ' '.SurveyAnalysis::$cssColors['text_1'];
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
$_brez_MV = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 0) ? TRUE : FALSE;
$_hide_minus = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 1 || (int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 0) ? TRUE : FALSE;
$_sufix = (SurveyAnalysis::$podstran == M_ANALYSIS_SUMMARY_NEW ? '_NEW' : '');
# da deluje razpiranje manjkajočih tudi kadar imamo skupine
if (isset(SurveyAnalysis::$_CURRENT_LOOP['cnt'])) {
$_sufix = '_loop'.SurveyAnalysis::$_CURRENT_LOOP['cnt'].$_sufix;
}
echo '<tr id="click_missing_1_'.$_sequence.$_sufix.'" class="anl_dash_red_bb'.($_brez_MV ?' hidden' : '').'">';
echo '<td class="anl_bl anl_br anl_ita red" >';
echo $lang['srv_analiza_manjkajocevrednosti'];
// podrobno za missinge
echo '<span id="single_missing_0'.$_sequence.$_sufix.'" class="printHide anl_ita anl_detail_percent'.($_hide_minus ? '' : ' hidden').'"> ';
echo '<a href="#single_missing_'.$_sequence.$_sufix.'" onclick="show_single_missing(\''.$_sequence.$_sufix.'\', 0);return false;" > ' ;
//echo $lang['srv_analiza_missingSpremenljivke'] ;
echo ' <span class="faicon plus_orange folder_plusminus"></span> </a>';
echo '</span>';
echo '<span id="single_missing_1'.$_sequence.$_sufix.'" class="printHide anl_ita anl_detail_percent'.($_hide_minus ? ' hidden' : '').'"> ';
echo '<a href="#single_missing_'.$_sequence.$_sufix.'" onclick="show_single_missing(\''.$_sequence.$_sufix.'\', 1);return false;" > ' ;
// echo $lang['srv_analiza_missingSpremenljivke'] ;
echo ' <span class="faicon minus_orange folder_plusminus"></span> </a>';
echo '</span>';
echo '<div id="single_missing_suma_'.$_sequence.$_sufix.'" class="floatRight anl_w50 anl_dash_bl anl_dash_bt anl_ac anl_detail_percent hidden">100.0%</div>'.NEW_LINE;
echo '<div id="single_missing_suma_freq_'.$_sequence.$_sufix.'" class="floatRight anl_w30 anl_dash_bt anl_ac anl_detail_percent hidden">'.SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'].'</div>'.NEW_LINE;
echo '</td>';
echo '<td class="anl_ac anl_br anl_detail_cnt anl_ita red">';
$answer['cnt'] = SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
echo (int)$answer['cnt'];
echo '</td>';
echo '</tr>';
$counter++;
return $counter;
}
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
);
foreach ($_options as $_oKey => $_option) {
$options[$_oKey] = $_option;
}
$cssBck = ' anl_bck_text_0';
$_brez_MV = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 0) ? TRUE : FALSE;
$_sufix = (SurveyAnalysis::$podstran == M_ANALYSIS_SUMMARY_NEW ? '_NEW' : '');
# da deluje razpiranje manjkajočih tudi kadar imamo skupine
if (isset(SurveyAnalysis::$_CURRENT_LOOP['cnt'])) {
$_sufix = '_loop'.SurveyAnalysis::$_CURRENT_LOOP['cnt'].$_sufix;
}
echo '<tr id="click_missing_suma_'.$_sequence.$_sufix.'" class="'.($_brez_MV ? 'hidden' : '').'">';
//echo '<td class="anl_bl anl_ac anl_dash_bt anl_bb red anl_ita'.$cssBck.'">'.$lang['srv_anl_suma2'].'</td>';
echo '<td class="anl_bl anl_dash_bt anl_br anl_bb"> </td>';
echo '<td class="anl_ac anl_dash_bt anl_br anl_bb anl_ita red" >' . (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0) . '</td>';
echo '</tr>';
}
/** izpišemo tabelo z tekstovnimi odgovori drugo
*
* @param $skey
* @param $oAnswers
* @param $spid
*/
static function outputOtherAnswers($oAnswers) {
global $lang;
$spid = $oAnswers['spid'];
$_variable = SurveyAnalysis::$_HEADERS[$spid]['grids'][$oAnswers['gid']]['variables'][$oAnswers['vid']];
$_sequence = $_variable['sequence'];
$_frekvence = SurveyAnalysis::$_FREQUENCYS[$_variable['sequence']];
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $_variable['variable'].' - ' : '');
$title = SurveyAnalysis::$_HEADERS[$oAnswers['spid']]['variable'].' ('.$_variable['naslov'].' )';
echo '<div class="chart_title">'.$stevilcenje . $title.'</div>';
echo '<table class="anl_tbl anl_bt anl_br anl_bb" style="font-size: '.(self::$fontSize+3).'px !important; padding:0px; margin:0px; border-collapse: collapse;">' . NEW_LINE;
$counter = 0;
$_kumulativa = 0;
if (is_countable(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) && count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0) {
foreach (SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] AS $vkey => $vAnswer) {
if ($vAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$counter = self::outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,$_kumulativa,array('isOtherAnswer'=>true));
}
}
# izpišemo sumo veljavnih
//$counter = self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true));
}
if (count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) {
foreach (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) {
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
$counter = self::outputInvalidAnswerVertical($counter,$ikey,$iAnswer,$_sequence,$spid,array('isOtherAnswer'=>true));
}
}
# izpišemo sumo veljavnih
//$counter = self::outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true));
}
#izpišemo še skupno sumo
//$counter = self::outputSumaVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true));
echo '</table>'.NEW_LINE;
}
/** Izriše tekstovne odgovore kot tabelo z navedbami
*
* @param unknown_type $spid
*/
static function sumMultiText($spid) {
global $lang;
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
if(!is_countable(SurveyAnalysis::$_LOOPS) || count(SurveyAnalysis::$_LOOPS) == 0)
self::$sessionData[$spid] = $settings;
else
self::$sessionData[$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']] = $settings;
# koliko zapisov prikažemo naenkrat
$num_show_records = (self::$num_records == 0) ? 10 : self::$num_records;
$_answers = SurveyAnalysis::getAnswers($spremenljivka,$num_show_records);
// ce imamo prazno in de prikazujemo praznih tabel
$hideEmpty = SurveyDataSettingProfiles :: getSetting('hideEmpty');
if($_answers['validCnt'] == 0 && $hideEmpty == 1){
self::displayEmptyWarning($spid);
return;
}
echo '<div class="chart_holder" id="chart_'.$spid.'_loop_'.self::$current_loop.'">';
//div za pozicijo popupa
echo '<div id="'.$spid.'"></div>';
echo '<div id="freq_'.$spid.'_loop_'.self::$current_loop.'" class="freq_chart_table">';
// Naslov posameznega grafa
$stevilcenje = (self::$numbering == 1 ? $spremenljivka['variable'].' - ' : '');
$title = $spremenljivka['edit_graf'] == 0 ? $spremenljivka['naslov'] : $spremenljivka['naslov_graf'];
echo '<div class="chart_title">'.$stevilcenje . $title.'</div>';
# dodamo opcijo kje izrisujemo legendo
# če je besedilo * in je samo ena kategorija je inline legenda false
$_cols = $spremenljivka['cnt_all'] / $spremenljivka['cnt_grids'];
$_all_valid_answers_cnt = $_answers['validCnt'];
$_valid_answers = $_answers['valid'];
# tekst vprašanja
echo '<table class="anl_tbl anl_bt anl_bb" style="font-size: '.(self::$fontSize+3).'px !important; padding:0px; margin:0px; border-collapse: collapse;">' . NEW_LINE;
# naslovna vrstica
if(self::$settings['type']==1){
echo '<tr>';
#odgovori
echo '<td class="anl_br anl_bl anl_bb anl_ac">'.$lang['srv_analiza_opisne_subquestion'] . '</td>';
echo '<td class="anl_br anl_bb anl_ac" colspan="'.($_cols).'">'. $lang['srv_analiza_opisne_arguments'] .'</td>';
echo '</tr>';
}
// konec naslovne vrstice
$_answersOther = array();
$_grids_count = count($spremenljivka['grids']);
if ($_grids_count > 0) {
# naslovna vrstica
$_row = $spremenljivka['grids'][0];
echo '<tr>';
echo '<td class="anl_bl anl_br anl_bb"> </td>';
if (count($_row['variables'])>0)
foreach ($_row['variables'] AS $rid => $_col ){
$_sequence = $_col['sequence']; # id kolone z podatki
if ($_col['other'] != true) {
echo '<td class="anl_br anl_bb anl_ac anl_str">';
// echo $_col['variable'];
echo $_col['naslov'];
echo '</td>';
} else {
$_answersOther[] = array('spid'=>$spid,'gid'=>$gid,'vid'=>$vid,'sequence'=>$_sequence);
}
}
echo '</tr>';
$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 '<tr class="anl_ac anl_bb">';
echo '<td class="anl_br anl_bl anl_ac anl_str">';
echo $grid['naslov'];
echo '</td>';
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,SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt']));
}
# za barvanje
$last = ($last & 1) ? 0 : 1 ;
foreach ($grid['variables'] AS $vid => $variable ){
$_sequence = $variable['sequence']; # id kolone z podatki
if ($variable['other'] != true) {
# tabela z navedbami
echo '<td class=" anl_at" style="padding: 0pt; margin: 0pt; border-collapse: collapse; vertical-align:top;" >';
echo '<table class="fullWidth anl_ac" style="padding:0; margin:0; border-collapse: collapse; vertical-align:top;">';
$index=0;
if (count($_valid_answers) > 0) {
foreach ($_valid_answers AS $answer) {
$cssBck = ($index % 2 == 1) ? ' anl_bck_0_0' : '';
$index++;
$_ans = $answer[$_sequence];
echo '<tr>';
echo '<td class="anl_br '.$cssBck.'">';
if ($_ans != null && $_ans != '') {
echo $_ans;
} else {
echo ' ';
}
echo '</td>';
echo '</tr>';
}
}
if ($_all_valid_answers_cnt > $index) {
$index++;
echo '<tr>';
echo '<td class="anl_br anl_user_text">';
echo '<div id="valid_row_togle_more_'.$vid.'" class="floatRight '.(self::$publicChart != true ? ' blue pointer' : '').' anl_more" onclick="showHidenTextTable(\''.$spid.'\', \''.$num_show_records.'\', \''.self::$current_loop.'\');return false;">'.$lang['srv_anl_more'].'</div>'.NEW_LINE;
echo '</td>';
echo '</tr>';
}
echo '</table>';
echo '</td>';
}
}
$last = $_max_i;
}
echo '</tr>';
}
}
echo '</table>'.NEW_LINE;
echo '</div>';
// Izpisemo nastavitve za tabele
echo '<div class="chart_settings printHide iconHide" style="margin-top: 5px;">';
self::displaySingleSettings($spid);
echo '</div>';
echo '</div>';
}
/** Funkcije ki skrbijo za ajax del
*
*/
public static function ajax() {
global $global_user_id;
if (isset ($_POST['anketa'])) {
$anketa = $_POST['anketa'];
self::$anketa = $_POST['anketa'];
}
if (isset ($_POST['spid']))
$spid = $_POST['spid'];
if (isset ($_POST['spr_type']))
$spr_type = $_POST['spr_type'];
// Ce imamo nastavljene loope (Skupine) - potem nastavimo trenuten loop v katerem se nahaja graf
self::$current_loop = (isset ($_POST['loop'])) ? $_POST['loop'] : 'undefined';
if(self::$current_loop != 'undefined'){
SurveyAnalysis::$_LOOPS = SurveyZankaProfiles::getFiltersForLoops();
$loop = SurveyAnalysis::$_LOOPS[ (int)self::$current_loop-1 ];
$loop['cnt'] = self::$current_loop;
SurveyAnalysis::$_CURRENT_LOOP = $loop;
}
SurveyAnalysis::$podstran = 'charts';
SurveyAnalysis::getFrequencys();
if (isset ($_POST['settings_mode']))
self::$settings_mode = $_POST['settings_mode'];
// dobimo vse nastavitve iz sessiona
if(self::$current_loop != 'undefined'){
if(isset(self::$sessionData[$spid][self::$current_loop]))
self::$settings = self::$sessionData[$spid][self::$current_loop];
else
self::$settings = self::getDefaultSettings();
}
else{
if(isset(self::$sessionData[$spid]))
self::$settings = self::$sessionData[$spid];
else
self::$settings = self::getDefaultSettings();
}
if (isset ($_POST['what']))
$what = $_POST['what'];
if (isset ($_POST['value']))
$value = $_POST['value'];
self::$settings[$what] = $value;
if (isset ($_POST['num_records'])){
$textAnswersMore = array('0'=>'10','10'=>'30','30'=>'300','300'=>'600','600'=>'900','900'=>'100000');
self::$num_records = $textAnswersMore[$_POST['num_records']];
}
if ($_GET['a'] == 'change_chart') {
switch ($spr_type) {
case 1: # radio
case 3: # dropdown
self::displayRadioChart($spid, self::$settings, $refresh=1);
break;
case 2: #checkbox
self::displayCheckboxChart($spid, self::$settings, $refresh=1);
break;
case 6: # multigrid
self::displayMultigridChart($spid, self::$settings, $refresh=1);
break;
case 62: # dvojni multigrid
self::displayDoubleMultigridChart($spid, self::$settings, $refresh=1);
break;
case 7: # število
case 22: # compute
self::displayNumberChart($spid, self::$settings, $refresh=1);
break;
case 8: # datum
self::displayDateChart($spid, self::$settings, $refresh=1);
break;
case 16: # multicheckbox
self::displayMulticheckboxChart($spid, self::$settings, $refresh=1);
break;
case 17: # razvrščanje
self::displayRankingChart($spid, self::$settings, $refresh=1);
break;
case 20: # multi number
self::displayMultinumberChart($spid, self::$settings, $refresh=1);
//self::frequencyVertical($spid);
break;
case 18: # vsota
self::displayVsotaChart($spid, self::$settings, $refresh=1);
break;
case 4: # text
case 5: # nagovor
case 21: # besedilo*
case 25: # kvota
self::frequencyVertical($spid);
break;
case 19: # multitext
self::sumMultiText($spid);
break;
}
// Shranimo spremenjene nastavitve v bazo
SurveyUserSession::saveData(self::$sessionData, 'charts');
}
// nastavitve tabel za drugo
if($_GET['a'] == 'change_other'){
if(self::$current_loop != 'undefined'){
self::$sessionData[$spid][self::$current_loop][$what] = $value;
self::$settings = self::$sessionData[$spid][self::$current_loop];
}
else{
self::$sessionData[$spid][$what] = $value;
self::$settings = self::$sessionData[$spid];
}
// Napolnimo podatke za graf
$DataSet = self::getDataSet($spid, self::$settings);
$_answersOther = $DataSet->GetOther();
if (count($_answersOther) > 0 && SurveyAnalysis::$_FILTRED_OTHER) {
foreach ($_answersOther AS $oAnswers) {
self::outputOtherAnswers($oAnswers);
}
}
// Shranimo spremenjene nastavitve v bazo
SurveyUserSession::saveData(self::$sessionData, 'charts');
}
// Brisanje cacha za grafe
if ($_GET['a'] == 'clear_cache') {
self::clearCache();
}
if ($_GET['a'] == 'show_spid_more_table') {
// tabela besedilo
if(SurveyAnalysis::$_HEADERS[$spid]['tip'] == 19)
self::sumMultiText($spid);
// navadno besedilo
else
self::frequencyVertical($spid);
}
if ($_GET['a'] == 'chart_advanced_settings') {
self::displayAdvancedSettings($spid);
}
if ($_GET['a'] == 'change_hq_settings') {
self::$sessionData['hq'] = $value;
// Shranimo spremenjene nastavitve v bazo
SurveyUserSession::saveData(self::$sessionData, 'charts');
}
if ($_GET['a'] == 'chart_save_advanced_settings') {
# shranimo rekodiranje in po potrebi popravimo datoteko s podatki
if ((int)$spid > 0 && (int)self::$anketa > 0) {
# Shranimo zamenjave manjkajočih vrednosti pri posameznem vprašanu za analize
if (isset($_REQUEST['edit_recode_mv']) || isset($_REQUEST['edit_recode_number'])) {
$vmv = new RecodeValues(self::$anketa,$spid);
$dataChanged = $vmv->SetUpMissingValuesForQuestion();
//print_r("changed:".(int)$dataChanged );
if ($dataChanged == true ) {
$SDF = SurveyDataFile::get_instance();
$SDF->init(self::$anketa);
//print_r("new:".$createdNewFile);
self::$headFileName = $SDF->getHeaderFileName();
self::$dataFileName = $SDF->getDataFileName();
self::$dataFileStatus = $SDF->getStatus();
}
}
}
// headers, ki ga popravimo in prepisemo originalnega (zaradi refresha label)
$newHeaders = SurveyAnalysis::$_HEADERS;
// SHRANIMO BARVE
// preverimo najprej ce shranjujemo vrednosti, ki so enake kot izbran skin
$default = true;
$default_colors = self::getDefaultColors(self::$skin);
for($i=1; $i<8; $i++){
if($_POST['color'.$i] != $default_colors[$i-1]){
$default = false;
break;
}
}
for($i=1; $i<8; $i++){
// ce niso default vrednosti shranimo nastavljeno barvo
if($default == false)
$color = $_POST['color'.$i];
// ce so default vrednosti shranimo prazno
else
$color = '';
self::$settings['colors'][$i-1] = $color;
}
// SHRANIMO MEJE
if (isset($_POST['chart_interval'])) {
$limits = array();
$interval = $_POST['chart_interval'];
self::$settings['interval'] = $interval;
if (isset($_POST['chart_number_limits_switch']))
$limits['advanced_settings'] = $_POST['chart_number_limits_switch'];
// Shranjevanje osnovnih nastavitev mej pri number
if($limits['advanced_settings'] == 0){
// shranimo polodprtost
self::$settings['open_down'] = (isset($_POST['chart_basic_open_down']) && self::$settings['min'] != '' && $_POST['chart_basic_open_down'] == '1') ? 1: 0;
self::$settings['open_up'] = (isset($_POST['chart_basic_open_up']) && self::$settings['max'] != '' && $_POST['chart_basic_open_up'] == '1') ? 1 : 0;
if (isset($_POST['chart_min']))
self::$settings['min'] = $_POST['chart_min'];
if (isset($_POST['chart_max']))
self::$settings['max'] = $_POST['chart_max'];
self::$settings['limits'] = $limits;
}
// Shranjevanje naprednih nastavitev mej pri number
else{
for($i=0; $i<$interval; $i++){
// shranimo polodprtost
self::$settings['open_down'] = (isset($_POST['chart_advanced_open_down']) && $_POST['chart_advanced_open_down'] == '1') ? 1 : 0;
self::$settings['open_up'] = (isset($_POST['chart_advanced_open_up']) && $_POST['chart_advanced_open_up'] == '1') ? 1 : 0;
// Minimum posameznega intervala
if (isset($_POST['interval_'.$i.'_min']))
$limits['interval_'.$i]['min'] = $_POST['interval_'.$i.'_min'];
// Maximuma posameznega intervala
if (isset($_POST['interval_'.$i.'_max']))
$limits['interval_'.$i]['max'] = $_POST['interval_'.$i.'_max'];
// Labela posameznega intervala
if (isset($_POST['interval_'.$i.'_label']))
$limits['interval_'.$i]['label'] = $_POST['interval_'.$i.'_label'];
}
self::$settings['limits'] = $limits;
}
}
// SHRANIMO LABELE
if (isset($_POST['edit_graf'])) {
$edit_graf = $_POST['edit_graf'];
$s = sisplet_query("UPDATE srv_spremenljivka SET edit_graf='$edit_graf' WHERE id='$spid'");
if (!$s) echo mysqli_error($GLOBALS['connect_db']);
// popravimo upostevanje label v HEADER
$newHeaders[$spid]['edit_graf'] = $edit_graf;
}
// naslov spremenljivke za graf
if (isset($_POST['naslov_graf'])) {
$naslov = $_POST['naslov_graf'];
/*if (strtolower(substr($naslov, 0, 3)) != '<p>' && strtolower(substr($naslov, -4)) != '</p>' && strrpos($naslov, '<p>') === false) {
//$naslov = '<p>'.nl2br($naslov).'</p>';
$naslov = '<p>' . str_replace("\n", "</p>\n<p>", $naslov) . '</p>';
}*/
/*$purifier = New Purifier();
$naslov = $purifier->purify_DB($naslov);*/
$s = sisplet_query("UPDATE srv_spremenljivka SET naslov_graf='$naslov' WHERE id='$spid'");
if (!$s) echo mysqli_error($GLOBALS['connect_db']);
// popravimo naslov spremenljivke v HEADER
$newHeaders[$spid]['naslov_graf'] = $naslov;
}
// shrani dodatne naslove variabel za graf
if (isset($_POST['edit_vrednost_graf'])) {
$i = 1;
foreach ($_POST as $key => $v) {
if (substr($key, 0, 14) == 'vrednost_graf_') {
$vrednost = substr($key, 14);
$naslov = str_replace(array('\n', '\t', '\r'), '', $_POST['vrednost_graf_'.$vrednost]);
$s = sisplet_query("UPDATE srv_vrednost SET naslov_graf='".$naslov."' WHERE id = '$vrednost'");
if (!$s) echo mysqli_error($GLOBALS['connect_db']);
// Popravimo variable v HEADER
if($spr_type == 1 || $spr_type == 3){
$newHeaders[$spid]['options_graf'][$i] = $naslov;
}
elseif($spr_type == 6 ){
$newHeaders[$spid]['grids'][$i-1]['variables'][0]['naslov_graf'] = $naslov;
}
elseif($spr_type == 16 || $spr_type == 20){
$newHeaders[$spid]['grids'][$i-1]['naslov_graf'] = $naslov;
}
elseif($spr_type != 7 || $i < 3){
$newHeaders[$spid]['grids'][0]['variables'][$i-1]['naslov_graf'] = $naslov;
}
$i++;
}
}
}
// shrani dodatne naslove gridov za graf
if (isset($_POST['edit_grid_graf'])) {
$vrstni_red = 0;
foreach ($_POST as $key => $v) {
if (substr($key, 0, 10) == 'grid_graf_') {
$vrstni_red++;
$grid = substr($key, 10);
$naslov = $_POST['grid_graf_'.$grid];
$variable = $grid;
$id= $vrstni_red;
$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'])) {
# grid je manjkajoča vrednost
$other = $grid.'';
$id = $grid;
}
}
$s = sisplet_query("UPDATE srv_grid SET naslov_graf='$naslov' WHERE id='$id' AND spr_id='$spid'");
if (!$s) echo mysqli_error($GLOBALS['connect_db']);
// Popravimo gride v HEADER
if($spr_type == 6 ){
$newHeaders[$spid]['options_graf'][$vrstni_red] = $naslov;
}
elseif($spr_type == 16 || $spr_type == 20){
foreach($newHeaders[$spid]['grids'] as $grdKey => $grdVal){
$newHeaders[$spid]['grids'][$grdKey]['variables'][$vrstni_red-1]['naslov_graf'] = $naslov;
}
}
}
}
}
// pobrisemo star header
if (file_exists(self::$headFileName))
unlink(self::$headFileName);
// shranimo popravljen headers v novo datoteko
file_put_contents(self::$headFileName, serialize($newHeaders));
SurveyAnalysis::$podstran = 'charts';
SurveyAnalysis::$_HEADERS = $newHeaders;
SurveyAnalysis::getFrequencys();
// Na novo zgeneriramo graf
switch ($spr_type) {
case 1: # radio
case 3: # dropdown
self::displayRadioChart($spid, self::$settings, $refresh=1);
break;
case 2: #checkbox
self::displayCheckboxChart($spid, self::$settings, $refresh=1);
break;
case 6: # multigrid
self::displayMultigridChart($spid, self::$settings, $refresh=1);
break;
case 62: # dvojni multigrid
self::displayDoubleMultigridChart($spid, self::$settings, $refresh=1);
break;
case 22: # compute
case 7: # število
self::displayNumberChart($spid, self::$settings, $refresh=1);
break;
case 8: # datum
self::displayDateChart($spid, self::$settings, $refresh=1);
break;
case 16: # multicheckbox
self::displayMulticheckboxChart($spid, self::$settings, $refresh=1);
break;
case 17: # razvrščanje
self::displayRankingChart($spid, self::$settings, $refresh=1);
break;
case 20: # multi number
self::displayMultinumberChart($spid, self::$settings, $refresh=1);
//self::frequencyVertical($spid);
break;
case 18: # vsota
self::displayVsotaChart($spid, self::$settings, $refresh=1);
break;
case 4: # text
case 5: # nagovor
case 21: # besedilo*
case 25: # kvota
self::frequencyVertical($spid);
break;
case 19: # multitext
self::sumMultiText($spid);
break;
}
// Shranimo spremenjene nastavitve v bazo
SurveyUserSession::saveData(self::$sessionData, 'charts');
}
// spremenimo skalo spremenljivke (ordinalna/nominalna)
if ($_GET['a'] == 'chart_advanced_settings_skala') {
$spremenljivka = $_POST['spid'];
$skala = $_POST['skala'];
# popravimo skalo spremenljivke
# skala - 0 Ordinalna
# skala - 1 Nominalna
if ( isset($skala) && (int)$spremenljivka) {
$sql = sisplet_query("UPDATE srv_spremenljivka SET skala='".$skala."' WHERE id='$spremenljivka'");
# popravimo v header datoteki
SurveyAnalysis::$_HEADERS[$spremenljivka]['skala'] = $skala;
file_put_contents(self::$headFileName, serialize(SurveyAnalysis::$_HEADERS));
}
}
// Globalne nastavitve za vse grafe
if ($_GET['a'] == 'save_global_settings') {
SurveyUserSetting :: getInstance()->saveSettings('default_chart_profile_'.$what, $value);
}
// Odpremo okno za izbiro globalnega skina
if($_GET['a'] == 'analiza_show_chart_color') {
$skin = (SurveyUserSetting::getInstance()->getSettings('default_chart_profile_skin') == null ? '1ka' : SurveyUserSetting::getInstance()->getSettings('default_chart_profile_skin'));
self::displaySettingsProfiles($skin);
}
// Spreminjamo globalen skin
if($_GET['a'] == 'analiza_change_chart_color') {
//$skin = SurveyUserSetting :: getInstance()->getSettings('default_chart_profile_skin');
if (isset ($_POST['skin']))
$skin = $_POST['skin'];
self::displaySettingsProfiles($skin);
}
// Preimenujemo globalen skin
if($_GET['a'] == 'renameSkin') {
if (isset ($_POST['id']))
$id = $_POST['id'];
if (isset ($_POST['name']))
$name = $_POST['name'];
$s = sisplet_query("UPDATE srv_chart_skin SET name='$name' WHERE id='$id'");
self::displaySettingsProfiles($id);
}
// Pobrisemo globalen skin
if($_GET['a'] == 'deleteSkin') {
if (isset ($_POST['id']))
$id = $_POST['id'];
$s = sisplet_query("DELETE FROM srv_chart_skin WHERE id='$id'");
self::displaySettingsProfiles();
}
// Dodamo nov globalen skin
if($_GET['a'] == 'newSkin') {
if (isset ($_POST['name']))
$name = $_POST['name'];
if (isset ($_POST['colors']))
$colors = $_POST['colors'];
$s = sisplet_query("INSERT INTO srv_chart_skin (name, colors, usr_id) VALUES('$name', '$colors', '$global_user_id')");
$id = mysqli_insert_id($GLOBALS['connect_db']);
self::displaySettingsProfiles($id);
}
// Popravimo obstojec custom skin
if($_GET['a'] == 'editSkin') {
if (isset ($_POST['id']))
$id = $_POST['id'];
if (isset ($_POST['colors']))
$colors = $_POST['colors'];
$s = sisplet_query("UPDATE srv_chart_skin SET colors='$colors' WHERE id='$id'");
}
// Preklop stevila intervalov pri mejah v naprednih nastavitvah
if($_GET['a'] == 'analiza_num_limit_interval') {
if (isset ($_POST['interval']))
self::$settings['interval'] = $_POST['interval'];
self::displayAdvancedSettingsLimits($spid, $mode=1);
}
echo '<script>charts_init();</script>';
}
static function setUpReturnAsHtml($returnAsHtml = false) {
self::$returnChartAsHtml = $returnAsHtml; # ali vrne rezultat analiz kot html ali ga izpiše
}
static function setUpIsForArchive($isArchive = false) {
#nastavimo timestamp, katerega dodamo imenu slike, za unikatnost
list($usec, $sec) = explode(" ", microtime());
self::$chartArchiveTime = $sec;
self::$isArchive = $isArchive; # nastavimo da smo v arhivu
return self::$chartArchiveTime;
}
static function displaySettingsProfiles($skin='1ka'){
global $site_path;
global $lang;
echo '<h2 style="margin-bottom:5px;">'.$lang['srv_chart_skin_long'].'</h2>';
echo '<span style="font-size: 12px; font-style: italic;">'.$lang['srv_chart_skin_info'].'</span><br/><br/>';
// Opozorilo na vrhu
if(!is_numeric($skin)){
echo '<div id="chart_skin_note">';
echo $lang['srv_chart_skin_warning'];
echo '</div>';
echo '<br class="clr" />'."\n";
}
echo '<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var f = $.farbtastic(\'#picker\');
var p = $(\'#picker\').css(\'opacity\', 0.25);
var selected;
$(\'.colorwell\')
.each(function () { f.linkTo(this); $(this).css(\'opacity\', 0.75); })
.focus(function() {
if (selected) {
$(selected).css(\'opacity\', 0.75).removeClass(\'colorwell-selected\');
}
f.linkTo(this);
p.css(\'opacity\', 1);
$(selected = this).css(\'opacity\', 1).addClass(\'colorwell-selected\');
});
});
</script>';
echo '<div id="chart_settings_profiles_left">';
// Prednastavljeni skini
echo '<span class="bold">'.$lang['srv_chart_skin_default'].':</span>';
echo '<span class="chart_profiles_holder" style="margin-bottom: 10px; height: 144px;">';
echo '<span id="chart_profiles" class="chart_profiles select">';
echo '<div class="option'.($skin == '1ka' ? ' active' : '').'" id="chart_profile_skin_1ka" value="1ka">'.$lang['srv_chart_skin_1ka'].'</div>';
echo '<div class="option'.($skin == 'lively' ? ' active' : '').'" id="chart_profile_skin_0" value="lively">'.$lang['srv_chart_skin_0'].'</div>';
echo '<div class="option'.($skin == 'mild' ? ' active' : '').'" id="chart_profile_skin_1" value="mild">'.$lang['srv_chart_skin_1'].'</div>';
echo '<div class="option'.($skin == 'office' ? ' active' : '').'" id="chart_profile_skin_6" value="office">'.$lang['srv_chart_skin_6'].'</div>';
echo '<div class="option'.($skin == 'pastel' ? ' active' : '').'" id="chart_profile_skin_7" value="pastel">'.$lang['srv_chart_skin_7'].'</div>';
echo '<div class="option'.($skin == 'green' ? ' active' : '').'" id="chart_profile_skin_2" value="green">'.$lang['srv_chart_skin_2'].'</div>';
echo '<div class="option'.($skin == 'blue' ? ' active' : '').'" id="chart_profile_skin_3" value="blue">'.$lang['srv_chart_skin_3'].'</div>';
echo '<div class="option'.($skin == 'red' ? ' active' : '').'" id="chart_profile_skin_4" value="red">'.$lang['srv_chart_skin_4'].'</div>';
echo '<div class="option'.($skin == 'multi' ? ' active' : '').'" id="chart_profile_skin_5" value="multi">'.$lang['srv_chart_skin_5'].'</div>';
echo '</span>';
echo '</span>';
// Custom kreirani skini
$custom_skins = self::getCustomSkins();
echo '<span class="bold">'.$lang['srv_chart_skin_custom'].':</span>';
echo '<span class="chart_profiles_holder">';
echo '<span id="chart_profiles_custom" class="chart_profiles select">';
foreach ($custom_skins as $custom_skin ){
echo '<div class="option'.($skin == $custom_skin['id'] ? ' active' : '').'" id="chart_profile_skin_'.$custom_skin['id'].'" value="'.$custom_skin['id'].'">'.$custom_skin['name'].'</div>';
}
echo '</span>';
echo '</span>';
// Ce je izbran custom skin imamo na dnu gumba brisi in preimenuj
if(is_numeric($skin)){
echo '<a href="#" onclick="chart_skin_action(\'show_rename\'); return false;">'.$lang['srv_rename_profile'].'</a><br/>'."\n";
echo '<a href="#" onclick="chart_skin_action(\'show_delete\'); return false;">'.$lang['srv_delete_profile'].'</a>'."\n";
}
echo '</div>';
echo '<div id="chart_settings_profiles_right">';
// ce je numeric je custom skin
if(is_numeric($skin)){
$custom_skin = self::getCustomSkin($skin);
$colors = explode('_', $custom_skin['colors']);
$default_colors = $colors;
}
else{
// preview za default skine
echo '<div id="div_chart_skin_previews">';
echo $lang['srv_chart_skin_preview'].':';
self::displayChartSkinPreview($skin);
echo '</div>';
$default_colors = self::getDefaultColors($skin);
}
// Izbira custom skina
echo '<div id="chart_custom_skin">';
echo ' <div id="picker" style="float: right;"></div>';
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 ' <div class="form-item"><label for="'.$name.'">'.$lang['srv_color'].' '.($i+1).': </label><input type="text" id="'.$name.'" name="'.$name.'" class="colorwell" value="'.$value.'" /></div>';
}
// reset na default barvo
echo '<br /><span class="as_link clr" onClick="chartAdvancedSettingsSetColor(\''.(is_numeric($skin) ? implode("_",$colors) : $skin).'\')">'.$lang['srv_chart_advanced_default_color'].'</span>';
echo '</div>';
echo '</div>';
// cover Div
echo '<div id="dsp_cover_div"></div>'."\n";
// div za kreacijo novega
echo '<div id="newChartSkin">'.$lang['srv_missing_profile_name'].': '."\n";
echo '<input id="newChartSkinName" name="newChartSkinName" type="text" value="" size="50" />'."\n";
echo '<span class="floatRight spaceLeft" ><span class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onclick="chart_skin_action(\'new\'); return false;"><span>'.$lang['srv_analiza_arhiviraj_save'].'</span></a></span></span>'."\n";
echo '<span class="floatRight spaceLeft" ><span class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onclick="chart_skin_action(\'cancel_new\'); return false;"><span>'.$lang['srv_close_profile'].'</span></a></span></span>'."\n";
echo '</div>'."\n";
// div za preimenovanje
echo '<div id="renameChartSkin">'.$lang['srv_missing_profile_name'].': '."\n";
echo '<input id="renameChartSkinName" name="renameChartSkinName" type="text" value="' . $custom_skin['name'] . '" size="50" />'."\n";
echo '<input id="renameChartSkinId" type="hidden" value="' . $custom_skin['id'] . '" />'."\n";
echo '<span class="floatRight spaceLeft" ><span class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onclick="chart_skin_action(\'rename\'); return false;"><span>'.$lang['srv_rename_profile_yes'].'</span></a></span></span>'."\n";
echo '<span class="floatRight spaceLeft" ><span class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onclick="chart_skin_action(\'cancel_rename\'); return false;"><span>'.$lang['srv_close_profile'].'</span></a></span></span>'."\n";
echo '</div>'."\n";
// div za brisanje
echo '<div id="deleteChartSkin">'.$lang['srv_missing_profile_delete_confirm'].': <b>' . $custom_skin['name'] . '</b>?'."\n";
echo '<input id="deleteChartSkinId" type="hidden" value="' . $custom_skin['id'] . '" />'."\n";
echo '<span class="floatRight spaceLeft" ><span class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onclick="chart_skin_action(\'delete\'); return false;"><span>'.$lang['srv_delete_profile_yes'].'</span></a></span></span>'."\n";
echo '<span class="floatRight spaceLeft" ><span class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onclick="chart_skin_action(\'cancel_delete\'); return false;"><span>'.$lang['srv_close_profile'].'</span></a></span></span>'."\n";
echo '</div>'."\n";
echo '<span class="clr"></span>';
echo '<div style="position:absolute; bottom:20px; right:20px;">';
echo '<span class="floatRight spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onclick="save_chartColor(); return false;"><span>'.$lang['save'].'</span></a></div></span>';
echo '<span class="floatRight spaceRight" title="'.$lang['srv_save_new_profile'].'"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onclick="chart_skin_action(\'show_new\'); return false;"><span>'.$lang['srv_save_new_profile'] . '</span></a></div></span>';
echo '<span class="floatRight spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onclick="close_chartColor(); return false;"><span>'.$lang['srv_zapri'].'</span></a></div></span>';
echo '</div>';
}
static function displayChartSkinPreview ($skin) {
global $lang;
echo '<div id="div_chart_skin_preview_1ka" class="div_chart_skin_preview" style="background-image: url(\'pChart/preview/color1ka.png\'); '.($skin == '1ka' ? ' display:block;' : '').'">';
echo '</div>';
echo '<div id="div_chart_skin_preview_0" class="div_chart_skin_preview" style="background-image: url(\'pChart/preview/color0.png\'); '.($skin == 'lively' ? ' display:block;' : '').'">';
echo '</div>';
echo '<div id="div_chart_skin_preview_1" class="div_chart_skin_preview" style="background-image: url(\'pChart/preview/color1.png\'); '.($skin == 'mild' ? ' display:block;' : '').'">';
echo '</div>';
echo '<div id="div_chart_skin_preview_2" class="div_chart_skin_preview" style="background-image: url(\'pChart/preview/color2.png\'); '.($skin == 'green' ? ' display:block;' : '').'">';
echo '</div>';
echo '<div id="div_chart_skin_preview_3" class="div_chart_skin_preview" style="background-image: url(\'pChart/preview/color3.png\'); '.($skin == 'blue' ? ' display:block;' : '').'">';
echo '</div>';
echo '<div id="div_chart_skin_preview_4" class="div_chart_skin_preview" style="background-image: url(\'pChart/preview/color4.png\'); '.($skin == 'red' ? ' display:block;' : '').'">';
echo '</div>';
echo '<div id="div_chart_skin_preview_5" class="div_chart_skin_preview" style="background-image: url(\'pChart/preview/color5.png\'); '.($skin == 'multi' ? ' display:block;' : '').'">';
echo '</div>';
echo '<div id="div_chart_skin_preview_6" class="div_chart_skin_preview" style="background-image: url(\'pChart/preview/color6.png\'); '.($skin == 'office' ? ' display:block;' : '').'">';
echo '</div>';
echo '<div id="div_chart_skin_preview_7" class="div_chart_skin_preview" style="background-image: url(\'pChart/preview/color7.png\'); '.($skin == 'pastel' ? ' display:block;' : '').'">';
echo '</div>';
}
static function getCustomSkins(){
global $global_user_id;
$skins = array();
$sql = sisplet_query("SELECT * FROM srv_chart_skin WHERE usr_id='$global_user_id'");
while($row = mysqli_fetch_array($sql)){
$skins[] = $row;
}
return $skins;
}
static function getCustomSkin($id){
global $global_user_id;
$sql = sisplet_query("SELECT * FROM srv_chart_skin WHERE usr_id='$global_user_id' AND id='$id'");
$skin = mysqli_fetch_array($sql);
return $skin;
}
static function displayPublicChart($properties = array()) {
global $lang;
global $site_url;
header('Cache-Control: no-cache');
header('Pragma: no-cache');
$anketa = self::$anketa;
if ($anketa > 0) {
$sql = sisplet_query("SELECT lang_admin FROM srv_anketa WHERE id = '$anketa'");
$row = mysqli_fetch_assoc($sql);
$lang_admin = $row['lang_admin'];
} else {
$sql = sisplet_query("SELECT value FROM misc WHERE what = 'SurveyLang_admin'");
$row = mysqli_fetch_assoc($sql);
$lang_admin = $row['value'];
}
#izpišemo HTML
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">';
echo '<head>';
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo '<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />';
echo '<script type="text/javascript" src="'.$site_url.'admin/survey/script/js-lang.php?lang='.($lang_admin==1?'si':'en').'"></script>';
echo '<script type="text/javascript" src="'.$site_url.'admin/survey/minify/g=jsnew"></script>';
echo '<link type="text/css" href="'.$site_url.'admin/survey/minify/g=css" media="screen" rel="stylesheet" />';
echo '<link type="text/css" href="'.$site_url.'admin/survey/minify/g=cssPrint" media="print" rel="stylesheet" />';
echo '<style>';
echo '.container {margin-bottom:45px;} #navigationBottom {width: 100%; background-color: #f2f2f2; border-top: 1px solid gray; height:25px; padding: 10px 30px 10px 0px !important; position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000;}';
echo '</style>';
echo '<!--[if lt IE 7]>';
echo '<link rel="stylesheet" href="<?=$site_url?>admin/survey/css/ie6hacks.css" type="text/css" />';
echo '<![endif]-->';
echo '<!--[if IE 7]>';
echo '<link rel="stylesheet" href="<?=$site_url?>admin/survey/css/ie7hacks.css" type="text/css" />';
echo '<![endif]-->';
echo '<!--[if IE 8]>';
echo '<link rel="stylesheet" href="<?=$site_url?>admin/survey/css/ie8hacks.css" type="text/css" />';
echo '<![endif]-->';
echo '<style>';
echo '.container {margin-bottom:45px;} #navigationBottom {width: 100%; background-color: #f2f2f2; border-top: 1px solid gray; height:25px; padding: 10px 30px 10px 0px !important; position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000;}';
echo '</style>';
echo '<script>';
echo 'function chkstate(){';
echo ' if(document.readyState=="complete"){';
echo ' window.close()';
echo ' }';
echo ' else{';
echo ' setTimeout("chkstate()",2000)';
echo ' }';
echo '}';
echo 'function print_win(){';
echo ' window.print();';
echo ' chkstate();';
echo '}';
echo 'function close_win(){';
echo ' window.close();';
echo '}';
echo '</script>';
echo '</head>';
echo '<body style="margin:5px; padding:5px;" >';
echo '<h2>'.$lang['srv_publc_chart_title_for'] . self::$survey['naslov'].'</h2>';
echo '<input type="hidden" name="anketa_id" id="srv_meta_anketa_id" value="' . $anketa . '" />';
echo '<div id="analiza_data">';
# ponastavimo nastavitve- filter
self::Display();
echo '</div>';
echo '<div id="navigationBottom" class="printHide">';
echo '<span class="floatRight spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onclick="window.print();return false;"><span><img src="'.$site_url.'admin/survey/icons/icons/printer.png" vartical-align="middle" /> '.$lang['hour_print2'].'</span></a></div></span>';
echo '<br class="clr" />';
echo '</div>';
echo '</body>';
echo '</html>';
}
}
?>