Prilagoditev za F2F, ostalo:

Dopolnjena opomba k nastavitvi kodne tabele za SQL.

De-1KAizacija:
    Ukinjenih nekaj info@1ka.si emailov, odstranjenih nekaj testnih petrovih nastavitev.

    Tudi lastna instalacija ima pravico do obvestil o grdem početju (phishing ipd).
    GDPR na 1KA pošljemo samo, če NI lastna instalacija.

Dopolnitve za fieldwork delo:
    - 1ka data izvoz
    - grupa glede na kodo in ne le kuki
        Tako lahko anketar nadaljuje z anketiranjem istega respondenta z vnosom
        iste kode. Prej se je grupa nastavljala le glede na kuki, kar je bilo neuporabno
        za fieldwork.
    - skok na isto, ne naslednjo stran na koncu
        PREJ: izpolnil si 1, 2, 3 in zaprl na 3. strani. 3. stran se ni shranila,
              ker nisi dal NEXT. NAslednjič ko si odprl isti link, ki nadaljeval
              na *naslednji* strani (4.)

              Tako si imel podatke za 1.; 2.; 4.,... stran.
        ZDAJ: izpolniš 1, 2, 3, zapreš. 3. stran se seveda ni shranila, ker si zaprl.
              Ko ponovno odpreš anketo, te vrže na ISTO ZADNJO stran - torej tretjo.

    - možen lokalni dump podatkov iz crontaba (zaščiteno s kodo)
    - settings.php ima dodano nastavitev kode za dump podatkov. Tega ni smiselno
      dati v nastavitve, ker se mora poklicati iz cron joba na SERVERJU, tako da
      mora itak štaufat admin, ki pripravljal laptop.

    Skripte za terensko združevanje so ločen modul in jih bi porinil v ločenem
    patchu.

    POZOR, preveriti je treba še BodyController (ali je bil ugly hack za narobe
    nastavljeno anketo, ali je bilo kaj drugega). Avtomatsko je namreč disablalo
    popravljanje ankete anketarjem!
This commit is contained in:
May Doušak 2022-11-11 14:41:51 +01:00
parent 3e99fccc94
commit 79fc5b7b02
26 changed files with 344 additions and 94 deletions

3
.gitignore vendored
View File

@ -51,4 +51,5 @@ docker
/.favorites.json /.favorites.json
main/survey/skins/1045_test.css main/survey/skins/1045_test.css
/d /d
/nbproject

View File

