1KA_F2F/utils/ParadataExport/1ka_paradata_export_anketa.php

298 lines
9.5 KiB
PHP
Raw Normal View History

2020-08-14 13:36:36 +02:00
<?php
/**
* Izvozimo CSV datoteko z anketami
*
* za vse paradata izvoze izvazamo iz tabel:
* srv_anketa
* srv_grupa
* srv_spremenljivka
* srv_grid
* srv_grid_multiple
* srv_vrednost
*
* srv_user
* srv_password
* srv_invitations_recipients
* srv_user_grupa
* srv_user_grupa_active
*
* srv_data_vrednost
* srv_data_vrednost_active
* srv_data_text
* srv_data_text_active
* srv_data_textgrid
* srv_data_textgrid_active
* srv_data_checkgrid
* srv_data_checkgrid_active
* srv_data_grid
* srv_data_grid_active
* srv_data_rating
*
*/
$handle = fopen($site_path."utils/ParadataExport/data/paradata_anketa.csv", "a");
$header = array(
'anketa_id',
'naslov',
'jezik',
'ustvarjena',
'st. strani',
'st. vprasanj',
'st. spremenljivk',
//'predvideno trajanje',
'st. mehkih opomnikov',
'st. trdih opomnikov',
'geslo',
'st. poslanih vabil',
'prvi_vnos',
'zadnji_vnos',
'VSI',
'status 6',
'status 5',
'status 6l',
'status 5l',
'status 4',
'status 3',
'status 2',
'status 1',
'status 0',
'status -1'
);
// Zapisemo header
fputcsv($handle, $header, ';');
// Izvoz za vse ankete med podanimi id-ji
/*$start = (isset($_GET['start']) && $_GET['start'] > 0) ? $_GET['start'] : '1';
$stop = (isset($_GET['stop']) && $_GET['stop'] > 0) ? $_GET['stop'] : '100';
$sql = sisplet_query("SELECT id, naslov, email FROM srv_anketa WHERE id BETWEEN '".$start."' AND '".$stop."'");*/
// Naknaden izvoz samo za specificne ankete
$sql = sisplet_query("SELECT id, naslov FROM srv_anketa WHERE id IN (".$survey_list_string.")");
if (!$sql) { echo mysqli_error($GLOBALS['connect_db']); die(); }
while($row = mysqli_fetch_array($sql)){
SurveyInfo :: getInstance()->SurveyInit($row['id']);
$data = array();
// ID
$data[] = $row['id'];
// NASLOV
$data[] = $row['naslov'];
// JEZIK
$data[] = SurveyInfo::getRespondentLanguage();
// DATUM USTVARJANJA
if (SurveyInfo::getSurveyInsertDate() && SurveyInfo::getSurveyInsertDate() != "00.00.0000")
$data[] = date('j.n.y',strtotime(SurveyInfo::getSurveyInsertDate()));
else
$data[] = '00.00.0000';
$pagesCount = 0;
$vprasanjeCount = 0;
$var_count = 0;
$hard_reminder = 0;
$soft_reminder = 0;
$sqlG = sisplet_query("SELECT id FROM srv_grupa WHERE ank_id='".$row['id']."'");
while($rowG = mysqli_fetch_array($sqlG)){
$pagesCount++;
$sqlS = sisplet_query("SELECT id, gru_id, tip, size, reminder FROM srv_spremenljivka WHERE gru_id='".$rowG['id']."'");
while($rowS = mysqli_fetch_array($sqlS)){
$vprasanjeCount++;
if($rowS['reminder'] == 1)
$soft_reminder++;
elseif($rowS['reminder'] == 2)
$hard_reminder++;
// STEVILO SPREMENLJIVK
switch($rowS['tip']){
case 1: // radio
case 3: // dropdown
$var_count++;
$sqlV = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id='".$rowS['id']."' AND other='1'");
if(mysqli_num_rows($sqlV) > 0)
$var_count++; // za text polje
break;
case 2: // checkbox
case 6: // multigrid
case 18: // vsota
case 17: // ranking
case 21: // text*
$sqlV = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id='".$rowS['id']."'");
while ($rowV = mysqli_fetch_array($sqlV)){
$var_count++; // za vsako variablo
if ($rowV['other'] == 1) {
$var_count++; // za text polje (polj edrugo še ima tekstovni vnos
}
}
break;
case 4: // text
case 8: // datum
case 7: // number
case 22:// compute
$var_count++;
if ( $rowS['tip'] == 7 && $rowS['size'] != 1 ) {
$var_count++;
}
break;
case 16: // multicheckbox
case 19: // multitext
case 20: // multinumber
$var_count++; // za sam header
$sqlV = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id='".$rowS['id']."'");
//gridi s katerimi sestavljamo header (vrstica_grid)
while ( $rowV = mysqli_fetch_array($sqlV) ) {
//loop cez gride znotraj ene vrstice - ponovimo za vsako vrstico
$sqlGrid = sisplet_query("SELECT id FROM srv_grid WHERE spr_id='".$rowS['id']."'");
while ( $rowGrid = mysqli_fetch_array($sqlGrid) ) {
$var_count++;
}
if ($rowV['other'] == 1) {
$var_count++;
}
}
break;
}
}
}
// STEVILO STRANI
$data[] = $pagesCount;
// STEVILO VPRASANJ
$data[] = $vprasanjeCount;
// STEVILO SPREMENLJIVK
$data[] = $var_count;
// PREDVIDENO TRAJANJE
/*$sas = new SurveyAdminSettings($action=0, $anketa=$row['id']);
$dejanski_cas = ($sas->testiranje_cas(1) == null) ? '-' : $sas->testiranje_cas(1);
$data[] = $dejanski_cas;*/
// STEVILO MEHKIH OP.
$data[] = $soft_reminder;
// STEVILO TRDIH OP.
$data[] = $hard_reminder;
// OMEJEN DOSTOP (geslo)
$sqlp = sisplet_query("SELECT * FROM srv_password WHERE ank_id='".$row['id']."'");
if (mysqli_num_rows($sqlp) > 0)
$data[] = 'Da';
else
$data[] = 'Ne';
// ST. POSLANIH VABIL
$invitations = 0;
$sqlI = sisplet_query("SELECT count(id) FROM srv_invitations_recipients WHERE ank_id='".$row['id']."' AND sent='1'");
$rowI = mysqli_fetch_array($sqlI);
if($rowI['count(id)'] > 0)
$invitations = $rowI['count(id)'];
$data[] = $invitations;
// VNOSI - pvi / zadnji vnos
$prvi_vnos_date = SurveyInfo::getSurveyFirstEntryDate();
if ($prvi_vnos_date != null)
$data[] = date('j.n.y',strtotime($prvi_vnos_date));
else
$data[] = '00.00.0000';
$zadnji_vnos_date = SurveyInfo::getSurveyLastEntryDate();
if ($zadnji_vnos_date != null)
$data[] = date('j.n.y',strtotime($zadnji_vnos_date));
else
$data[] = '00.00.0000';
// VSI
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' ");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS 6
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='6' AND lurker='0'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS 5
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='5' AND lurker='0'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS 6l
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='6' AND lurker='1'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS 5l
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='5' AND lurker='1'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS 4
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='4'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS 3
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='3'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS 2
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='2'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS 1
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='1'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS 0
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='0'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// STATUS -1
$qry_all_users = sisplet_query("SELECT count(u.id) AS user_count FROM srv_user AS u " . "WHERE u.ank_id = '".$row['id']."' AND preview = '0' AND deleted='0' AND last_status='-1'");
$row_all_users = mysqli_fetch_assoc($qry_all_users);
$allUserCount = $row_all_users['user_count']>0 ? $row_all_users['user_count'] : 0;
$data[] = $allUserCount;
// Zapisemo vrstico
fputcsv($handle, $data, ';');
}
// Zapremo csv
fclose($handle);
?>