true, #fieldset z linkom za generiranje novega arhiva 'delete'=>true, #stolpec delete 'edit'=>true, #stolpec editiraj 'email'=>true, #stolpec pošlji po mailu 'name'=>true, #stolpec ime 'note'=>true, #stolpec opomba 'date'=>true, #stolpec datum 'access'=>true, #stolpec access (dostop) # 0 - vsi, 1 - uporabniki iz srv_dostop 'type'=>true, #stolpec type (vrsta analize) # 0 - sumarnik, 1 - opisne, 2 - frekvence, 3 - crostabi, 4 - means, 5 - ttest, 6 - break, 7 - charts, 8 - creport 'name_link' => true,#ali se ime pokaže kot link 'duration' => true, #stolpec trajanje (duration) 'insert' => true, #stolpec autor 'edit' => true #stolpec spreminajl ); $ArchiveTypes = array(M_ANALIZA_SUMS => 0, M_ANALIZA_DESCRIPTOR=>1, M_ANALIZA_FREQUENCY=>2, M_ANALIZA_CROSSTAB=>3, M_ANALYSIS_MEANS=>4, M_ANALYSIS_TTEST=>5, M_ANALYSIS_BREAK=>6, M_ANALYSIS_CHARTS=>7, M_ANALYSIS_CREPORT=>8); #ponastavimo želene vrednosti foreach ($fields AS $key => $value) { $defaultFields[$key] = $value; } $users = array(); $qry = "SELECT saa.*, UNIX_TIMESTAMP(saa.date) as insert_date, UNIX_TIMESTAMP(saa.duration) as duration_d, DATEDIFF(saa.duration, CURDATE()) as days_left" # da ne delamo velike poizvedbe, kadar ni potrebno . ($defaultFields['insert'] ? " , us1.name as iname, us1.surname as isurname, us1.email as iemail " : "" ) . ($defaultFields['edit'] ? " , us2.name as ename, us2.surname as esurname, us2.email as eemail " : "" ) . " FROM srv_analysis_archive as saa " . ($defaultFields['insert'] ? " LEFT OUTER JOIN ( SELECT us1.name, us1.surname, us1.id, us1.email FROM users as us1 ) AS us1 ON us1.id = saa.uid " : "" ) . ($defaultFields['edit'] ? " LEFT OUTER JOIN ( SELECT us2.name, us2.surname, us2.id, us2.email FROM users as us2 ) AS us2 ON us2.id = saa.editid " : "" ) . " WHERE sid='".self::$sid."' ORDER BY date DESC"; $s = sisplet_query($qry); if (mysqli_num_rows($s) > 0 ) { echo '
'; echo ''.$lang['srv_archive_analysis'].''; echo '

'.$lang['srv_analiza_archive_note1'].'

'; echo '

'.$lang['srv_analiza_archive_generate_quick'].'

'; echo '
'; echo ''; echo '
'; echo '

'.$lang['srv_analiza_archive_list'].'

'; echo '
'; echo '
'; echo ''; echo ''; //Stolpec za ikone - prazen header echo ''; if ($defaultFields['name']) echo ''; if ($defaultFields['note']) echo ''; if ($defaultFields['type']) echo ''; if ($defaultFields['date']) echo ''; if ($defaultFields['duration']) echo ''; if ($defaultFields['insert']) echo ''; if ($defaultFields['edit']) echo ''; if ($defaultFields['access']) echo ''; echo ''; while ($row = mysqli_fetch_assoc($s)) { echo ''; //Stolpec za ikone - vrstice echo ''; if ($defaultFields['name']) { echo ''; } if ($defaultFields['note']) { echo ''; } if ($defaultFields['type']) { $key = $lang['srv_analiza_arhiviraj_type_'.$row['type']]; echo ''; } if ($defaultFields['date']) { echo ''; } if ($defaultFields['duration']) { # koliko dni damo v title $days = ($row['days_left'] == 1) ? $lang['1day'] : $row['days_left'].' '.$lang['hour_days']; echo ''; } if ($defaultFields['insert']) { $users = array(); echo ''; } if ($defaultFields['edit']) { echo ''; } if ($defaultFields['access']) { echo ''; } echo ''; } echo '
'.$lang['srv_analiza_archive_lbl_name'].''.$lang['srv_analiza_archive_lbl_note'].''.$lang['srv_analiza_archive_lbl_type'].''.$lang['srv_analiza_archive_lbl_date'].''.$lang['srv_analiza_archive_lbl_duration'].''.$lang['srv_analiza_archive_lbl_author'].''.$lang['srv_analiza_archive_lbl_editor'].''.$lang['srv_analiza_archive_lbl_access'].'
'; echo '
'; echo ''; if ($defaultFields['email']) echo ''; if ($defaultFields['edit']) echo ''; if ($defaultFields['delete']) echo ''; echo '
'; echo '
'; echo ''; if ($defaultFields['name_link']) { echo ''; echo $row['name']; echo ''; } else { echo $row['name']; } echo ''; echo ''.$row['note'].''.$key.''; echo date('d.m.Y',$row['insert_date']); echo ''; echo date('d.m.Y',$row['duration_d']); echo ''; echo $row['iemail']; echo ''; echo $row['eemail']; echo ''.$lang['srv_analiza_arhiviraj_access_'.$row['access']].'
'; echo '
'; echo '
'; echo '
'; } else { echo '
'; echo ''.$lang['srv_archive_analysis'].''; echo '