@ -67,6 +67,7 @@ define("A_IZVOZI", "izvozi");
define("M_IZVOZI_EXCEL", "excel"); define("M_IZVOZI_EXCEL", "excel");
define("M_IZVOZI_SPSS", "spss"); define("M_IZVOZI_SPSS", "spss");
define("M_IZVOZI_txt", "txt"); define("M_IZVOZI_txt", "txt");
define("M_IZVOZI_1ka", "1ka");
define("A_REPORT_VPRASALNIK_PDF", "vprasalnik_pdf"); define("A_REPORT_VPRASALNIK_PDF", "vprasalnik_pdf");
define("A_REPORT_VPRASALNIK_RTF", "vprasalnik_rtf"); define("A_REPORT_VPRASALNIK_RTF", "vprasalnik_rtf");
@ -3119,6 +3120,12 @@ class SurveyAdmin
echo '<a href="index.php?anketa=' . $this->anketa . '&a=' . A_COLLECT_DATA_EXPORT . '&m=' . M_EXPORT_TXT . '" title="' . $lang['srv_lnk_txt'] . '"><span>' . $lang['srv_lnk_txt'] . '</span></a></li> '; echo '<a href="index.php?anketa=' . $this->anketa . '&a=' . A_COLLECT_DATA_EXPORT . '&m=' . M_EXPORT_TXT . '" title="' . $lang['srv_lnk_txt'] . '"><span>' . $lang['srv_lnk_txt'] . '</span></a></li> ';
echo '</ul>'; echo '</ul>';
# 1KA export
echo '<li ' . ($_GET['m'] == M_EXPORT_1KA ? ' class="highlightLineTab"' : ' class="nonhighlight"') . '>';
echo '<a href="index.php?anketa=' . $this->anketa . '&a=' . A_COLLECT_DATA_EXPORT . '&m=' . M_EXPORT_1KA . '" title="' . $lang['srv_lnk_1ka'] . '"><span>' . $lang['srv_lnk_1ka'] . '</span></a></li> ';
echo '</ul>';
} }
function showcalculationsLinks(){ function showcalculationsLinks(){
@ -3355,7 +3362,7 @@ class SurveyAdmin
$user_package = $userAccess->getPackage(); // paket, ki ga ima uporabnik (1, 2 , 3) $user_package = $userAccess->getPackage(); // paket, ki ga ima uporabnik (1, 2 , 3)
$dostop_styling = ""; $dostop_styling = "";
if ($user_package != "") if ($user_package != "-1" && $user_package != "")
$dostop_styling = "dostop_".$user_package."ka"; $dostop_styling = "dostop_".$user_package."ka";
echo '<span class="menu_left-title '.$dostop_styling.'">' . $lang['srv_moduli'] . '</span>'; echo '<span class="menu_left-title '.$dostop_styling.'">' . $lang['srv_moduli'] . '</span>';
@ -4481,7 +4488,8 @@ class SurveyAdmin
echo '<a href="index.php?anketa=' . $this->anketa . '&a=export&m=spss" class="srv_ico '.(!$userAccess->checkUserAccess('data_export') ? 'user_access_locked' : '').'" user-access="data_export" title="' . $lang['srv_export_spss'] . '"><span class="hover_export_icon"><span class="basic-icon spss very_large"></span></span>' . $lang['srv_export_hover_spss'] . '</a>'; echo '<a href="index.php?anketa=' . $this->anketa . '&a=export&m=spss" class="srv_ico '.(!$userAccess->checkUserAccess('data_export') ? 'user_access_locked' : '').'" user-access="data_export" title="' . $lang['srv_export_spss'] . '"><span class="hover_export_icon"><span class="basic-icon spss very_large"></span></span>' . $lang['srv_export_hover_spss'] . '</a>';
echo '<a href="index.php?anketa=' . $this->anketa . '&a=export&m=excel_xls" class="srv_ico '.(!$userAccess->checkUserAccess('data_export') ? 'user_access_locked' : '').'" user-access="data_export" title="' . $lang['srv_export_excel'] . '"><span class="hover_export_icon"><span class="faicon xls black very_large"></span></span>' . $lang['srv_export_hover_xls'] . '</a>'; echo '<a href="index.php?anketa=' . $this->anketa . '&a=export&m=excel_xls" class="srv_ico '.(!$userAccess->checkUserAccess('data_export') ? 'user_access_locked' : '').'" user-access="data_export" title="' . $lang['srv_export_excel'] . '"><span class="hover_export_icon"><span class="faicon xls black very_large"></span></span>' . $lang['srv_export_hover_xls'] . '</a>';
echo '<a href="index.php?anketa=' . $this->anketa . '&a=export&m=txt" class="srv_ico '.(!$userAccess->checkUserAccess('data_export') ? 'user_access_locked' : '').'" user-access="data_export" title="' . $lang['srv_export_txt'] . '"><span class="hover_export_icon"><span class="faicon text_file"></span></span>' . $lang['srv_export_hover_txt'] . '</a>'; echo '<a href="index.php?anketa=' . $this->anketa . '&a=export&m=txt" class="srv_ico '.(!$userAccess->checkUserAccess('data_export') ? 'user_access_locked' : '').'" user-access="data_export" title="' . $lang['srv_export_txt'] . '"><span class="hover_export_icon"><span class="faicon text_file"></span></span>' . $lang['srv_export_hover_txt'] . '</a>';
echo '<a href="index.php?anketa=' . $this->anketa . '&a=export&m=1ka" class="srv_ico '.(!$userAccess->checkUserAccess('data_export') ? 'user_access_locked' : '').'" user-access="data_export" title="' . $lang['srv_export_1ka'] . '"><span class="hover_export_icon"><span class="faicon text_file"></span></span>' . $lang['srv_export_hover_1ka'] . '</a>';
// poseben excel izvoz za mfdps // poseben excel izvoz za mfdps
if(SurveyInfo::getInstance()->checkSurveyModule('mfdps')){ if(SurveyInfo::getInstance()->checkSurveyModule('mfdps')){
echo '<a href="index.php?anketa=' . $this->anketa . '&a=export&m=excel_xls_mfdps&n=pred" class="srv_ico" title="' . $lang['srv_export_excel'] . ' MFDPŠ (predmeti)"><span class="hover_export_icon"><span class="faicon xls black very_large"></span></span>MFDPŠ - predmeti</a>'; echo '<a href="index.php?anketa=' . $this->anketa . '&a=export&m=excel_xls_mfdps&n=pred" class="srv_ico" title="' . $lang['srv_export_excel'] . ' MFDPŠ (predmeti)"><span class="hover_export_icon"><span class="faicon xls black very_large"></span></span>MFDPŠ - predmeti</a>';

View File

@ -4459,6 +4459,8 @@ class SurveyAdminSettings {
echo '<form id="export_excel_xls_form" target="_blank" action="ajax.php?t=export&anketa='.$this->anketa.'&a=doexport&m=excel_xls" method="POST">'; echo '<form id="export_excel_xls_form" target="_blank" action="ajax.php?t=export&anketa='.$this->anketa.'&a=doexport&m=excel_xls" method="POST">';
} else if($_GET['m'] == 'txt') { } else if($_GET['m'] == 'txt') {
echo '<form id="export_txt_form" target="_blank" action="ajax.php?t=export&anketa='.$this->anketa.'&a=doexport&m=txt" method="POST">'; echo '<form id="export_txt_form" target="_blank" action="ajax.php?t=export&anketa='.$this->anketa.'&a=doexport&m=txt" method="POST">';
} else if($_GET['m'] == '1ka') {
echo '<form id="export_1ka_form" target="_blank" action="ajax.php?t=export&anketa='.$this->anketa.'&a=doexport&m=1ka" method="POST">';
} else if($_GET['m'] == 'spss') { } else if($_GET['m'] == 'spss') {
echo '<form id="export_spss_form" target="_blank" action="ajax.php?t=export&anketa='.$this->anketa.'&a=doexport&m=spss" method="POST">'; echo '<form id="export_spss_form" target="_blank" action="ajax.php?t=export&anketa='.$this->anketa.'&a=doexport&m=spss" method="POST">';
} else if($_GET['m'] == 'sav') { } else if($_GET['m'] == 'sav') {
@ -4625,6 +4627,17 @@ class SurveyAdminSettings {
echo '</fieldset>'; echo '</fieldset>';
} }
elseif ($_GET['m'] == M_EXPORT_1KA) {
echo '<fieldset><legend>'.$lang['srv_lnk_1ka'].'</legend>';
echo $lang['srv_izvoz_1ka_note'];
echo '<div class="button_holder intext">';
echo '<button class="medium blue" onclick="do1KAExport(); return false;">'.$lang['srv_izvoz_1ka_file'].'</button>';
echo '</div>';
echo '</fieldset>';
}
elseif ($_GET['m'] == 'export_PDF') { elseif ($_GET['m'] == 'export_PDF') {
$pageBreak = isset($_GET['pageBreak']) ? $_GET['pageBreak'] : 0; $pageBreak = isset($_GET['pageBreak']) ? $_GET['pageBreak'] : 0;
@ -10690,4 +10703,4 @@ class SurveyAdminSettings {
echo '</div>'; echo '</div>';
} }
} }
?> ?>

View File

@ -57,9 +57,42 @@ $_SESSION['langX'] = $site_url .'lang/'.$lang_admin.'.php';
$result = sisplet_query ("SELECT value FROM misc WHERE what='SurveyDostop'"); $result = sisplet_query ("SELECT value FROM misc WHERE what='SurveyDostop'");
list ($SurveyDostop) = mysqli_fetch_row ($result); list ($SurveyDostop) = mysqli_fetch_row ($result);
global $data_export_ajax_access;
if ( (( ($admin_type <= $SurveyDostop && $SurveyDostop<3) || ($SurveyDostop==3) ) && ($admin_type>=0)) || $_GET['a']=='comment_manage' ) { if ( (( ($admin_type <= $SurveyDostop && $SurveyDostop<3) || ($SurveyDostop==3) ) && ($admin_type>=0)) || $_GET['a']=='comment_manage' ) {
// ok, bo slo naprej... // ok, bo slo naprej...
} }
/* poseben primer za izvažanje na anketarskih laptopih (klic z wget)
* če imaš v settings.php definirano TO anketo in posebno kodo ter dostopaš iz lokalnega IP
* (server = klient), potem dovoli izvažanje z vnaprej definiranim userjem.
*
* To se izvozi v next/owncloud direktorij, zašifrira, sinhronizira na pravi server - kjer se dešifrira in merga,
* da se na koncu skonvertira v SPSS SAV.
*/
else if (isset ($_REQUEST['t']) && ($_REQUEST['t'] == 'export' || $_REQUEST['a'] == 'data') && // gre za export
isset ($_REQUEST['anketa']) && isset($data_export_ajax_access[$_REQUEST['anketa']]) && // to anketo imamo v special dostopu
isset ($_REQUEST['secret']) && $data_export_ajax_access[$_REQUEST['anketa']][1] == $_REQUEST['secret'] && // koda je enaka, pravilna
($_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR'] || $_SERVER['REMOTE_ADDR']=='127.0.0.1'))
{
$global_user_id = $data_export_ajax_access[$_REQUEST['anketa']][0];
$admin_type = 0;
Common::deletePreviewData($anketa);
// naj še fizično izbriše z diska!!!
$SDF = SurveyDataFile::get_instance();
$SDF->init($anketa);
$SDF->prepareFiles();
$SDS = new SurveyDataDisplay($anketa);
}
else { else {
header ('location: ' .$site_url .'admin/survey/index.php'); header ('location: ' .$site_url .'admin/survey/index.php');
die(); die();

View File

@ -94,19 +94,13 @@ function executePOST(){
//$params .= '&ank_id='.$ank_id; // ostali parametri potrebni za klic funkcije (id ankete, vprašanja...) //$params .= '&ank_id='.$ank_id; // ostali parametri potrebni za klic funkcije (id ankete, vprašanja...)
// POST data // POST data
// primer, sestavi po svoje.
$post_data = array( $post_data = array(
"email" => "peter@1ka.si", "email" => "...",
"firstname" => "Peter", "firstname" => "...",
"lastname" => "Hrvatin" "lastname" => "..."
); );
/*$post_data = array(
"email" => "BRATISLAVA.LAMAC@PLANEOELEKTRO.SK",
"firstname" => "MONIKA",
"lastname" => "ŽIAKOVÁ",
"expired" => "7",
"param_string" => "rekid=5406729&dnid=10352449&brand=MORA&ser=Žiak Pavel Žiak - GOREMO (Víglaš)&serenota=Pavel Žiak - GOREMO&sercenter=SC Slovakia&drzava=Slovakia"
);*/
$post_data = array( $post_data = array(
"naslov_vprasalnika" => "naslovovoovvo", "naslov_vprasalnika" => "naslovovoovvo",
@ -144,4 +138,4 @@ function executePOST(){
return $result; return $result;
} }

View File

@ -1868,12 +1868,13 @@ class GDPR{
$signature = Common::getEmailSignature(); $signature = Common::getEmailSignature();
$content .= $signature; $content .= $signature;
} }
// Posljemo mail avtorju ankete in na help@1ka.si za obvestilo adminu // Posljemo mail avtorju ankete in na help@1ka.si za obvestilo adminu
try{ try{
$MA = new MailAdapter(); $MA = new MailAdapter();
$MA->addRecipients($survey_data['author_email']); $MA->addRecipients($survey_data['author_email']);
// tole ni ok, a se da v modulu nastaviti kako spremenljivko?
if(Common::checkModule('gorenje')){ if(Common::checkModule('gorenje')){
//$MA->addRecipients('dusan.rutnik@gorenje.com'); //$MA->addRecipients('dusan.rutnik@gorenje.com');
$MA->addRecipients('gdpr@gorenje.com'); $MA->addRecipients('gdpr@gorenje.com');
@ -1881,10 +1882,12 @@ class GDPR{
elseif(AppSettings::getInstance()->getSetting('gdpr_admin_email') !== false){ elseif(AppSettings::getInstance()->getSetting('gdpr_admin_email') !== false){
$MA->addRecipients($gdpr_admin_email); $MA->addRecipients($gdpr_admin_email);
} }
else{ // šele če pri instalaciji ni nič nastavljeno in ni lastna instalacija, gre na 1ka.
// tale gmail bo treba ukiniti prej ali slej (GDPR se pošilja na gmail, WTF?!)
elseif (!isLastnaInstalacija()) {
$MA->addRecipients('help@1ka.si'); $MA->addRecipients('help@1ka.si');
$MA->addRecipients('enklikanketa@gmail.com'); $MA->addRecipients('enklikanketa@gmail.com');
} }
$resultX = $MA->sendMail($content, $subject); $resultX = $MA->sendMail($content, $subject);
} }

View File

@ -217,10 +217,6 @@ class SurveyCheck {
private function sendAlert($alert_type, $count=0){ private function sendAlert($alert_type, $count=0){
global $site_url; global $site_url;
// Alerta ne posljemo na lastnih instalacijah
if(isLastnaInstalacija())
return;
// Dobimo hash ankete // Dobimo hash ankete
$anketa_hash = SurveyInfo::getInstance()->getSurveyColumn('hash'); $anketa_hash = SurveyInfo::getInstance()->getSurveyColumn('hash');
@ -260,10 +256,19 @@ class SurveyCheck {
// Dodamo se link do predogleda // Dodamo se link do predogleda
$content .= '<br><br>Predogled ankete: <a href="'.$site_url.'a/'.$anketa_hash.'&preview=on">'.$site_url.'a/'.$anketa_hash.'&preview=on</a>'; $content .= '<br><br>Predogled ankete: <a href="'.$site_url.'a/'.$anketa_hash.'&preview=on">'.$site_url.'a/'.$anketa_hash.'&preview=on</a>';
try{ if (!isLastnaInstalacija()) {
$prejemnik_obvestila = 'info@1ka.si';
}
elseif(AppSettings::getInstance()->getSetting('gdpr_admin_email') !== false){
$prejemnik_obvestila = AppSettings::getInstance()->getSetting('gdpr_admin_email');
}
else {
return;
}
try {
$MA = new MailAdapter($anketa=null, $type='admin'); $MA = new MailAdapter($anketa=null, $type='admin');
//$MA->addRecipients('peter.hrvatin@gmail.com'); $MA->addRecipients($prejemnik_obvestila);
$MA->addRecipients('info@1ka.si');
$resultX = $MA->sendMail($content, $title); $resultX = $MA->sendMail($content, $title);
} }
catch (Exception $e){ catch (Exception $e){
@ -343,4 +348,4 @@ class SurveyCheck {
} }
} }
?> ?>

View File

@ -832,13 +832,6 @@ class SurveyConditionProfiles
} }
# static function setConditionLabel($pid,$condition_label) {
# if ((int)$pid > 0 ) {
# $updateString = "UPDATE srv_condition_profiles SET condition_label = '" . $condition_label . "' WHERE id = '" . $pid . "'";
# $sqlInsert = sisplet_query($updateString);
# }
# }
static function setConditionError($pid,$condition_error) { static function setConditionError($pid,$condition_error) {
if ((int)$pid > 0 ) { if ((int)$pid > 0 ) {
$updateString = "UPDATE srv_condition_profiles SET condition_error = '" . $condition_error . "' WHERE id = '" . $pid . "'"; $updateString = "UPDATE srv_condition_profiles SET condition_error = '" . $condition_error . "' WHERE id = '" . $pid . "'";
@ -846,47 +839,45 @@ class SurveyConditionProfiles
} }
} }
static function getConditionString($if_id = null) static function getConditionString($if_id = null){
{
global $lang; global $lang;
# $condition_label = self::$profiles[self::$currentProfileId]['condition_label'];
ob_start(); ob_start();
$b = new Branching(self::$sid ); $b = new Branching(self::$sid );
if ($if_id == null || (int)$if_id == 0) if ($if_id == null || (int)$if_id == 0){
{
$if_id = (int)self::$profiles[self :: $currentProfileId]['if_id']; $if_id = (int)self::$profiles[self :: $currentProfileId]['if_id'];
} }
$b->display_if_label($if_id); $b->display_if_label($if_id);
#$condition_label = mysqli_escape_string(ob_get_contents());
$condition_label = ob_get_contents(); $condition_label = ob_get_contents();
ob_end_clean(); ob_end_clean();
if ( $if_id > 0 && $condition_label != '') { if ( $if_id > 0 && $condition_label != '') {
echo '<div id="conditionProfileNote">'; echo '<div id="conditionProfileNote" class="filter_box">';
#if (self::$profiles[self :: $currentProfileId]['type'] == 'inspect') {
# echo '<span class="floatLeft">'.$lang['srv_profile_data_is_filtred_zoom'].'</span>'; echo ' <div class="header">';
#} else {
echo '<span class="floatLeft">'.$lang['srv_profile_data_is_filtred'].'</span>'; echo ' <span class="semi-bold">'.self::$profiles[self :: $currentProfileId]['name'].'</span>';
#}
echo '<span class="floatLeft spaceLeft clr_if"><b>('.self::$profiles[self :: $currentProfileId]['name'].')</b></span>'; echo ' <span class="condition">'.$condition_label.'</span>';
echo '<span class="floatLeft spaceLeft">'.$condition_label.'</span>';
// ali imamo napake v ifu // ali imamo napake v ifu
if ((int)self::$profiles[$if_id]['condition_error'] != 0) { if ((int)self::$profiles[$if_id]['condition_error'] != 0) {
echo '<br>'; echo ' <span class="red semi-bold">'.$lang['srv_profile_condition_has_error'].'</span>';
echo '<span style="border:1px solid #009D91; background-color: #34D0B6; padding:5px; width:auto;"><img src="img_0/error.png" /> '; }
echo '<span class="red strong">'.$lang['srv_profile_condition_has_error'].'</span>';
echo '</span>'; echo ' <div class="icons">';
} echo ' <span class="faicon edit" id="link_condition_edit" title="'.$lang['srv_profile_edit'].'"></span>';
echo '<span class="as_link spaceLeft" id="link_condition_edit">'.$lang['srv_profile_edit'].'</span>'; echo ' <span class="faicon delete" id="link_condition_remove" title="'.$lang['srv_profile_remove'].'"></span>';
echo '<span class="as_link spaceLeft" id="link_condition_remove">'.$lang['srv_profile_remove'].'</span>'; echo ' </div>';
#if (self::$profiles[self :: $currentProfileId]['type'] == 'inspect') {
# echo '<span class="as_link spaceLeft" onclick="window.location=\'index.php?anketa='.self::$sid.'&a=data&m=quick_edit&quick_view=1\'">'.$lang['srv_zoom_link_whoisthis'].'</span>'; echo ' </div>';
#}
echo '</div>'; echo '</div>';
echo '<br class="clr" />';
return true; return true;
} }
@ -1009,4 +1000,4 @@ class SurveyConditionProfiles
return false; return false;
} }
} }
?> ?>

View File

@ -132,7 +132,7 @@ class SurveyExport
case 'sav': case 'sav':
self::exportSav(); self::exportSav();
break; break;
case 'spss': case 'spss':
self::exportSpss(); self::exportSpss();
break; break;
case 'excel': case 'excel':
@ -144,6 +144,9 @@ class SurveyExport
case 'txt': case 'txt':
self::exportText(); self::exportText();
break; break;
case '1ka':
self::export1KA();
break;
} }
} }
@ -154,7 +157,7 @@ class SurveyExport
if ($this->_fileStatus >= 0) { if ($this->_fileStatus >= 0) {
$this->_HEADERS = unserialize(file_get_contents($this->_headFileName)); $this->_HEADERS = unserialize(file_get_contents($this->_headFileName));
$this->exportSettings = array(); $this->exportSettings = array();
foreach ($_SESSION AS $pkey => $pvalue) foreach ($_SESSION AS $pkey => $pvalue)
@ -611,7 +614,7 @@ class SurveyExport
fwrite($file_handler,$output2."\n"); fwrite($file_handler,$output2."\n");
fclose($file_handler); fclose($file_handler);
# sfiltriramo podatke # sfiltriramo podatke
exec ('awk -F'.$this->_QUOTE.STR_DLMT.$this->_QUOTE.' '.$this->_QUOTE.$this->_CURRENT_STATUS_FILTER.' {print $0}'.$this->_QUOTE.' '.$this->_dataFileName.' > '.$this->_dataFileName .'_data1'.TMP_EXT); exec ('awk -F'.$this->_QUOTE.STR_DLMT.$this->_QUOTE.' '.$this->_QUOTE.$this->_CURRENT_STATUS_FILTER.' {print $0}'.$this->_QUOTE.' '.$this->_dataFileName.' > '.$this->_dataFileName .'_data1'.TMP_EXT);
if (IS_WINDOWS) { if (IS_WINDOWS) {
@ -711,6 +714,110 @@ class SurveyExport
exit; exit;
} }
/** naredimo izvoz za txt
*
*/
function export1KA() {
$this->_EXPORT_FULL_META = true;
$this->_EXPORT_HIDDEN_SYSTEM = true;
$this->_SPECIAL_EXPORT = true;
$this->setUpFilter();
global $site_path;
$folder = $site_path . EXPORT_FOLDER.'/';
// če fajl obstaja, ga briši (dodaj)
if ($this->_fileStatus >= 0 && $this->_dataFileName !== null && $this->_dataFileName !== '' && $this->_headFileName !== null && $this->_headFileName !== '') {
#zapišemo v temp file
$file_handler = fopen($this->_dataFileName.'.1ka',"w");
$output1 = '';
$output2 = '';
// array za labele (ce jih izpisujemo)
$display_labels = true;
$labels = array();
# naredimo header row
foreach ($this->_HEADERS AS $spid => $spremenljivka) {
if (isset($this->_SVP_PV[$spid])) {
foreach ($spremenljivka['grids'] AS $gid => $grid) {
foreach ($grid['variables'] AS $vid => $variable ){
// izvozimo KOMPLET VSE
$output1 .= strip_tags($variable['variable']).'|';
$output2 .= strip_tags($variable['naslov']).'|';
}
}
}
// Ce izpisujemo tudi labele
if($display_labels && isset($spremenljivka['spr_id'])){
if(in_array($spremenljivka['tip'], array('1','3','6','16'))){
$sequences = array();
$sequences = explode('_', $spremenljivka['sequences']);
$vars = $this->getVariableLabels($spremenljivka['spr_id']);
foreach($sequences as $sequence){
$labels[$sequence] = $vars;
}
}
}
}
fwrite($file_handler,$output1."\n");
fwrite($file_handler,$output2."\n");
fclose($file_handler);
# izvedemo download
$out_file = fopen($this->_dataFileName .'.1ka',"a");
if ($fd = fopen ($this->_dataFileName, "r")) {
while(($line = fgets($fd)) !== false) {
fwrite($out_file, $line);
}
}
else {
echo "Napaka";
}
fclose ($fd);
fclose ($out_file);
if ($fd = fopen ($this->_dataFileName.'.1ka', "r")) {
ob_clean();
$fsize = filesize($this->_dataFileName.'.1ka');
$path_parts = pathinfo($this->_dataFileName.'.1ka');
$ext = strtolower($path_parts["extension"]);
header('Content-type: text/plain; charset='.$convertTypes[$convertType]['charSet']);
header('Content-Disposition: attachment; filename="anketa'.$this->sid.'-'.date('Y-m-d').'.txt"');
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Transfer-Encoding:­ binary');
ob_flush();
while(($line = fgets($fd)) !== false) {
echo $line;
}
fclose ($fd);
}
}
else {
echo '';
}
unlink ($this->_dataFileName.'.1ka');
exit;
}
// shranim SPS in A00, potem pokličem spss in je. // shranim SPS in A00, potem pokličem spss in je.
private function exportSav () { private function exportSav () {
@ -1450,4 +1557,4 @@ class SurveyExport
return $response; return $response;
} }
} }
?> ?>

View File

@ -698,8 +698,11 @@ class SurveyInspect {
function getConditionString() { function getConditionString() {
global $lang; global $lang;
global $site_url;
#preverimi ali imamo nastavljen pogoj za inspect #preverimi ali imamo nastavljen pogoj za inspect
$if_id = (int)SurveyUserSetting :: getInstance()->getSettings('inspect_if_id'); $if_id = (int)SurveyUserSetting :: getInstance()->getSettings('inspect_if_id');
if ($if_id > 0) { if ($if_id > 0) {
ob_start(); ob_start();
$b = new Branching($this->sid); $b = new Branching($this->sid);
@ -724,7 +727,8 @@ class SurveyInspect {
# } # }
# #
session_start(); session_start();
global $site_url;
if (isset($_SESSION['inspectFromPodstran'][$this->sid])) { if (isset($_SESSION['inspectFromPodstran'][$this->sid])) {
$inspect_comeFrom = '\''.$site_url.'admin/survey/index.php?anketa='.$this->sid.'&a=analysis&m='.$_SESSION['inspectFromPodstran'][$this->sid].'\''; $inspect_comeFrom = '\''.$site_url.'admin/survey/index.php?anketa='.$this->sid.'&a=analysis&m='.$_SESSION['inspectFromPodstran'][$this->sid].'\'';
unset($_SESSION['inspectFromPodstran'][$this->sid]); unset($_SESSION['inspectFromPodstran'][$this->sid]);
@ -739,6 +743,7 @@ class SurveyInspect {
echo '<span class="as_link spaceLeft" onclick="inspectRemoveCondition('.$inspect_comeFrom.');">'.$lang['srv_profile_remove'].'</span>'; echo '<span class="as_link spaceLeft" onclick="inspectRemoveCondition('.$inspect_comeFrom.');">'.$lang['srv_profile_remove'].'</span>';
echo '</div>'; echo '</div>';
echo '<br class="clr" />'; echo '<br class="clr" />';
return true; return true;
} }
} }
@ -792,4 +797,4 @@ class SurveyInspect {
} }
return $vars; return $vars;
} }
} }

View File

@ -696,7 +696,9 @@ class SurveyTimeProfiles {
*/ */
static function printIsDefaultProfile() { static function printIsDefaultProfile() {
global $lang; global $lang;
if (self::$currentProfileId != 0) { if (self::$currentProfileId != 0) {
$cp_data = self::GetCurentProfileData(); $cp_data = self::GetCurentProfileData();
echo '<div id="timeProfileDafaultNote">'; echo '<div id="timeProfileDafaultNote">';
@ -741,4 +743,4 @@ class SurveyTimeProfiles {
return false; return false;
} }
} }
?> ?>

View File

@ -520,6 +520,7 @@ class SurveyZoom
if (is_countable($vars) && count($vars) > 0) { if (is_countable($vars) && count($vars) > 0) {
$conditions = self::$profiles[self::$currentProfileId]['conditions']; $conditions = self::$profiles[self::$currentProfileId]['conditions'];
if ($showDiv == true) { if ($showDiv == true) {
echo '<div id="div_zoom_condition" '.(self::$showVariables == false ? ' style="display:none"' : '').'>'; echo '<div id="div_zoom_condition" '.(self::$showVariables == false ? ' style="display:none"' : '').'>';
} }
@ -557,6 +558,7 @@ class SurveyZoom
} else { } else {
$row = Cache::srv_spremenljivka($spr); $row = Cache::srv_spremenljivka($spr);
} }
echo '<li id="zoom_var_condition_'.$_spr.'">'; echo '<li id="zoom_var_condition_'.$_spr.'">';
echo '<div class="zoom_short_text" title="('.strip_tags($row['variable']).') '.strip_tags($row['naslov']).'">'; echo '<div class="zoom_short_text" title="('.strip_tags($row['variable']).') '.strip_tags($row['naslov']).'">';
echo '(<b>'.strip_tags($row['variable']).'</b>) '; echo '(<b>'.strip_tags($row['variable']).'</b>) ';
@ -598,7 +600,9 @@ class SurveyZoom
echo "<br>"; echo "<br>";
} }
} }
echo '</div>'; echo '</div>';
echo '</li>'; echo '</li>';
} }
} }
@ -942,10 +946,12 @@ class SurveyZoom
function doZoomFromInspect() { function doZoomFromInspect() {
global $lang; global $lang;
# polovimo id-je variabel iz inspect profila in nastavimo zoom profil # polovimo id-je variabel iz inspect profila in nastavimo zoom profil
$SI = new SurveyInspect(self::$sid); $SI = new SurveyInspect(self::$sid);
$variables_to_add = $SI->getInspectVariables(); $variables_to_add = $SI->getInspectVariables();
session_start(); session_start();
# shranjujenmo v sejo # shranjujenmo v sejo
# dodamo profil in ga izberemo za privzetega # dodamo profil in ga izberemo za privzetega
@ -961,4 +967,4 @@ class SurveyZoom
$showDiv = ((int)$_POST['showDiv'] == 1)?true:false; $showDiv = ((int)$_POST['showDiv'] == 1)?true:false;
self::displayZoomConditions($showDiv); self::displayZoomConditions($showDiv);
} }
} }

