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 '
';
}
else {
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 .= '
' : '';
$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 '
';
$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 .= '