'.$lang['srv_analiza_archive_note_no_archive'].'

'; echo '

'.$lang['srv_analiza_archive_note1'].'

'; echo '

'.$lang['srv_analiza_archive_generate_quick'].'

'; echo '
'; echo ''; echo '
'; echo '
'; } } /** Skreira tekstovni fajl in shrani zapis o fajlu v bazo. * * @param unknown_type $content * @param unknown_type $name */ static function CreateArchive($content,$name=null, $note=null, $access='0',$type=null,$duration=null,$durationType='0',$settings=array(), $access_password=null) { global $site_path, $site_url, $global_user_id, $lang; #če ni imena ga zgeneriramo if ($name==null) { $name = 'Arhiv: '.date("d.m.Y H:i:s"); } $folder = $site_path . 'admin/survey/'.SAA_FOLDER.'/'; $filename = 'saa_'.self::$sid.'_'.time().'.txt'; # če imamo durationType = 2, imamo trajen arhiv (do leta 2038 - max za 32bit server) if ($durationType == 2) { $duration = strtotime(date("d.m.Y", strtotime('1.1.2038'))); } else{ # če imamo durationType = 0, imamo privzet interval 3 mesece if ($durationType == 0) { $duration = null; } if ( $duration == null ) { #če ni časa trajanja ga zgeneriramo $duration = date("Y-m-d");// current date $duration = strtotime(date("Y-m-d", strtotime($duration)) . DEFAULT_DURATION); } else { # če je ga pretvorimo v datum $duration = strtotime(date("d.m.Y", strtotime($duration))); } } $duration = date("Y-m-d",$duration); $settings = serialize($settings); #dodamo zapis o arhivu v bazo $s = sisplet_query("INSERT INTO srv_analysis_archive (sid, uid, name, filename, date, note, access, type, duration, editid, settings, access_password) " ."VALUES ('".self::$sid."', '$global_user_id', '$name', '$filename', NOW(), '$note', '$access', '$type', '$duration', '$global_user_id', '$settings', '$access_password')"); $id = mysqli_insert_id($GLOBALS['connect_db']); // Na zacetek dodamo glavo -> po novem se shrani v file SurveyInfo::getInstance()->SurveyInit(self::$sid); $naslov = SurveyInfo::getInstance()->getSurveyColumn('akronim'); if ($naslov == null || trim($naslov) == '') { $naslov = SurveyInfo::getInstance()->getSurveyColumn('naslov'); } $text = '
'; SurveySetting::getInstance()->Init(self::$sid); $survey_hide_title = SurveySetting::getInstance()->getSurveyMiscSetting('survey_hide_title'); // Ce ne prikazujemo naslova ankete to skrijemo if($survey_hide_title == 0){ $text .= '
' .$lang['srv_analiza_archive_date_created'] .date("d.m.Y") .'

'.$naslov.'

'; } // Porocilo po meri ima custom naslov $text .= ($survey_hide_title == 1) ? '

' : '

'; if($type == 8){ $SCR = new SurveyCustomReport(self::$sid); $creport_title = $SCR->getTitle(); $text .= $creport_title; } else{ $text .= $lang['srv_analiza_archive_title'].$lang['srv_analiza_arhiviraj_type_'.$type]; } $text .= ($survey_hide_title == 1) ? '

' : ''; $content = $text.$content; if ($id) { # če smo dodali zapis v bazo shranimo še datoteko # zapišemo fajl na disk $fh = fopen($folder.$filename, 'w') or die("can't open file"); fwrite($fh, $content); fclose($fh); } self :: DisplayCreatedArchive($id,$name); } static function DisplayDoArchive() { global $lang, $site_url; echo '
'."\n"; echo ''; echo '

'.$lang['srv_analiza_arhiv'].'