View File

@ -453,9 +453,11 @@ class SurveyAnalysis {
} else { } else {
# polovimo nastavtve missing profila # polovimo nastavtve missing profila
self::$missingProfileData = SurveyMissingProfiles::getProfile(self::$currentMissingProfile); self::$missingProfileData = SurveyMissingProfiles::getProfile(self::$currentMissingProfile);
if (self::$podstran != M_ANALYSIS_ARCHIVE) { if (self::$podstran != M_ANALYSIS_ARCHIVE) {
self::$_LOOPS = SurveyZankaProfiles::getFiltersForLoops(); self::$_LOOPS = SurveyZankaProfiles::getFiltersForLoops();
} }
if (!is_countable(self::$_LOOPS) || count(self::$_LOOPS) == 0) { if (!is_countable(self::$_LOOPS) || count(self::$_LOOPS) == 0) {
# če nimamo zank # če nimamo zank
@ -477,9 +479,11 @@ class SurveyAnalysis {
self::$podstran = M_ANALYSIS_SUMMARY; self::$podstran = M_ANALYSIS_SUMMARY;
self::Display(); self::Display();
break; break;
}
} }
} else { else {
$loop_cnt = 0; $loop_cnt = 0;
# če mamo zanke # če mamo zanke
foreach ( self::$_LOOPS AS $loop) foreach ( self::$_LOOPS AS $loop)
{ {
@ -505,8 +509,7 @@ class SurveyAnalysis {
self::$podstran = M_ANALYSIS_SUMMARY; self::$podstran = M_ANALYSIS_SUMMARY;
self::Display(); self::Display();
break; break;
} }
} }
} }
@ -6811,16 +6814,17 @@ class SurveyAnalysis {
# polovimo nastavtve missing profila # polovimo nastavtve missing profila
self::$missingProfileData = SurveyMissingProfiles::getProfile(self::$currentMissingProfile); self::$missingProfileData = SurveyMissingProfiles::getProfile(self::$currentMissingProfile);
if (self::$podstran != M_ANALYSIS_ARCHIVE) if (self::$podstran != M_ANALYSIS_ARCHIVE){
{
self::$_LOOPS = SurveyZankaProfiles::getFiltersForLoops(); self::$_LOOPS = SurveyZankaProfiles::getFiltersForLoops();
} }
if (!is_array(self::$_LOOPS))
{ if (!is_array(self::$_LOOPS)){
self::$_LOOPS[] = array('filter'=>null,'text'=>null); self::$_LOOPS[] = array('filter'=>null,'text'=>null);
} }
$loop_cnt = 0; $loop_cnt = 0;
# ce mamo zanke # ce mamo zanke
foreach ( self::$_LOOPS AS $loop) foreach ( self::$_LOOPS AS $loop)
{ {
@ -8598,4 +8602,4 @@ class SurveyAnalysis {
} }
} }
?> ?>

