Init(self::$surveyId, self::$uId); # preverimo ali ima uporabnik nastavljen privzet profil $dsp = SurveyUserSetting :: getInstance()->getSettings('default_statistic_profile'); if ( $dsp == null || $dsp == 0 ) { # nastavimo privzet profil v clas $dsp = 0; } #dodamo profil iz seje if ( isset($_SESSION['statistic_profile'][self::$surveyId])) { #dodamo profil iz seje self::$profiles['-1'] = array('id'=>'-1', 'name'=>$lang['srv_temp_profile'], 'starts'=>$_SESSION['statistic_profile'][self::$surveyId]['starts'], 'ends'=>$_SESSION['statistic_profile'][self::$surveyId]['ends'], 'interval_txt'=>$_SESSION['statistic_profile'][self::$surveyId]['interval_txt']); } // ni v seji, nar3edimo privzeteka if ($dsp == -1 && !(isset($_SESSION['statistic_profile'][self::$surveyId]))) { $dsp = 0; } self::SetDefaultProfile($dsp); #dodamo privzet profil # datum od, "ce ni podan vzamemo kreacijo ankete SurveyInfo :: getInstance()->SurveyInit(self::getSurveyId()); $start_date = date(SS_DATE_FORMAT, strtotime(SurveyInfo::getInstance()->getSurveyInsertDate())); # datum do, "ce ni podan vzamemo danasnji dan $end_date = date(SS_DATE_FORMAT);// ce ne, self::$profiles['0'] = array( 'id'=>0, 'name'=>$lang['srv_default_profile'], 'starts'=>$start_date, 'ends'=>$end_date, 'interval_txt'=>''); # poiščemo še seznam vseh ostalih profilov uporabnika $stringSelect = "SELECT id, name, DATE_FORMAT(starts,'".SS_CALENDAR_DATE_FORMAT."') AS starts, DATE_FORMAT(ends,'".SS_CALENDAR_DATE_FORMAT."') AS ends, interval_txt FROM srv_statistic_profile WHERE uid = '".self::getGlobalUserId()."' || uid = '0' ORDER BY id"; $querySelect = sisplet_query($stringSelect); while ( $rowSelect = mysqli_fetch_assoc($querySelect) ) { self::$profiles[$rowSelect['id']] = array( 'id'=>$rowSelect['id'], 'name'=>$rowSelect['name'], 'starts'=>$rowSelect['starts'], 'ends'=>$rowSelect['ends'], 'interval_txt'=>$rowSelect['interval_txt']); } return true; } else return false; } /** Vrne podatke trenutno izbranega profofila * */ static function GetCurentProfileData() { return self::$profiles[self::$currentProfileId]; } /** Vrne podatke podanega profofila * */ static function GetProfileData($pid) { return self::$profiles[$pid]; } /** Vrne array z start date in end date * */ static function GetStatisticDates() { $_profile_data = self :: GetCurentProfileData(); # ali imam o privzete datume filtra $is_default_dates = (int)($_profile_data['id'] === 0); # nastavimo start date in end date if ($_profile_data['interval_txt'] != '') { # ce imamo nastavljen datum preko intervala $end_date = date(SS_OUTPUT_DATE_FORMAT); $start_date = date(SS_OUTPUT_DATE_FORMAT,strtotime(date(SS_OUTPUT_DATE_FORMAT, strtotime($end_date)) . ' - '.$_profile_data['interval_txt'])); } else if ($_profile_data['starts'] != '' && $_profile_data['ends'] != '') { # imamo podana oba datuma $start_date = date(SS_OUTPUT_DATE_FORMAT,strtotime($_profile_data['starts'])); $end_date = date(SS_OUTPUT_DATE_FORMAT,strtotime($_profile_data['ends'])); } else { # napaka vzamemo datum kreacije ankete in današnji datum $start_date = date(SS_OUTPUT_DATE_FORMAT,strtotime(SurveyInfo::getInstance()->getSurveyInsertDate())); $end_date = date(SS_OUTPUT_DATE_FORMAT);; } # končni datum po potrebi zmanjšamo na današnji datum if (strtotime($end_date) > strtotime(date(SS_OUTPUT_DATE_FORMAT))) { $end_date = strtotime(date(SS_OUTPUT_DATE_FORMAT)); } return array('start_date'=>$start_date, 'end_date'=>$end_date, 'is_default_dates' => $is_default_dates); } /** Pridobimo seznam vseh list uporabnika * v obliki arraya */ static function getProfiles() { return self::$profiles; } /** Ponastavi id privzetega profila * */ static function SetDefaultProfile($pid) { self::$currentProfileId = $pid; $saved = SurveyUserSetting :: getInstance()->saveSettings('default_statistic_profile',$pid); } /** * */ static function RunStatisticProfile($pid,$timeline,$startDate,$endDate,$stat_interval, $asSession) { if ($pid == 0 && ($asSession == false || $asSession == 'false' )) { # imamo privzet profil self :: SetDefaultProfile(0); } else if ($pid > 0 && ($asSession == false || $asSession == 'false' )) { # shranimo v bazo //sisplet_query("UPDATE srv_statistic_profile SET timeline,startDate,endDate,stat_interval WHERE id = '".$pid."'"); if ($timeline == 'true') { # shranjujemo od - do $stat_interval = ''; $update = "UPDATE srv_statistic_profile SET starts = '".$startDate."', ends='".$endDate."', interval_txt = '' WHERE id = '".$pid."'"; } else { # shranjujemo interval $startDate = ''; $endDate = ''; $update = "UPDATE srv_statistic_profile SET starts = '0000-00-00 00:00:00', ends='0000-00-00 00:00:00', interval_txt = '".$stat_interval."' WHERE id = '".$pid."'"; } $updated = sisplet_query($update); # ce je bili updejt ok posodobimo se vrednost v profilu if ($updated) { self::$profiles[$pid]['starts'] = $startDate; self::$profiles[$pid]['ends'] = $endDate; self::$profiles[$pid]['interval_txt'] = $stat_interval; } # nastavimo privzet profil na trenutnega self :: SetDefaultProfile($pid); } else { # shranjujenmo v sejo if ($timeline == 'true') { # shranjujemo od - do $stat_interval = ''; } else { # shranjujemo interval $startDate = ''; $endDate = ''; } if ($timeline == 'true') { self::$profiles[$pid]['starts'] = $startDate; self::$profiles[$pid]['ends'] = $endDate; } else { self::$profiles[$pid]['interval_txt'] = $stat_interval; } $_SESSION['statistic_profile'][self::$surveyId] = array('id'=>'-1', 'name'=>$lang['srv_temp_profile'], 'starts'=>$startDate, 'ends'=>$endDate, 'interval_txt'=>$stat_interval); self :: SetDefaultProfile(-1); } return $updated; } static function RenameProfile($pid, $name) { if (isset($pid) && $pid > 0 && isset($name) && trim($name) != "") { // popravimo podatek za variables $stringUpdate = "UPDATE srv_statistic_profile SET name = '".$name."' WHERE id = '".$pid."'"; $updated = sisplet_query($stringUpdate); return $updated; } else { return -1; } } static function DeleteProfile($pid = 0) { self :: SetDefaultProfile('0'); if (isset($pid) && $pid == -1) { unset($_SESSION['statistic_profile'][self::$surveyId] ); } else if (isset($pid) && $pid > 0) { // Izbrišemo profil in nastavimo privzetega $stringUpdate = "DELETE FROM srv_statistic_profile WHERE id = '".$pid."'"; $updated = sisplet_query($stringUpdate); } } /** Funkcija kreira nov profil * */ function createStatisticProfile($timeline,$startDate,$endDate,$stat_interval,$name=null) { global $lang; if ($name == null || trim($name) == '' ) { $name = $lang['srv_new_profile']; } if ($timeline == 'true') { # shranjujemo od - do $startDate = date(SS_OUTPUT_DATE_FORMAT, strtotime($startDate)); $endDate = date(SS_OUTPUT_DATE_FORMAT, strtotime($endDate)); $stat_interval = ''; } else { # shranjujemo interval $startDate = '0000-00-00'; $endDate = '0000-00-00'; } $iStr = "INSERT INTO srv_statistic_profile (id,uid,name,starts,ends,interval_txt)". " VALUES (NULL, '".self::$uId."', '".$name."', '".$startDate."', '".$endDate."', '".$stat_interval."')"; $ins = sisplet_query($iStr); $id = mysqli_insert_id($GLOBALS['connect_db']); if ($id > 0) { self :: SetDefaultProfile($id); } else { self :: SetDefaultProfile(0); } return; } /** Funkcija prikaze izbor datuma * */ function displayDateFilters($current_pid = null) { global $lang; $_all_profiles = SurveyStatisticProfiles::getProfiles(); if ($current_pid == null) { $current_pid = SurveyStatisticProfiles::getCurentProfileId(); } echo '
'."\n"; echo '
'."\n"; # zlistamo vse profile echo '
'."\n"; if (count($_all_profiles)) { foreach ($_all_profiles as $id=>$profile) { echo '
' . $profile['name'] .'
'."\n"; } } echo '
'."\n"; // statistic_profile echo '
'."\n"; //statistic_profile_holder echo '
'; # privzetega profila ne moremo ne zbrisat ne preimenovat echo ''."\n"; // statistic_profile_button_left_holder echo '
'."\n"; //statistic_profile_left echo '
'."\n"; echo '
'; self::DisplayProfileData($current_pid); echo '
'; // statistic_profile_content echo '
'."\n"; if ($current_pid == 0) { echo '
'; echo $lang['srv_change_default_profile']; echo '
'; // statistic_profile_note } echo '
'; echo '
'."\n"; if ($current_pid == 0) { echo ''; echo ''; echo ''; } else if ($current_pid == -1) { echo ''; echo ''; echo ''; } else { echo ''; // echo ''; echo ''; echo ''; } echo '
'."\n"; // statistic_profile_button_right_holder echo '
'; // statistic_profile_right // cover Div echo '
'."\n"; // div za kreacijo novega echo '
'.$lang['srv_missing_profile_name'].': '."\n"; echo ''."\n"; echo ''.$lang['srv_analiza_arhiviraj_save'].''."\n"; echo ''.$lang['srv_close_profile'].''."\n"; echo '
'."\n"; // div za preimenovanje echo '
'.$lang['srv_missing_profile_name'].': '."\n"; echo ''."\n"; echo ''."\n"; echo ''.$lang['srv_rename_profile_yes'].''."\n"; echo ''.$lang['srv_close_profile'].''."\n"; echo '
'."\n"; // div za brisanje echo '
'.$lang['srv_missing_profile_delete_confirm'].': ' . $currentFilterProfile['name'] . '?'."\n"; echo ''."\n"; echo ''.$lang['srv_delete_profile_yes'].''."\n"; echo ''.$lang['srv_close_profile'].''."\n"; echo '
'."\n"; } /** Funkcija prikaze osnovnih informacije profila * */ function DisplayProfileData($current_pid) { global $lang; # podatki profila $p_data = SurveyStatisticProfiles::GetProfileData($current_pid); #kateri nacin imamo ali timeline (od - do) ali inervalsko (zadnjih....) # ce je podan string interval imamo intervalno if ( $p_data['interval_txt'] != null || trim($p_data['interval_txt'] != '')) { $timeline = false; $time = $p_data['interval_txt']; $p_data['starts'] = date(SS_DATE_FORMAT,strtotime(SurveyInfo::getInstance()->getSurveyInsertDate())); $p_data['ends'] = date(SS_DATE_FORMAT); } else { $timeline = true; $time = ''; } echo ''."\n"; echo ' '; echo '' . "\n"; echo ''."\n"; echo ' '; echo '' . "\n" ; echo '
'; echo '

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

' . "\n"; echo '' . "\n"; } } ?>