'; echo $lang['srv_analiza_arhiviraj_ime']; echo ': '."\n"; echo '
'; echo '
'; echo $lang['srv_analiza_archive_note'].':'; echo ''; echo '
'; echo '
'; echo '
'; // dostop echo '
'; echo $lang['srv_analiza_archive_access'].':'; echo '
 '.$lang['srv_analiza_archive_access_all']; echo '
 '.$lang['srv_analiza_archive_access_admins']; echo '
 '.$lang['srv_analiza_archive_access_password']; echo '
'; echo '
 
'; // trajanje echo '
'; echo $lang['srv_analiza_archive_duration'].':'; echo '
'; $date = date("Y-m-d");// current date $duration = strtotime(date("Y-m-d", strtotime($date)) . " +3 month"); $duration = date("d.m.Y",$duration); echo ''; printf ($lang['srv_analiza_archive_duration_default'], $duration); echo '
'; echo ''.$lang['srv_analiza_archive_duration_custom'].'  '; echo '
'; echo ''.$lang['srv_permanent_archive']; echo '
'; echo '
'; echo '
'; echo '
'."\n"; echo $lang['srv_analiza_current_archives']; if (true) { self :: ListArchive(array('create_new'=>false, 'delete'=>false, 'edit'=>false, 'email'=>false, 'access'=>false, 'note'=>false, 'type'=>true, 'access'=>false, 'name_link'=>true,'duration'=>false, 'insert'=>true, 'edit'=>false)); #self :: ListArchive(array('delete'=>false, 'edit'=>false, 'email'=>false, 'access'=>false, 'note'=>false, 'type'=>false, 'access'=>false, 'name_link'=>true, 'duration'=>false, 'insert'=>false, 'edit'=>false)); } else { echo $lang['srv_analiza_no_current_archives']; } echo '
'."\n"; // end: div_curent_archives if ($_GET['podstran'] == M_ANALYSIS_CROSSTAB || $_POST['podstran'] == M_ANALYSIS_CROSSTAB) { echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; } else if ($_GET['podstran'] == M_ANALYSIS_MEANS || $_POST['podstran'] == M_ANALYSIS_MEANS) { echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; } else if ($_GET['podstran'] == M_ANALYSIS_TTEST || $_POST['podstran'] == M_ANALYSIS_TTEST) { echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; } else if ($_GET['podstran'] == M_ANALYSIS_BREAK || $_POST['podstran'] == M_ANALYSIS_BREAK) { echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; } else if ($_GET['podstran'] == M_ANALYSIS_CHARTS || $_POST['podstran'] == M_ANALYSIS_CHARTS) { echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; } else if ($_GET['podstran'] == M_ANALYSIS_CREPORT || $_POST['podstran'] == M_ANALYSIS_CREPORT) { echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; } else { echo ''.$lang['srv_analiza_arhiviraj_create'].''."\n"; } echo ''.$lang['srv_analiza_arhiviraj_cancle'].''."\n"; echo '
'."\n"; // end div_analiza_archive_name } static function DisplayCreatedArchive($aid=null, $name) { global $lang, $site_url; echo '
'."\n"; echo ''; echo '

'.$lang['srv_analiza_arhiv'].'

'; $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { echo '
'; printf( $lang['srv_analiza_arhiviraj_success'],$name); echo '
'; echo '
'; echo '
'; echo $lang['srv_analiza_arhiviraj_success_note']; echo '
'; echo ''; echo ''; echo $site_url.'admin/survey/AnalysisArchive.php?anketa='.self::$sid.'&aid='. $aid; echo ''; echo ''; echo '
'; echo ''.$lang['srv_analiza_arhiviraj_close'].''."\n"; echo ' '.$lang['srv_analiza_arhiviraj_send_mail'].''."\n"; } else { self::DisplayError($CAE); } # seznam arhivov echo '
'; echo '
'."\n"; echo $lang['srv_analiza_current_archives']; if (true) { self :: ListArchive(array('delete'=>false, 'edit'=>false, 'email'=>false, 'access'=>false, 'note'=>false, 'type'=>true, 'access'=>false, 'name_link'=>true,'duration'=>false, 'insert'=>true, 'edit'=>false)); } else { echo $lang['srv_analiza_no_current_archives']; } echo '
'."\n"; // end: div_curent_archives echo '
'."\n"; // end div_analiza_archive_name } static function EmailArchive($aid) { global $lang; echo '
'."\n"; echo ''; echo '

'.$lang['srv_analiza_arhiv'].'

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

'.$lang['srv_analiza_archive_message_note'].'

'; echo '
'."\n"; echo ''."\n"; echo '
'; echo '
'; echo '
'; echo '
'; echo '

'; echo '

'."\n"; $signature = Common::getEmailSignature(); echo ''."\n"; echo '