View File

@ -203,6 +203,7 @@
define('M_EXPORT_SPSS', 'spss'); define('M_EXPORT_SPSS', 'spss');
define('M_EXPORT_SAV', 'sav'); define('M_EXPORT_SAV', 'sav');
define('M_EXPORT_TXT', 'txt'); define('M_EXPORT_TXT', 'txt');
define('M_EXPORT_1KA', '1ka');
# dodatne nastavitve # dodatne nastavitve
define('A_ADVANCED', 'advanced'); define('A_ADVANCED', 'advanced');
@ -334,4 +335,4 @@
define ('STR_EQUALS', '\x3D'); define ('STR_EQUALS', '\x3D');
?> ?>

View File

@ -207,6 +207,7 @@ lang('srv_anketa_deleted_restore_confirm');
lang('srv_data_deleted_restore_confirm'); lang('srv_data_deleted_restore_confirm');
lang('more2'); lang('more2');
lang('less2'); lang('less2');
lang('srv_concl_deactivation_text_edit');
//LOKACIJA //LOKACIJA
@ -247,4 +248,4 @@ lang('srv_maza_geofence_infowin_radius');
lang('srv_maza_geofence_infowin_radius_unit'); lang('srv_maza_geofence_infowin_radius_unit');
lang('srv_maza_geofence_delete_confirm_map'); lang('srv_maza_geofence_delete_confirm_map');
// EOF // EOF

View File

@ -3763,6 +3763,15 @@ function doTxtExport() {
*/ */
return false; return false;
} }
function do1KAExport() {
$('#export_1ka_form').submit();
/*
var fullMeta = ( $('#fullMeta').is(':checked') ) ? '&fullMeta=1' : '';
var hiddenSystem = ( $('#hiddenSystem').is(':checked') ) ? '&hiddenSystem=1' : '';
window.open( 'ajax.php?t=export&a=doexport'+'&m=txt'+'&anketa=' + srv_meta_anketa_id + fullMeta+hiddenSystem);
*/
return false;
}
function doExcelXlsExport() { function doExcelXlsExport() {
$('#export_excel_xls_form').submit(); $('#export_excel_xls_form').submit();
@ -5392,6 +5401,7 @@ function vprasanje_jezik_save_zakljucek(id_value){
}); });
} }
function prikaziGoogle2faKodo(){ function prikaziGoogle2faKodo(){
$('#2fa-display').toggle(); $('#2fa-display').toggle();
} }
@ -5739,4 +5749,4 @@ function toggleAnketaOpomba () {
function toggleAnketaMapa () { function toggleAnketaMapa () {
$("#dodaj-v-mapo").toggleClass('displayNone'); $("#dodaj-v-mapo").toggleClass('displayNone');
$("#anketa-toggle").toggleClass('bottom0'); $("#anketa-toggle").toggleClass('bottom0');
} }

View File

@ -287,7 +287,7 @@ class ApiLogin
// Preveri ce je user ze logiran v 1ko in nastavi globalne spremenljivke in cookie (kopirano iz function.php) // Preveri ce je user ze logiran v 1ko in nastavi globalne spremenljivke in cookie (kopirano iz function.php)
public function executeAction($params, $data, $method) public function executeAction($params, $data, $method='')
{ {
global $site_url; global $site_url;
global $global_user_id; global $global_user_id;
@ -2096,4 +2096,4 @@ class ApiLogin
{ {
return base64_encode(serialize($piskotek)); return base64_encode(serialize($piskotek));
} }
} }

View File

@ -243,6 +243,7 @@ class DisplaySettings{
echo ' <div class="what">'.$lang['install_settings_SMTPPassword'].':</div>'; echo ' <div class="what">'.$lang['install_settings_SMTPPassword'].':</div>';
echo ' <div class="value"><input type="text" name="SMTPPassword" value="'.$email_server_settings['SMTPPassword'].'"></div>'; echo ' <div class="value"><input type="text" name="SMTPPassword" value="'.$email_server_settings['SMTPPassword'].'"></div>';
echo '</div>'; echo '</div>';
} }
private function displaySettingsGoogle(){ private function displaySettingsGoogle(){
@ -442,4 +443,4 @@ class DisplaySettings{
$result = curl_exec($ch); $result = curl_exec($ch);
} }
} }