'; echo ''."\n"; echo '
'."\n"; #gumbi echo '
'."\n"; echo ''; echo '
'; # navodila echo $lang['srv_analiza_arhiviraj_mail_note_0']; echo '
'; echo '
'; echo '
'; echo '
'; # navodila echo $lang['srv_analiza_arhiviraj_mail_note_1']; echo '
'; echo '
'; echo '
'; } else { self::DisplayError($CAE); } echo '
'."\n"; // end div_analiza_archive_name } static function SendEmailArchive($aid = null, $subject, $text, $emails) { global $lang, $site_url, $site_path, $global_user_id; echo '
'."\n"; echo ''; echo '

'.$lang['srv_analiza_arhiv'].'

'; $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { if (isset($emails) && trim($emails) != "") { $_subject = ( isset($subject) && trim($subject) != "" ) ? stripcslashes ($subject) : stripcslashes ($lang['srv_analiza_arhiviraj_mail_subject']); // Podpis $signature = Common::getEmailSignature(); $_text = ( isset($text) && trim($text) != "" ) ? stripcslashes ($text) : stripcslashes (nl2br($lang['srv_analiza_arhiviraj_mail_text'].$signature)); # polovimo podatke ankete SurveyInfo::getInstance()->SurveyInit(self::$sid); $row = SurveyInfo::getInstance()->getSurveyRow(); #polovimo podatke arhiva $archQry = sisplet_query("SELECT date FROM srv_analysis_archive WHERE sid='".self::$sid."' AND id='".$aid."'"); $archRow = mysqli_fetch_assoc($archQry); $userQry = sisplet_query("SELECT name, surname, id, email FROM users WHERE id='$global_user_id'"); $userRow = mysqli_fetch_assoc($userQry); /* zamenjave [LINK]
HTML povezava do arhiva [URL]
URL povezave do arhiva [NAME]
ime uporabnika (iz baze (CMS)) [SURVEY]
ime ankete [DATE]
datum [SITE]
URL do ankete
", */ $in = array('[LINK]','[URL]','[NAME]','[SURVEY]','[DATE]','[SITE]'); $repl_link = ''.$site_url.'admin/survey/AnalysisArchive.php?anketa='.self::$sid.'&aid='.$aid.''; $repl_url = $site_url.'admin/survey/AnalysisArchive.php?anketa='.self::$sid.'&aid='.$aid; $repl_name = $userRow['name'].' '.$userRow['surname'].' ('.$userRow['email'].')'; $repl_survey = $row['naslov']; $repl_date = $archRow['date']; $repl_site = $site_url.'admin/survey/AnalysisArchive.php?anketa='.self::$sid; $out = array($repl_link,$repl_url,$repl_name,$repl_survey,$repl_date,$repl_site); $_subject = str_replace($in,$out,$_subject); $_text= str_replace($in,$out,$_text); # v loopu pošljemo maile $email_addresses = explode("\n", $emails); if (count($email_addresses)) { $status_success = array(); $status_error = array(); foreach ($email_addresses AS $email) { $email = trim($email); if (strlen ($email) > 1) { // Posljemo mail vsakemu uporabniku posebej try { $MA = new MailAdapter(self::$sid, $type='alert'); $MA->addRecipients($email); $resultX = $MA->sendMail($_text, $_subject); } catch (Exception $e) { } if ($resultX) { $status_success[] = $email; // poslalo ok } else { $status_error[] = $email; // ni poslalo } } } // end foreach // zlistamo uspešne in neuspešne naslove echo 'Sporočilo:

' . $_subject . ',
' . $_text . '
'; if (count($status_success) > 0) { echo 'je bilo uspešno poslano na naslednje naslove:
'; foreach ($status_success as $email) { echo $email . ",
"; } echo "
"; } if (count($status_error) > 0) { echo '
ni bilo uspešno poslano na naslednje naslove:
'; foreach ($status_error as $email) { echo $email . ",
"; } } } else { echo 'No email adress!'; } } else { echo 'Pri pošiljanju e-mailov je prišlo do napake!'; } echo ''.$lang['srv_analiza_arhiviraj_close'].''."\n"; echo '
'; } else { self::DisplayError($CAE); } echo '
'."\n"; // end div_analiza_archive_name } static function EditArchive($aid) { global $lang, $site_url, $site_path, $global_user_id; echo '
'."\n"; echo ''; echo '

'.$lang['srv_analiza_arhiv'].'

'; $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { # polovimo podatke o arhivu $s = sisplet_query("SELECT *, UNIX_TIMESTAMP(duration) as duration_d FROM srv_analysis_archive WHERE id='".$aid."' AND sid='".self::$sid."'"); $row = mysqli_fetch_assoc($s); echo $lang['srv_analiza_arhiviraj_ime']; echo ': '."\n"; echo '
'; echo '
'; echo $lang['srv_analiza_archive_note'].':'; echo ''; echo '
'; echo '
'; // dostop echo '
'; echo $lang['srv_analiza_archive_access'].':'; echo '
 '.$lang['srv_analiza_archive_access_all']; echo '
 '.$lang['srv_analiza_archive_access_admins']; echo '
 '.$lang['srv_analiza_archive_access_password']; echo '