View File

@ -112,7 +112,7 @@ function executePOST(){
"narocilo_id" => '33' "narocilo_id" => '33'
);*/ );*/
$post_data = array( $post_data = array(
"email" => 'peter@1ka.si' "email" => '...'
); );
/*$post_data = array( /*$post_data = array(
"podjetje_drzava" => 'Germany', "podjetje_drzava" => 'Germany',
@ -166,4 +166,4 @@ function executePOST(){
return $result; return $result;
} }

View File

@ -59,6 +59,8 @@ if (!$connect_db = mysqli_connect($mysql_server, $mysql_username, $mysql_passwor
} }
// To je ostanek sispleta in verjetno ne sme biti več prisotno? // To je ostanek sispleta in verjetno ne sme biti več prisotno?
// NAPAČNO, to je za stare instalacije, ki imajo Mario/SQL nastavljen na latin1.
// če imaš v anketah kvake namesto ČŽŠ, odkomentiraj.
//sisplet_query("SET character_set_results=latin1"); //sisplet_query("SET character_set_results=latin1");
@ -772,4 +774,4 @@ function root_dir($file = null)
return __DIR__ .'/'. $file; return __DIR__ .'/'. $file;
} }
?> ?>

View File

@ -1583,6 +1583,7 @@ $lang = array (
"srv_lnk_sav" => "SPSS SAV", "srv_lnk_sav" => "SPSS SAV",
"srv_lnk_PDF/RTF" => "Zaporedni izpis vseh respodentov", "srv_lnk_PDF/RTF" => "Zaporedni izpis vseh respodentov",
"srv_lnk_txt" => "Tekstovna datoteka", "srv_lnk_txt" => "Tekstovna datoteka",
"srv_lnk_1ka" => "1KA oblika",
"srv_lnk_data_view" => "Pregled", "srv_lnk_data_view" => "Pregled",
"srv_lnk_data_edit" => "Urejanje", "srv_lnk_data_edit" => "Urejanje",
"srv_izvoz_step1" => "1. korak:", "srv_izvoz_step1" => "1. korak:",
@ -1610,7 +1611,9 @@ $lang = array (
"srv_izvoz_step4_SPSS" => "Datoteko s sintakso nato poženemo z ukazom RUN ALL (najdemo ga v spustnem meniju RUN) in tako kreiramo novo datoteko - bazo podatkov (.sav), ki jo lahko shranimo.", "srv_izvoz_step4_SPSS" => "Datoteko s sintakso nato poženemo z ukazom RUN ALL (najdemo ga v spustnem meniju RUN) in tako kreiramo novo datoteko - bazo podatkov (.sav), ki jo lahko shranimo.",
"srv_izvoz_step5_SPSS" => "Po izvozu v SPSS/PASW lahko določimo tudi manjkajoče vrednosti. Postavimo se v zavihek Variable View in v stolpcu Missing označimo 'Range plus one optional discrete missing value; Low: -99; High: -1;' v 1KA so namreč manjkajoče vse negativne vrednosti s sledečimi pomeni:<br>(-1) Ni odgovoril<br>(-2) Preskok (if)<br>(-3) Prekinjeno<br>(-4) Naknadno vprašanje<br>(-97) Neustrezno<br>(-98) Zavrnil<br>(-99) Ne vem.", "srv_izvoz_step5_SPSS" => "Po izvozu v SPSS/PASW lahko določimo tudi manjkajoče vrednosti. Postavimo se v zavihek Variable View in v stolpcu Missing označimo 'Range plus one optional discrete missing value; Low: -99; High: -1;' v 1KA so namreč manjkajoče vse negativne vrednosti s sledečimi pomeni:<br>(-1) Ni odgovoril<br>(-2) Preskok (if)<br>(-3) Prekinjeno<br>(-4) Naknadno vprašanje<br>(-97) Neustrezno<br>(-98) Zavrnil<br>(-99) Ne vem.",
"srv_izvoz_txt_note" => "Podatke lahko izvozite v tekstovno ASCII datoteko s klikom na spodnji ukaz:", "srv_izvoz_txt_note" => "Podatke lahko izvozite v tekstovno ASCII datoteko s klikom na spodnji ukaz:",
"srv_izvoz_1ka_note" => "Podatke lahko izvozite v specialno 1KA datoteko s klikom na spodnji ukaz:",
"srv_izvoz_txt_file" => "Izvoz v tekstovno datoteko", "srv_izvoz_txt_file" => "Izvoz v tekstovno datoteko",
"srv_izvoz_1ka_file" => "Izvoz v 1KA podatkovno (.1KD) datoteko",
"srv_izvoz_SPSS_complex_note" => "Pri izvozu zelo kompleksne ankete z zankami vam v primeru kakršnih koli težav priporočamo najprej izvoz v Excel, in nato uvoz v SPSS.", "srv_izvoz_SPSS_complex_note" => "Pri izvozu zelo kompleksne ankete z zankami vam v primeru kakršnih koli težav priporočamo najprej izvoz v Excel, in nato uvoz v SPSS.",
"srv_izvoz_SPSS_faq" => "V primeru kakršnihkoli zapletov (npr. pri kompleksnih anketah z zankami, stare verzije SPSS) priporočamo izvoz v Excel, in nato uvoz v SPSS. To priporočamo še posebej pri kombiniranih tabelah. Več o izvozih v SPSS si lahko preberete v priročniku <a href='https://www.1ka.si/d/sl/pomoc/prirocniki/izvoz-spss' target=\"_blank\">Izvoz v SPSS</a>. V primeru težav kontaktirajte <a href=\"https://www.1ka.si/a/72864?Q1=5729900\" target=\"_blank\">Pomoč uporabnikom</a>.", "srv_izvoz_SPSS_faq" => "V primeru kakršnihkoli zapletov (npr. pri kompleksnih anketah z zankami, stare verzije SPSS) priporočamo izvoz v Excel, in nato uvoz v SPSS. To priporočamo še posebej pri kombiniranih tabelah. Več o izvozih v SPSS si lahko preberete v priročniku <a href='https://www.1ka.si/d/sl/pomoc/prirocniki/izvoz-spss' target=\"_blank\">Izvoz v SPSS</a>. V primeru težav kontaktirajte <a href=\"https://www.1ka.si/a/72864?Q1=5729900\" target=\"_blank\">Pomoč uporabnikom</a>.",
"srv_izvoz_SAV_note1" => "Podatke izvozite v SPSS SAV s klikom na spodnji ukaz:", "srv_izvoz_SAV_note1" => "Podatke izvozite v SPSS SAV s klikom na spodnji ukaz:",
@ -2403,6 +2406,7 @@ $lang = array (
"srv_concl_link_go" => "Skoči na povezavo", "srv_concl_link_go" => "Skoči na povezavo",
"srv_concl_link_rec" => "Rekurzivno", "srv_concl_link_rec" => "Rekurzivno",
"srv_concl_deactivation_text" => "Obvestilo pri deaktivaciji", "srv_concl_deactivation_text" => "Obvestilo pri deaktivaciji",
"srv_concl_deactivation_text_edit" => "Napredno urejanje obvestila pri deaktivaciji",
"srv_concl_link_params" => "URL parametri", "srv_concl_link_params" => "URL parametri",
"srv_concl_link_usr_id" => "ID respondenta", "srv_concl_link_usr_id" => "ID respondenta",
"srv_concl_link_status" => "Status responedenta", "srv_concl_link_status" => "Status responedenta",

View File

@ -1571,6 +1571,7 @@ $lang = array (
"srv_lnk_sav" => "SPSS SAV", "srv_lnk_sav" => "SPSS SAV",
"srv_lnk_PDF/RTF" => "Respondent results", "srv_lnk_PDF/RTF" => "Respondent results",
"srv_lnk_txt" => "Text file", "srv_lnk_txt" => "Text file",
"srv_lnk_1ka" => "1KA format",
"srv_lnk_data_view" => "Preview", "srv_lnk_data_view" => "Preview",
"srv_lnk_data_edit" => "Editing", "srv_lnk_data_edit" => "Editing",
"srv_izvoz_step1" => "Step 1:", "srv_izvoz_step1" => "Step 1:",
@ -1599,6 +1600,8 @@ $lang = array (
"srv_izvoz_step5_SPSS" => "After export we can define missing values. In SPSS/PASW we open the Variable View, find the column Missing and select 'Range plus one optional discrete missing value; Low: -99; High: -1.' Default missing values in 1KA are:<br>(-1) Not answered<br>(-2) Skipped (condition)<br>(-3) Drop-out<br>(-4) Subsequently added question<br>(-97) Not applicable<br>(-98) Refused<br>(-99) Don't know.", "srv_izvoz_step5_SPSS" => "After export we can define missing values. In SPSS/PASW we open the Variable View, find the column Missing and select 'Range plus one optional discrete missing value; Low: -99; High: -1.' Default missing values in 1KA are:<br>(-1) Not answered<br>(-2) Skipped (condition)<br>(-3) Drop-out<br>(-4) Subsequently added question<br>(-97) Not applicable<br>(-98) Refused<br>(-99) Don't know.",
"srv_izvoz_txt_note" => "Data can be exported in a text ASCII file by clicking the button below:", "srv_izvoz_txt_note" => "Data can be exported in a text ASCII file by clicking the button below:",
"srv_izvoz_txt_file" => "Text file export", "srv_izvoz_txt_file" => "Text file export",
"srv_izvoz_1ka_note" => "Data can be exported into a 1KA data file by clicking the button below:",
"srv_izvoz_1ka_file" => "1KA data (.1KD) file export",
"srv_izvoz_SPSS_complex_note" => "If you encounter any problems while exporting complex surveys with loops, we suggest you first export data to Excel and then import it into SPSS.", "srv_izvoz_SPSS_complex_note" => "If you encounter any problems while exporting complex surveys with loops, we suggest you first export data to Excel and then import it into SPSS.",
"srv_izvoz_SPSS_faq" => "In case of complications (e.g. complex surveys with loops, old SPSS versions) we suggest export to Excel and then import into SPSS. We specifically recommended for multiple tables. You can find more information about SPSS exports in the <a href=\"https://www.1ka.si/d/en/help/manuals/export-to-spss\" target=\"_blank\">SPSS Export</a> manual. In case of any problems please contact <a href=\"https://www.1ka.si/d/en/help\" target=\"_blank\">Help center</a>.", "srv_izvoz_SPSS_faq" => "In case of complications (e.g. complex surveys with loops, old SPSS versions) we suggest export to Excel and then import into SPSS. We specifically recommended for multiple tables. You can find more information about SPSS exports in the <a href=\"https://www.1ka.si/d/en/help/manuals/export-to-spss\" target=\"_blank\">SPSS Export</a> manual. In case of any problems please contact <a href=\"https://www.1ka.si/d/en/help\" target=\"_blank\">Help center</a>.",
"srv_izvoz_SAV_note1" => "Export data in SPSS (SAV) format by clicking the button below:", "srv_izvoz_SAV_note1" => "Export data in SPSS (SAV) format by clicking the button below:",
@ -2388,6 +2391,7 @@ $lang = array (
"srv_concl_link_go" => "Jump to link", "srv_concl_link_go" => "Jump to link",
"srv_concl_link_rec" => "Recursive", "srv_concl_link_rec" => "Recursive",
"srv_concl_deactivation_text" => "Deactivation note", "srv_concl_deactivation_text" => "Deactivation note",
"srv_concl_deactivation_text_edit" => "Edit deactivation note",
"srv_concl_link_params" => "URL parameters", "srv_concl_link_params" => "URL parameters",
"srv_concl_link_usr_id" => "Respondent ID", "srv_concl_link_usr_id" => "Respondent ID",
"srv_concl_link_status" => "Respondent status", "srv_concl_link_status" => "Respondent status",
@ -8654,4 +8658,4 @@ GDPR introduction preview",
); );
?> ?>

View File

@ -1853,6 +1853,7 @@ class BodyController extends Controller
* @desc prikaze trenutno grupo * @desc prikaze trenutno grupo
*/ */
public function displayGrupa(){ public function displayGrupa(){
global $fieldwork_install;
global $admin_type; global $admin_type;
@ -1975,7 +1976,8 @@ class BodyController extends Controller
// Preverimo, ce je uporabnik ze bil na strani // Preverimo, ce je uporabnik ze bil na strani
if(Check::getInstance()->check_subsequent_visit()){ if(Check::getInstance()->check_subsequent_visit()){
echo '<script>disableSubsequentAnswers();</script>'; // PREVERI ME!
// echo '<script>disableSubsequentAnswers();</script>';
} }
} }
@ -2518,4 +2520,4 @@ class BodyController extends Controller
echo '</div>'; echo '</div>';
} }
} }