'.$lang['srv_analiza_archive_access_password_label'].''; echo '
'; echo '
 
'; // trajanje echo '
'; echo $lang['srv_analiza_archive_duration'].':'; echo '
'; echo ' '; echo '
'; echo '
'; echo '
'; echo ''.$lang['srv_analiza_arhiviraj_save'].''."\n"; echo ''.$lang['srv_analiza_arhiviraj_close'].''."\n"; echo '
'; } else { self::DisplayError($CAE); } echo '
'."\n"; // end div_analiza_archive_name } static function SaveArchive($aid,$name,$note,$access,$duration,$access_password) { global $lang, $site_url, $site_path, $global_user_id; $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { if ($name==null || trim($name) == "") { $name = 'Arhiv: '.date("d.m.Y H:i:s"); } if ( $duration == null ) { #če ni časa trajanja ga zgeneriramo $duration = date("Y-m-d");// current date $duration = strtotime(date("Y-m-d", strtotime($duration)) . DEFAULT_DURATION); } else { # če je ga pretvorimo v datum $duration = strtotime(date("d.m.Y", strtotime($duration))); } # pripravimo pravilno obliko datuma za insert v bazo $duration = date("Y-m-d",$duration); $updated = sisplet_query("UPDATE srv_analysis_archive SET name= '$name', note='$note', access='$access', duration='$duration', editid='$global_user_id', access_password='$access_password' WHERE id = '$aid'"); echo $updated; } else { echo $CAE; } } /** * * @param $aid * * @return -1 = invalid $aid * @return -2 = file not exist * @return -3 = no access * @return -4 = invalid profile id * @return -5 = no access, pass needed */ static function CheckArchiveExistance($aid) { global $site_path; if ($aid < 1 || $aid == null || trim($aid) == "") { # invalid $aid return -1; } #podtki profila $s = sisplet_query("SELECT filename, access FROM srv_analysis_archive WHERE id='".$aid."' AND sid='".self::$sid."'"); if ($_GET['debug'] == 1) { print_r("SELECT * FROM srv_analysis_archive WHERE id='".$aid."' AND sid='".self::$sid."'"); } if (mysqli_num_rows($s)) { $row = mysqli_fetch_assoc($s); # najprej preverimo obstoj datoteke $filename = $site_path . 'admin/survey/'.SAA_FOLDER.'/'.$row['filename']; if (file_exists($filename)) { #preverimo dostop if ($row['access'] == '0') { return true; } else { # preverimo ali ima trenuten uid dostop do ankete if (self::CheckArchiveAccess()) { return true; } #dostop z geslom elseif($row['access'] == '2'){ if(isset($_SESSION['archive_access'][$aid]) && $_SESSION['archive_access'][$aid] == '1') #uporabnik je vpisal pravileno geslo return true; else #uporabnik nima dostopa, za dostop vpogleda je potrebno geslo return -5; } else { # uporabnik nima dostopa return -3; } } } else { # return -2 => file not exist # pobrišemo morebiten zapis iz baze $sqlDelete = sisplet_query("DELETE FROM srv_analysis_archive WHERE id='".$aid."' AND sid='".self::$sid."'"); return -2; } } else { #invalid profile ID; return -4; } } static function CheckArchiveAccess($uid=null) { global $global_user_id, $admin_type; if ($uid == null) { $uid = $global_user_id; } #podtki dostopa $a = sisplet_query("SELECT ank_id, uid FROM srv_dostop WHERE ank_id = '".self::$sid."' AND uid='".$uid."'"); if (mysqli_num_rows($a) || $admin_type === '0') { return true; } else { return false; } } static function ViewArchive($aid) { global $site_path, $global_user_id, $lang, $site_url; // nastavimo jezik if (self::$sid > 0) { $sql = sisplet_query("SELECT lang_admin FROM srv_anketa WHERE id = '".self::$sid."'"); $row = mysqli_fetch_array($sql); $lang_admin = $row['lang_admin']; } else { $sql = sisplet_query("SELECT value FROM misc WHERE what = 'SurveyLang_admin'"); $row = mysqli_fetch_array($sql); $lang_admin = $row['value']; } // Naložimo jezikovno datoteko (da se datumin naslov izpiseta v pravem jeziku) $file = '../../lang/'.$lang_admin.'.php'; include($file); $_SESSION['langX'] = $site_url .'lang/'.$lang_admin.'.php'; header('Cache-Control: no-cache'); header('Pragma: no-cache'); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''.$row['value'].''."\n"; echo ''."\n"; echo ''; if ($_GET['mode'] != 'old') { echo ''."\n"; } else { echo ''."\n"; } echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; #polovimo podatke ankete SurveyInfo::getInstance()->SurveyInit(self::$sid); $naslov = SurveyInfo::getInstance()->getSurveyColumn('akronim'); if ($naslov == null || trim($naslov) == '') { $naslov = SurveyInfo::getInstance()->getSurveyColumn('naslov'); } # podatki arhiva $s = sisplet_query("SELECT filename, date, type FROM srv_analysis_archive WHERE id='".$aid."'"); $row = mysqli_fetch_assoc($s); $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { $folder = $site_path . 'admin/survey/'.SAA_FOLDER.'/'; $fh = fopen($folder.$row['filename'], 'r'); $theData = fread($fh, filesize($folder.$row['filename'])); fclose($fh); $in = array('\"', "\'"); $out = array('"', "'",); $theData = str_replace($in, $out, $theData); // Zaradi kompatibilnosti za nazaj -> ko se se ni naslov in datum shranjeval v file if(substr($theData, 0, 24) != '
'){ echo '
'."\n"; echo '
'; echo $lang['srv_analiza_archive_date_created']; $datetime = strtotime($row['date']); echo date("d.m.Y",$datetime); echo '
'; echo '