View File

@ -663,10 +663,11 @@ class CheckController extends Controller
$row1 = mysqli_fetch_array($sql1); $row1 = mysqli_fetch_array($sql1);
save('grupa', $row1['id']); save('grupa', $row1['id']);
$grupa = Find::getInstance()->findNextGrupa(); $grupa = Find::getInstance()->findSameGrupa();
if ($grupa > 0) { if ($grupa > 0) {
$_GET['grupa'] = $grupa; // v primeru dostopa s kodo, po vpisu kode nastavi $_GET['grupa'] na 0. Ker se drugje v kodi preverja GET, ga nastavim tu na pravo vrednost, da deluje "nadaljuj kjer je ostal" tudi v primeru dostopa s kodo.
setcookie('ref', get('anketa')); // cookie z referalom (da se ne sprozi redirect zaradi referala pri ?code= ) setcookie('ref', get('anketa')); // cookie z referalom (da se ne sprozi redirect zaradi referala pri ?code= )
return header("Location: " . \SurveyInfo::getSurveyLink() . "&grupa=$grupa" . (isset($_GET['language']) ? '&language=' . $_GET['language'] : '') . (isset($_GET['skupina']) ? '&skupina=' . $_GET['skupina'] : '') . get('cookie_url') . "&c"); return header("Location: " . \SurveyInfo::getSurveyLink() . "&grupa=$grupa" . (isset($_GET['language']) ? '&language=' . $_GET['language'] : '') . (isset($_GET['skupina']) ? '&skupina=' . $_GET['skupina'] : '') . get('cookie_url') . "&c");
die(); die();
@ -770,4 +771,4 @@ class CheckController extends Controller
else else
return false; return false;
} }
} }

View File

@ -286,5 +286,38 @@ class FindController extends Controller
return 0; return 0;
} }
} }
/**
* @desc poisce naslednjo stran - grupo, 0 pomeni konec
*/
public function findSameGrupa($gru_id=0)
{
//vrstni red trenutne grupe
if (get('grupa') > 0) {
$sql = sisplet_query("SELECT vrstni_red FROM srv_grupa WHERE id = '" . get('grupa') . "'");
$row = mysqli_fetch_array($sql);
$vrstni_red = $row['vrstni_red'];
}
elseif ($gru_id > 0) {
$sql = sisplet_query("SELECT vrstni_red FROM srv_grupa WHERE id = '" . $gru_id . "'");
$row = mysqli_fetch_array($sql);
$vrstni_red = $row['vrstni_red'];
}
else {
$vrstni_red = 0;
}
} $sql = sisplet_query("SELECT id FROM srv_grupa WHERE ank_id='" . get('anketa') . "' AND vrstni_red='$vrstni_red' ORDER BY vrstni_red ASC LIMIT 1");
// naslednja stran
if (mysqli_num_rows($sql) > 0) {
$row = mysqli_fetch_array($sql);
return $row['id'];
}
// konec
else {
return 0;
}
}
}

View File

@ -23,4 +23,23 @@ $pass_salt = '';
$mysql_server = 'localhost'; $mysql_server = 'localhost';
$mysql_username = ''; $mysql_username = '';
$mysql_password = ''; $mysql_password = '';
$mysql_database_name = ''; $mysql_database_name = '';
/**
* Nastavitve za F2F laptop delo
*/
$fieldwork_install = false;
/*
Nastavitev dostopa za export podatkov v .A00 (kao .1KD - 1ka data),
ki se uporablja za redne izvoze in sinhronizacijo na centralni strežnik.
Za več preveri F2F.md!
data_export_ajax_access= [id_survey => [id_user, skrita_koda]]
*/
$data_export_ajax_access = [];