'.$naslov.'

'; echo '

'.$lang['srv_analiza_archive_title'].$lang['srv_analiza_arhiviraj_type_'.$row['type']].'

'; } echo $theData; } else { // Zaradi kompatibilnosti za nazaj -> ko se se ni naslov in datum shranjeval v file if(substr(0, 25, $theData) != '
'){ echo '
'."\n"; echo '
'; echo $lang['srv_analiza_archive_date_created']; $datetime = strtotime($row['date']); echo date("d.m.Y",$datetime); echo '
'; } //to access, password is needed if($CAE == -5){ // form for access with password self::DisplayAccessPassword($aid); } //no access/other error else{ // Izpišemo error self::DisplayError($CAE,false); } } #izpišemo še zaključek html echo '
'."\n"; echo ''."\n"; echo ''; } static function DisplayError($CAE, $showButton=true) { global $lang; echo '
'; echo $lang['srv_analiza_arhiviraj_error_'.$CAE]; echo '
'; if ($showButton) { echo ''.$lang['srv_analiza_arhiviraj_close'].''."\n"; echo '
'; } } /** * Display from for password to access archive * @global type $lang * @param type $aid - archive id */ static function DisplayAccessPassword($aid) { global $lang, $site_url; echo '
'; echo '' . $lang['srv_analiza_archive_access'] . ''; echo '
'; //echo ''; //user insertet wrong password if(isset($_SESSION['archive_access'][$aid]) && $_SESSION['archive_access'][$aid] == '0') echo '' . $lang['srv_analiza_archive_access_wrong_pass'] . '
'; echo '
'.$lang['srv_analiza_archive_access_password_label'].': '; echo '

'; echo '

'; echo '
'; } /** * Check if archive access password matches * @return boolean */ static function CheckArchiveAccessPass() { $sql = sisplet_query("SELECT access_password AS pass FROM srv_analysis_archive WHERE id = '".$_POST['archive_id']."'"); if($sql){ $row = mysqli_fetch_array($sql); if($row['pass'] == $_POST['archive_access_pass']) return true; else return false; } return false; } static function AskDeleteArchive($aid) { global $lang; echo '
'."\n"; $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { echo '

Ali ste prepričani?

'; echo ''.$lang['srv_analiza_arhiviraj_delete'].''."\n"; echo ''.$lang['srv_analiza_arhiviraj_cancle'].''."\n"; echo '
'; } else { #izpišemo error self::DisplayError($CAE,true); } echo '
'."\n"; // end: div_analiza_archive_name } static function DoDeleteArchive($aid) { global $site_path; $CAE = self::CheckArchiveExistance($aid); if ( $CAE > 0) { $sqlSelect = sisplet_query("SELECT filename FROM srv_analysis_archive WHERE id='".$aid."' AND sid='".self::$sid."'"); $rowSelect = mysqli_fetch_assoc($sqlSelect); #izbrišemo datoteko $filename = $site_path . 'admin/survey/'.SAA_FOLDER.'/'.$rowSelect['filename']; unlink($filename); #izbrišemo zapis iz baze $sqlDelete = sisplet_query("DELETE FROM srv_analysis_archive WHERE id='".$aid."' AND sid='".self::$sid."'"); return 1; } else { #vrnemo error return $CAE; } } static function archiveCrosstabBeforeEmail() { global $site_path, $site_url, $global_user_id, $lang; $ArchiveTypes = array(M_ANALIZA_SUMS => 0, M_ANALIZA_DESCRIPTOR=>1, M_ANALIZA_FREQUENCY=>2, M_ANALIZA_CROSSTAB=>3, M_ANALYSIS_MEANS=>4, M_ANALYSIS_TTEST=>5, M_ANALYSIS_BREAK=>6, M_ANALYSIS_CHARTS=>7, M_ANALYSIS_CREPORT=>8); if (isset($_POST['podstran'])) { $type = $ArchiveTypes[$_POST['podstran']]; } $content = $_POST['content']; if (isset($content) && trim($content) != null) { #ime zgeneriramo $name = 'Arhiv: '.date("d.m.Y H:i:s"); $access = 0; $folder = $site_path . 'admin/survey/'.SAA_FOLDER.'/'; $filename = 'saa_'.self::$sid.'_'.time().'.txt'; #če ni časa trajanja ga zgeneriramo $duration = date("Y-m-d");// current date $duration = strtotime(date("Y-m-d", strtotime($duration)) . DEFAULT_DURATION); # pripravimo pravilno obliko datuma za insert v bazo $duration = date("Y-m-d",$duration); #dodamo zapis o arhivu v bazo $s = sisplet_query("INSERT INTO srv_analysis_archive (sid, uid, name, filename, date, note, access, type, duration, editid) " ."VALUES ('".self::$sid."', '$global_user_id', '$name', '$filename', NOW(), '', '$access', '$type', '$duration', '$global_user_id')"); $id = mysqli_insert_id($GLOBALS['connect_db']); // Na zacetek dodamo glavo -> po novem se shrani v file SurveyInfo::getInstance()->SurveyInit(self::$sid); $naslov = SurveyInfo::getInstance()->getSurveyColumn('akronim'); if ($naslov == null || trim($naslov) == '') { $naslov = SurveyInfo::getInstance()->getSurveyColumn('naslov'); } $text = '
' .$lang['srv_analiza_archive_date_created'] .date("d.m.Y") .'

'.$naslov.'

'; $text .= '

'.$lang['srv_analiza_archive_title'].$lang['srv_analiza_arhiviraj_type_'.$type].'

'; $content = $text.$content; if ($id > 0) { # če smo dodali zapis v bazo shranimo še datoteko # zapišemo fajl na disk $fh = fopen($folder.$filename, 'w') or die("can't open file"); fwrite($fh, $content); fclose($fh); echo $id; return $id; } else { echo 0; return 0; } } else { echo '-1'; return '-1'; } } static function createArchiveBeforeEmail() { global $site_path, $site_url, $global_user_id, $lang; $ArchiveTypes = array(M_ANALIZA_SUMS => 0, M_ANALIZA_DESCRIPTOR=>1, M_ANALIZA_FREQUENCY=>2, M_ANALIZA_CROSSTAB=>3, M_ANALYSIS_MEANS=>4, M_ANALYSIS_TTEST=>5, M_ANALYSIS_BREAK=>6, M_ANALYSIS_CHARTS=>7, M_ANALYSIS_CREPORT=>8); if (isset($_POST['podstran'])) { $type = $ArchiveTypes[$_POST['podstran']]; } SurveyAnalysis::Init(self::$sid); SurveyAnalysis::setUpReturnAsHtml(true); if($_POST['podstran'] == 'charts'){ # kreiramo arhiv za grafe $SC = new SurveyChart(); $SC->Init(self::$sid); $SC->setUpReturnAsHtml(true); $chartTime = $SC->setUpIsForArchive(true); $content = $SC->display(); $settings = array( 'chartTime' => $chartTime); } elseif($_POST['podstran'] == 'analysis_creport'){ #kreiramo arhiv za creport $SCR = new SurveyCustomReport(self::$sid); $SCR->setUpReturnAsHtml(true); $SCR->setUpIsForArchive(true); $content = $SCR->displayReport(); } else{ if (isset($_POST['content']) && trim($_POST['content']) != '') { $content = $_POST['content']; } else { $content = SurveyAnalysis::Display(); } } if (isset($content) && trim($content) != null) { #ime zgeneriramo $name = 'Arhiv: '.date("d.m.Y H:i:s"); $access = 0; $folder = $site_path . 'admin/survey/'.SAA_FOLDER.'/'; $filename = 'saa_'.self::$sid.'_'.time().'.txt'; #če ni časa trajanja ga zgeneriramo $duration = date("Y-m-d");// current date $duration = strtotime(date("Y-m-d", strtotime($duration)) . DEFAULT_DURATION); # pripravimo pravilno obliko datuma za insert v bazo $duration = date("Y-m-d",$duration); #dodamo zapis o arhivu v bazo $s = sisplet_query("INSERT INTO srv_analysis_archive (sid, uid, name, filename, date, note, access, type, duration, editid) " ."VALUES ('".self::$sid."', '$global_user_id', '$name', '$filename', NOW(), '', '$access', '$type', '$duration', '$global_user_id')"); $id = mysqli_insert_id($GLOBALS['connect_db']); // Na zacetek dodamo glavo -> po novem se shrani v file SurveyInfo::getInstance()->SurveyInit(self::$sid); $naslov = SurveyInfo::getInstance()->getSurveyColumn('akronim'); if ($naslov == null || trim($naslov) == '') { $naslov = SurveyInfo::getInstance()->getSurveyColumn('naslov'); } $text = '
'; SurveySetting::getInstance()->Init(self::$sid); $survey_hide_title = SurveySetting::getInstance()->getSurveyMiscSetting('survey_hide_title'); // Ce ne prikazujemo naslova ankete to skrijemo if($survey_hide_title == 0){ $text .= '
' .$lang['srv_analiza_archive_date_created'] .date("d.m.Y") .'

'.$naslov.'

'; } // Porocilo po meri ima custom naslov $text .= ($survey_hide_title == 1) ? '

' : '

'; if($type == 8){ $SCR = new SurveyCustomReport(self::$sid); $creport_title = $SCR->getTitle(); $text .= $creport_title; } else{ $text .= $lang['srv_analiza_archive_title'].$lang['srv_analiza_arhiviraj_type_'.$type]; } $text .= ($survey_hide_title == 1) ? '

' : ''; $content = $text.$content; if ($id > 0) { # če smo dodali zapis v bazo shranimo še datoteko # zapišemo fajl na disk $fh = fopen($folder.$filename, 'w') or die("can't open file"); fwrite($fh, $content); fclose($fh); echo $id; return $id; } else { echo 0; return 0; } } else { echo '-1'; return '-1'; } } /** zgenerira html iz analize in ga shrani kot arhiv. * */ static function createArchiveFromAnaliza() { $content = null; if($_POST['podstran'] == 'charts'){ # kreiramo arhiv za grafe $SC = new SurveyChart(); $SC->Init(self::$sid); $SC->setUpReturnAsHtml(true); $chartTime = $SC->setUpIsForArchive(true); $content = $SC->display(); $settings = array( 'chartTime' => $chartTime); } elseif($_POST['podstran'] == 'analysis_creport'){ #kreiramo arhiv za creport $SCR = new SurveyCustomReport(self::$sid); $SCR->setUpReturnAsHtml(true); $SCR->setUpIsForArchive(true); $content = $SCR->displayReport(); } else{ if ($_POST['podstran'] == 'anal_arch') { $_POST['podstran'] = 'sumarnik'; } if (!isset($_POST['content'])) { SurveyAnalysis::Init(self::$sid); SurveyAnalysis::setUpIsForArchive(true); SurveyAnalysis::setUpReturnAsHtml(true); $content = SurveyAnalysis::Display(); } else { $content = $_POST['content']; } } $name = (isset($_POST['name']) && trim($_POST['name'])) ? trim($_POST['name']) : null; $note = (isset($_POST['note']) && trim($_POST['note'])) ? trim($_POST['note']) : null; $access = (isset($_POST['access']) && trim($_POST['access'])) ? trim($_POST['access']) : 0; $access_password = (isset($_POST['access_password']) && trim($_POST['access_password'])) ? trim($_POST['access_password']) : null; $duration = (isset($_POST['duration']) && trim($_POST['duration'])) ? trim($_POST['duration']) : null; $durationType = (isset($_POST['durationType']) && trim($_POST['durationType'])) ? trim($_POST['durationType']) : 0; $ArchiveTypes = array(M_ANALIZA_SUMS => 0, M_ANALIZA_DESCRIPTOR=>1, M_ANALIZA_FREQUENCY=>2, M_ANALIZA_CROSSTAB=>3, M_ANALYSIS_MEANS=>4, M_ANALYSIS_TTEST=>5, M_ANALYSIS_BREAK=>6, M_ANALYSIS_CHARTS=>7, M_ANALYSIS_CREPORT=>8); if (isset($_POST['podstran'])) $type = $ArchiveTypes[$_POST['podstran']]; if (isset($content) && trim($content) != null && self::$sid > 0) { SurveyAnalysisArchive :: Init(self::$sid); SurveyAnalysisArchive :: CreateArchive($content,$name,$note,$access,$type,$duration,$durationType,$settings,$access_password); } else { echo 'Error! (SurveyAnalysisArchive :: CreateArchive)'; } } } ?>