2020-08-14 13:36:36 +02:00
< ? php
class SurveyAktivnost {
public function __construct (){
global $lang ;
//echo '<br><br>Začasno onemogočeno zaradi težav z bazo!';
//die();
}
/**
* @ desc prikaze diagnostiko anket
*/
public function diagnostics () {
2021-09-29 10:37:17 +02:00
global $lang , $global_user_id , $admin_type ;
2020-08-14 13:36:36 +02:00
$sum = 0 ;
$sum_survey = 0 ;
if ( $_GET [ 'time' ] > 0 )
$time = $_GET [ 'time' ];
else
$time = '1 month' ;
if ( isset ( $_GET [ 'type' ]))
$type = $_GET [ 'type' ];
else
$type = 'users' ;
if ( isset ( $_GET [ 'from' ]))
$from = $_GET [ 'from' ];
else
$from = '' ;
if ( isset ( $_GET [ 'to' ]))
$to = $_GET [ 'to' ];
else
$to = '' ;
echo '<form id="diagnostics_form" action="index.php" method="get">' ;
echo '<input type="hidden" name="a" value="diagnostics" />' ;
2020-12-01 10:09:05 +01:00
2020-08-14 13:36:36 +02:00
$testdata = ( isset ( $_GET [ 'testdata' ]) && $_GET [ 'testdata' ] == '1' ) ? 1 : 0 ;
$testdataauto = ( isset ( $_GET [ 'testdataauto' ]) && $_GET [ 'testdataauto' ] == '1' ) ? 1 : 0 ;
$uvoz = ( isset ( $_GET [ 'uvoz' ]) && $_GET [ 'uvoz' ] == '1' ) ? 1 : 0 ;
$ustrezni = ( isset ( $_GET [ 'ustrezni' ]) && $_GET [ 'ustrezni' ] == '0' ) ? 0 : 1 ;
$delnoustrezni = ( isset ( $_GET [ 'delnoustrezni' ]) && $_GET [ 'delnoustrezni' ] == '0' ) ? 0 : 1 ;
$neustrezni = ( isset ( $_GET [ 'neustrezni' ]) && $_GET [ 'neustrezni' ] == '1' ) ? 1 : 0 ;
$mailsent = ( isset ( $_GET [ 'mailsent' ]) && $_GET [ 'mailsent' ] == '1' ) ? 1 : 0 ;
$language = ( isset ( $_GET [ 'language' ])) ? $_GET [ 'language' ] : 0 ;
2020-12-01 10:09:05 +01:00
2022-03-24 02:02:37 +01:00
// n, število anket
//echo '<label class="srv_diagnostic_total_sub">'.$lang['srv_diagnostics_sum_total'].'</label><label class="srv_diagnostic_total_sub_label">'.$sum.'</label>';
//echo '<label class="srv_diagnostic_total_sub">'.$lang['srv_diagnostics_sum_total_survey'].'</label><label class="srv_diagnostic_total_survey_label">'.$sum_survey.'</label>';
// Nastavitve nad tabelo
echo '<div class="data_table_top_holder">' ;
//Osnova
echo '<div class="osnova">' ;
echo $lang [ 'srv_diagnostics_basis' ];
echo '<select class="dropdown" name="type" onchange="this.form.submit();">' ;
echo '<option value="users"' . ( $type == 'users' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_respondentov' ] . '</option>' ;
echo '<option value="emails"' . ( $type == 'emails' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_emails' ] . '</option>' ;
echo '<option value="pages"' . ( $type == 'pages' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_strani' ] . '</option>' ;
echo '<option value="analiza"' . ( $type == 'analiza' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_analiza' ] . '</option>' ;
echo '<option value="graph"' . ( $type == 'graph' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_graph' ] . '</option>' ;
echo '<option value="editing"' . ( $type == 'editing' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_editing' ] . '</option>' ;
echo '</select>' ;
echo '</div>' ;
//Upoštevane enote
echo '<div class="dataSettingsBasic">' ;
2022-03-24 13:04:37 +01:00
echo ' <button id="toggleDataCheckboxes" class="small white-blue" onClick="toggleAktivnostCheckboxes(\'units\'); return false;"><span class="faicon plus"></span>' . $lang [ 'srv_diagnostics_upostevane' ] . '</button>' ;
2022-03-24 02:02:37 +01:00
echo '</div>' ;
// Dodatne nastavitve, ki se razprejo
echo '<div id="dataSettingsCheckboxes" class="displayNone">' ;
echo ' <div class="dataSettingsCheckboxes_holder">' ;
// Upoštevaj enote
echo '<div class="setting_holder">' ;
echo '<span class="setting_title">' . $lang [ 'srv_diagnostics_upostevaj' ] . '</span>' ;
echo '<input type="hidden" name="uvoz" id="uvoz_hidden" value="' . $uvoz . '" />' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="testdata" name="testdata" ' . ( $testdata == 1 ? ' checked="checked"' : '' ) . '"><label for="testdata">' . $lang [ 'srv_diagnostics_filter_test' ] . '</label>' ;
echo '</div>' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="testdataauto" name="testdataauto" ' . ( $testdataauto == 1 ? ' checked="checked"' : '' ) . '"><label for="testdataauto">' . $lang [ 'srv_diagnostics_filter_autotest' ] . '</label>' ;
echo '</div>' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" id="uvoz" ' . ( $uvoz == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#uvoz_hidden\').val(' . ( $uvoz == 1 ? '0' : '1' ) . ');"><label for="uvoz">' . $lang [ 'srv_diagnostics_filter_import' ] . '</label>' ;
echo '</div>' ;
echo '<input type="hidden" name="ustrezni" id="ustrezni_hidden" value="' . $ustrezni . '" />' ;
echo '<div class="setting_item">' ;
echo '</span><input type="checkbox" id="ustrezni" ' . ( $ustrezni == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#ustrezni_hidden\').val(' . ( $ustrezni == 1 ? '0' : '1' ) . ');"><label for="ustrezni">' . $lang [ 'srv_diagnostics_filter_6' ] . '</label>' ;
echo '</div>' ;
echo '<input type="hidden" name="delnoustrezni" id="delnoustrezni_hidden" value="' . $delnoustrezni . '" />' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" id="delnoustrezni" ' . ( $delnoustrezni == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#delnoustrezni_hidden\').val(' . ( $delnoustrezni == 1 ? '0' : '1' ) . ');"><label for="delnoustrezni">' . $lang [ 'srv_diagnostics_filter_5' ] . '</label>' ;
echo '</div>' ;
echo '<input type="hidden" name="neustrezni" id="neustrezni_hidden" value="' . $neustrezni . '" />' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="neustrezni" ' . ( $neustrezni == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#neustrezni_hidden\').val(' . ( $neustrezni == 1 ? '0' : '1' ) . ');"><label for="neustrezni">' . $lang [ 'srv_diagnostics_filter_34' ] . '</label>' ;
echo '</div>' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="mailsent" name="mailsent" ' . ( $mailsent == 1 ? ' checked="checked"' : '' ) . '><label for="mailsent">' . $lang [ 'srv_diagnostics_filter_012' ] . '</label>' ;
echo '</div>' ;
echo '</div>' ;
echo '<div id="jezikpaket">' ;
//Jezik
echo '<div class="setting_holder">' ;
echo '<span class="setting_title">' . $lang [ 'srv_diagnostics_jezik' ] . '</span>' ;
echo '<select class="dropdown w130" id="language" name="language">' ;
echo '<option value="0" ' . ( $language == '0' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_filter_lang_all' ] . '</option>' ;
echo '<option value="1" ' . ( $language == '1' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_filter_lang_slo' ] . '</option>' ;
echo '<option value="2" ' . ( $language == '2' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_filter_lang_ang' ] . '</option>' ;
echo '</select>' ;
echo '</div>' ;
//Paketi
if ( AppSettings :: getInstance () -> getSetting ( 'app_settings-commercial_packages' ) === true ){
$package_1ka = ( isset ( $_GET [ 'package_1ka' ]) && $_GET [ 'package_1ka' ] == '0' ) ? 0 : 1 ;
$package_2ka = ( isset ( $_GET [ 'package_2ka' ]) && $_GET [ 'package_2ka' ] == '0' ) ? 0 : 1 ;
$package_3ka = ( isset ( $_GET [ 'package_3ka' ]) && $_GET [ 'package_3ka' ] == '0' ) ? 0 : 1 ;
echo '<div class="setting_holder">' ;
echo '<span class="setting_title">' . $lang [ 'srv_narocilo_paket' ] . '</span>' ;
echo '<input type="hidden" name="package_1ka" id="package_1ka_hidden" value="' . $package_1ka . '" />' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="package_1ka" ' . ( $package_1ka == 1 ? ' checked="checked"' : '' ) . '" onchange="$(\'#package_1ka_hidden\').val(' . ( $package_1ka == 1 ? '0' : '1' ) . ');"><label for="package_1ka">1KA</label>' ;
echo '</div>' ;
echo '<input type="hidden" name="package_2ka" id="package_2ka_hidden" value="' . $package_2ka . '" />' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="package_2ka" ' . ( $package_2ka == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#package_2ka_hidden\').val(' . ( $package_2ka == 1 ? '0' : '1' ) . ');"><label for="package_2ka">2KA</label>' ;
echo '</div>' ;
echo '<input type="hidden" name="package_3ka" id="package_3ka_hidden" value="' . $package_3ka . '" />' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="package_3ka" ' . ( $package_3ka == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#package_3ka_hidden\').val(' . ( $package_3ka == 1 ? '0' : '1' ) . ');"><label for="package_3ka">3KA</label>' ;
echo '</div>' ;
echo '</div>' ;
}
echo '</div>' ; //div#jezikpaket
// Gumb filtriraj
echo '<div class="button_holder">' ;
2022-03-24 13:04:37 +01:00
echo ' <button class="small blue" onClick="this.form.submit();">' . $lang [ 'srv_diagnostics_filter' ] . '</button>' ;
2022-03-24 02:02:37 +01:00
echo '</div>' ;
2020-08-14 13:36:36 +02:00
2022-03-24 02:02:37 +01:00
echo ' </div>' ;
echo '</div>' ; //div#dataSettingsCheckboxes
2022-03-24 13:04:37 +01:00
// Datum
echo '<div id="end">' ;
echo '<div class="dataSettingsBasic">' ;
echo ' <button id="toggleDataCheckboxes_Date" class="small white-blue" onClick="toggleAktivnostCheckboxes(\'date\'); return false;"><span class="faicon calendar_icon"></span>' . $lang [ 'srv_diagnostics_date' ] . '</button>' ;
echo '</div>' ;
echo '</div>' ;
// Dodatne nastavitve, ki se razprejo
echo '<div id="dataSettingsCheckboxes_Date" class="displayNone">' ;
echo ' <div class="dataSettingsCheckboxes_holder">' ;
echo '<div class="setting_holder">' ;
echo $lang [ 'srv_diagnostics_date2' ];
echo '<select class="dropdown w130" id="diagnostics_date_selected" name="time" onChange="this.form.submit();">' ;
echo '<option value="1 minute"' . ( $time == '1 minute' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_1 minute' ] . '</option>' ;
echo '<option value="5 minute"' . ( $time == '5 minute' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_5 minute' ] . '</option>' ;
echo '<option value="10 minute"' . ( $time == '10 minute' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_10 minute' ] . '</option>' ;
echo '<option value="30 minute"' . ( $time == '30 minute' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_30 minute' ] . '</option>' ;
echo '<option value="1 hour"' . ( $time == '1 hour' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_1 hour' ] . '</option>' ;
echo '<option value="6 hour"' . ( $time == '6 hour' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_6 hour' ] . '</option>' ;
echo '<option value="12 hour"' . ( $time == '12 hour' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_12 hour' ] . '</option>' ;
echo '<option value="1 day"' . ( $time == '1 day' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_1 day' ] . '</option>' ;
echo '<option value="2 day"' . ( $time == '2 day' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_2 day' ] . '</option>' ;
echo '<option value="5 day"' . ( $time == '5 day' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_5 day' ] . '</option>' ;
echo '<option value="7 day"' . ( $time == '7 day' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_7 day' ] . '</option>' ;
echo '<option value="14 day"' . ( $time == '14 day' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_14 day' ] . '</option>' ;
echo '<option value="1 month"' . ( $time == '1 month' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_1 month' ] . '</option>' ;
echo '<option value="3 month"' . ( $time == '3 month' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_3 month' ] . '</option>' ;
echo '<option value="6 month"' . ( $time == '6 month' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_6 month' ] . '</option>' ;
echo '<option id="option_99date" value="99date"' . ( $time == '99date' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_choose_date' ] . '</option>' ;
echo '</select>' ;
echo '</div>' ;
// Datum - od
echo '<div class="setting_holder">' ;
echo $lang [ 'srv_diagnostics_orfrom' ];
echo '<div class="date_holder">' ;
2022-03-28 14:16:14 +02:00
echo '<input type="text" class="text ' . ( $time != '99date' ? 'disabled' : '' ) . '" id="from" name="from" value="' . $from . '"/>' ;
2022-03-24 13:04:37 +01:00
echo '<span class="faicon calendar_icon blue" onclick="changeSelectOption()" id="from_img"></span>' ;
echo '</div>' ;
echo '</div>' ;
// Datum - do
echo '<div class="setting_holder">' ;
echo $lang [ 'srv_diagnostics_to' ];
echo '<div class="date_holder">' ;
2022-03-28 14:16:14 +02:00
echo '<input type="text" class="text ' . ( $time != '99date' ? 'disabled' : '' ) . '" id="to" name="to" value="' . $to . '"/>' ;
2022-03-24 13:04:37 +01:00
echo '<span class="faicon calendar_icon blue" onclick="changeSelectOption()" id="from_img"></span>' ;
echo '</div>' ;
echo '</div>' ;
// Gumb filtriraj
echo '<div class="button_holder">' ;
echo ' <button class="small blue" onClick="this.form.submit();">' . $lang [ 'srv_diagnostics_filter' ] . '</button>' ;
echo '</div>' ;
echo '</div>' ;
echo '</div>' ; //div#dataSettingsCheckboxes_Date
2022-03-25 10:35:55 +01:00
// Klik izven razprith nastavitev - zapremo okno
echo ' < script >
$ ( document ) . mouseup ( function ( e ){
var container1 = $ ( " #dataSettingsCheckboxes " );
var container2 = $ ( " #dataSettingsCheckboxes_Date " );
if ( ! container1 . is ( e . target ) && container1 . has ( e . target ) . length === 0 ){
$ ( " #dataSettingsCheckboxes " ) . addClass ( " displayNone " );
}
if ( ! container2 . is ( e . target ) && container2 . has ( e . target ) . length === 0 ){
$ ( " #dataSettingsCheckboxes_Date " ) . addClass ( " displayNone " );
}
});
</ script > ' ;
2022-03-24 13:04:37 +01:00
2022-03-24 02:02:37 +01:00
echo '</div>' ; // div.data_table_top_holder
echo '</form>' ;
2020-08-14 13:36:36 +02:00
if ( $type == 'pages' )
$time_edit = 'srv_user_grupa_active.time_edit' ;
elseif ( $type == 'users' )
$time_edit = 'srv_user.time_edit' ;
elseif ( $type == 'analiza' )
$time_edit = 'srv_tracking_active.datetime' ;
elseif ( $type == 'editing' )
$time_edit = 'srv_tracking_active.datetime' ;
elseif ( $type == 'graph' )
$time_edit = 'srv_tracking_active.datetime' ;
elseif ( $type == 'emails' )
$time_edit = 'date_sent' ;
if ( $time == '99date' && $from == '' && $to == '' ){
if ( $type == 'users' )
$interval = " AND ( $time_edit > NOW() - INTERVAL 1 month OR (srv_user.time_edit='0000-00-00 00:00:00' AND srv_user.time_insert > NOW() - INTERVAL 1 month)) " ;
else
$interval = " AND $time_edit > NOW() - INTERVAL 1 month " ;
}
else if ( $from == '' && $to == '' ){
if ( $type == 'users' )
$interval = " AND ( $time_edit > NOW() - INTERVAL $time OR (srv_user.time_edit='0000-00-00 00:00:00' AND srv_user.time_insert > NOW() - INTERVAL $time )) " ;
else
$interval = " AND $time_edit > NOW() - INTERVAL $time " ;
}
else {
if ( $type == 'users' )
$interval = " AND (' $from ' <= $time_edit AND $time_edit <= ' $to ' OR (srv_user.time_edit='0000-00-00 00:00:00' AND ' $from ' <= srv_user.time_insert AND srv_user.time_insert <= ' $to ')) " ;
else
$interval = " AND ' $from ' <= $time_edit AND $time_edit <= ' $to ' " ;
}
if ( $type == 'pages' ) {
$sql = sisplet_query ( "
SELECT COUNT ( grupe . usr_id ) AS responses , grupe . ank_id , srv_anketa . naslov
FROM (
SELECT *
FROM srv_user_grupa_active , srv_grupa
WHERE srv_user_grupa_active . gru_id = srv_grupa . id
$interval
) AS grupe , srv_anketa
WHERE grupe . ank_id = srv_anketa . id
2020-12-01 10:09:05 +01:00
AND ( srv_anketa . dostop >= '" . $admin_type . "' OR srv_anketa . id IN
( SELECT ank_id FROM srv_dostop WHERE uid = '" . $global_user_id . "' ))
2020-08-14 13:36:36 +02:00
GROUP BY grupe . ank_id
ORDER BY responses DESC
" );
} elseif ( $type == 'users' ) {
2020-12-01 10:09:05 +01:00
$filter = $this -> diagnostics_get_user_settings ();
$filter_package = $this -> diagnostics_get_user_package ();
2020-08-14 13:36:36 +02:00
$filter_lang = $this -> diagnostics_get_lang_filter ();
$sql = sisplet_query ( "
2020-12-01 10:09:05 +01:00
SELECT COUNT ( srv_user . id ) AS responses , users . email , srv_user . ank_id , srv_anketa . naslov , user_access . package_id
FROM srv_user , srv_anketa , users
LEFT JOIN user_access
ON user_access . usr_id = users . id
WHERE " . $filter . " AND " . $filter_lang . " " . $filter_package . " srv_user . ank_id > '0'
AND srv_anketa . id = srv_user . ank_id
AND ( srv_anketa . dostop >= '" . $admin_type . "' OR srv_anketa . id IN
( SELECT ank_id FROM srv_dostop WHERE uid = '" . $global_user_id . "' ))
$interval
AND srv_anketa . insert_uid = users . id
2020-08-14 13:36:36 +02:00
GROUP BY ank_id
ORDER BY responses DESC
" );
} elseif ( $type == 'analiza' ) {
$sql = sisplet_query ( "
SELECT COUNT ( srv_tracking_active . ank_id ) AS responses , srv_tracking_active . ank_id , srv_anketa . naslov
FROM srv_tracking_active , srv_anketa
WHERE srv_anketa . id = srv_tracking_active . ank_id
2020-12-01 10:09:05 +01:00
AND ( `get` LIKE '%analiza%' OR `get` LIKE '%analysis%' )
AND NOT ( `get` LIKE '%charts%' )
AND ( srv_anketa . dostop >= '" . $admin_type . "' OR srv_anketa . id IN
( SELECT ank_id FROM srv_dostop WHERE uid = '" . $global_user_id . "' ))
$interval
2020-08-14 13:36:36 +02:00
GROUP BY ank_id
ORDER BY responses DESC
" );
} elseif ( $type == 'graph' ) {
$sql = sisplet_query ( "
SELECT COUNT ( srv_tracking_active . ank_id ) AS responses , srv_tracking_active . ank_id , srv_anketa . naslov
FROM srv_tracking_active , srv_anketa
WHERE srv_anketa . id = srv_tracking_active . ank_id
2020-12-01 10:09:05 +01:00
AND ( `get` LIKE '%analiza%' OR `get` LIKE '%analysis%' )
AND ( `get` LIKE '%charts%' )
AND ( srv_anketa . dostop >= '" . $admin_type . "' OR srv_anketa . id IN
( SELECT ank_id FROM srv_dostop WHERE uid = '" . $global_user_id . "' ))
$interval
2020-08-14 13:36:36 +02:00
GROUP BY ank_id
ORDER BY responses DESC
" );
} elseif ( $type == 'editing' ) {
$sql = sisplet_query ( "
SELECT COUNT ( srv_tracking_active . ank_id ) AS responses , srv_tracking_active . ank_id , srv_anketa . naslov
FROM srv_tracking_active , srv_anketa
WHERE srv_anketa . id = srv_tracking_active . ank_id
2020-12-01 10:09:05 +01:00
AND ( srv_anketa . dostop >= '" . $admin_type . "' OR srv_anketa . id IN
( SELECT ank_id FROM srv_dostop WHERE uid = '" . $global_user_id . "' ))
$interval
2020-08-14 13:36:36 +02:00
GROUP BY ank_id
ORDER BY responses DESC
" );
} elseif ( $type == 'emails' ) {
$sql = sisplet_query ( "
SELECT COUNT ( srv_invitations_recipients . id ) AS responses , srv_invitations_recipients . ank_id , srv_anketa . naslov
FROM srv_invitations_recipients , srv_anketa
WHERE srv_anketa . id = srv_invitations_recipients . ank_id AND srv_invitations_recipients . sent = '1'
2020-12-01 10:09:05 +01:00
AND ( srv_anketa . dostop >= '" . $admin_type . "' OR srv_anketa . id IN
( SELECT ank_id FROM srv_dostop WHERE uid = '" . $global_user_id . "' ))
$interval
2020-08-14 13:36:36 +02:00
GROUP BY ank_id
ORDER BY responses DESC
" );
}
if ( ! $sql ) {
echo mysqli_error ( $GLOBALS [ 'connect_db' ]);
}
2022-03-24 02:02:37 +01:00
// Tabela
2020-08-14 13:36:36 +02:00
global $site_url ;
2022-03-24 02:02:37 +01:00
echo '<table id="aktivnost_ankete_table">' ;
2020-08-14 13:36:36 +02:00
$max = - 1 ;
2022-03-24 02:02:37 +01:00
echo '<tr>' ;
echo '<th>' . $lang [ 'srv_ime' ] . '</th>' ;
echo '<th>' . $lang [ 'email' ] . '</th>' ;
echo '<th>' . $lang [ 'srv_stevilo_enot' ] . '</th>' ;
echo '</tr>' ;
2020-08-14 13:36:36 +02:00
while ( $row = mysqli_fetch_array ( $sql )) {
if ( $max == - 1 )
2020-12-01 10:09:05 +01:00
$max = max ( $row [ 'responses' ], $max ) * 1.3 ;
2020-08-14 13:36:36 +02:00
echo '<tr>' ;
echo '<td><a href="' . SurveyInfo :: getSurveyLink ( $row [ 'ank_id' ]) . '?preview=on&pages=all" target="_blank">' . $row [ 'naslov' ] . '</a></td>' ;
2022-03-24 02:02:37 +01:00
echo '<td class="gray">' . $row [ 'email' ] . '</td>' ;
2020-08-14 13:36:36 +02:00
$sum = $sum + $row [ 'responses' ];
$sum_survey = $sum_survey + 1 ;
2022-03-24 02:02:37 +01:00
echo '<td class="graph_cell">' ;
echo '<div class="graph_cell">' ;
echo '<div class="graph_full" style="width:' . ( round ( $row [ 'responses' ] / $max * 100 , 0 )) . '%"> </div><div> ' . $row [ 'responses' ] . '</div' ;
echo '</div></td>' ;
2020-12-01 10:09:05 +01:00
echo '</tr>' ;
2020-08-14 13:36:36 +02:00
}
echo ' < script type = " text/javascript " >
function runSubTotal (){
$ ( " .srv_diagnostic_total_sub_label " ) . text ( '.$sum.' );
$ ( " .srv_diagnostic_total_survey_label " ) . text ( '.$sum_survey.' );
}
window . onload = runSubTotal ;
</ script > ' ;
echo '</table>' ;
}
public function diagnostics_time_span () {
global $lang ;
$interval = $this -> diagnostics_get_interval ( 'month' );
2020-12-01 10:09:05 +01:00
$filter = $this -> diagnostics_get_user_settings ();
$filter_package = $this -> diagnostics_get_user_package ();
2020-08-14 13:36:36 +02:00
$filter_lang = $this -> diagnostics_get_lang_filter ();
$this -> diagnostics_show_interval ( 'time_span' );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[srv_anketa] AS datedate, YEAR(insert_time) AS color, insert_time AS date
FROM srv_anketa
LEFT JOIN user_access
ON user_access . usr_id = srv_anketa . insert_uid
WHERE " . $filter_lang . " " . $filter_package . " insert_time > 0 AND YEAR ( insert_time ) >= 2009
GROUP BY datedate
ORDER BY insert_time ASC
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_month_survey' ], 'day' , 'year' , false );
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_sum_survey' ], 'day' , 'year' , true );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[users] AS datedate, YEAR(when_reg) AS color, when_reg AS date
FROM users
LEFT JOIN user_access
ON user_access . usr_id = users . id
WHERE " . $filter_package . " when_reg > 0 AND YEAR ( when_reg ) >= 2009
GROUP BY datedate
ORDER BY when_reg ASC
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_month_register' ], 'day' , 'year' , false );
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_sum_register' ], 'day' , 'year' , true );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[srv_user] AS datedate, YEAR(srv_user.time_insert) AS color, srv_user.time_insert AS date
FROM srv_user , srv_anketa
LEFT JOIN user_access
ON user_access . usr_id = srv_anketa . insert_uid
WHERE srv_user . ank_id = srv_anketa . id AND " . $filter . " AND " . $filter_lang . " " . $filter_package . " time_insert > 0 AND YEAR ( time_insert ) >= 2009
GROUP BY datedate
ORDER BY time_insert ASC
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_month_answer' ], 'day' , 'year' , false );
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_sum_answer' ], 'day' , 'year' , true );
}
public function diagnostics_time_span_yearly () {
global $lang ;
$interval = $this -> diagnostics_get_interval ( 'day' );
2020-12-01 10:09:05 +01:00
$filter = $this -> diagnostics_get_user_settings ();
$filter_package = $this -> diagnostics_get_user_package ();
2020-08-14 13:36:36 +02:00
$filter_lang = $this -> diagnostics_get_lang_filter ();
$this -> diagnostics_show_interval ( 'time_span_yearly' );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[srv_anketa] AS datedate, MONTH(insert_time) AS color, insert_time AS date
FROM srv_anketa
LEFT JOIN user_access
ON user_access . usr_id = srv_anketa . insert_uid
WHERE " . $filter_lang . " " . $filter_package . " insert_time > 0 AND insert_time >= '".date("Y-m-1 0:00:00", strtotime("-11 month"))."'
GROUP BY datedate
ORDER BY insert_time ASC
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_month_survey' ], 'day' , 'month' , false );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[users] AS datedate, MONTH(when_reg) AS color, when_reg AS date
FROM users
LEFT JOIN user_access
ON user_access . usr_id = users . id
WHERE " . $filter_package . " when_reg > 0 AND when_reg >= '".date("Y-m-1 0:00:00", strtotime("-11 month"))."'
GROUP BY datedate
ORDER BY when_reg ASC
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_month_register' ], 'day' , 'month' , false );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[srv_user] AS datedate, MONTH(srv_user.time_insert) AS color, srv_user.time_insert AS date
FROM srv_user , srv_anketa
LEFT JOIN user_access
ON user_access . usr_id = srv_anketa . insert_uid
WHERE srv_user . ank_id = srv_anketa . id AND " . $filter . " AND " . $filter_lang . " " . $filter_package . " time_insert > 0 AND time_insert >= '".date("Y-m-1 0:00:00", strtotime("-11 month"))."'
GROUP BY datedate
ORDER BY time_insert ASC
" );
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_month_answer' ], 'day' , 'month' , false );
2020-08-14 13:36:36 +02:00
}
public function diagnostics_time_span_monthly () {
global $lang ;
$interval = $this -> diagnostics_get_interval ( 'day' );
2020-12-01 10:09:05 +01:00
$filter = $this -> diagnostics_get_user_settings ();
$filter_package = $this -> diagnostics_get_user_package ();
2020-08-14 13:36:36 +02:00
$filter_lang = $this -> diagnostics_get_lang_filter ();
$this -> diagnostics_show_interval ( 'time_span_monthly' );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[srv_anketa] AS datedate, MONTH(insert_time) AS color, insert_time AS date
FROM srv_anketa
LEFT JOIN user_access
ON user_access . usr_id = srv_anketa . insert_uid
WHERE " . $filter_lang . " " . $filter_package . " insert_time > 0 AND insert_time >= '".date("Y-m-1 0:00:00", strtotime("-2 month"))."'
GROUP BY datedate
ORDER BY insert_time ASC
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_month_survey' ], 'day' , 'month' , false );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[users] AS datedate, MONTH(when_reg) AS color, when_reg AS date
FROM users
LEFT JOIN user_access
ON user_access . usr_id = users . id
WHERE " . $filter_package . " when_reg > 0 AND when_reg >= '".date("Y-m-1 0:00:00", strtotime("-2 month"))."'
GROUP BY datedate
ORDER BY when_reg ASC
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_month_register' ], 'day' , 'month' , false );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[srv_user] AS datedate, MONTH(srv_user.time_insert) AS color, srv_user.time_insert AS date
FROM srv_user , srv_anketa
LEFT JOIN user_access
ON user_access . usr_id = srv_anketa . insert_uid
WHERE srv_user . ank_id = srv_anketa . id AND " . $filter . " AND " . $filter_lang . " " . $filter_package . " time_insert > 0 AND time_insert >= '".date("Y-m-1 0:00:00", strtotime("-2 month"))."'
GROUP BY datedate
ORDER BY time_insert ASC
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_month_answer' ], 'day' , 'month' , false );
}
public function diagnostics_time_span_daily () {
global $lang ;
$interval = $this -> diagnostics_get_interval ( 'hour' );
$filter = $this -> diagnostics_get_user_settings ();
2020-12-01 10:09:05 +01:00
$filter_package = $this -> diagnostics_get_user_package ();
2020-08-14 13:36:36 +02:00
$filter_lang = $this -> diagnostics_get_lang_filter ();
$this -> diagnostics_show_interval ( 'time_span_daily' );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[srv_anketa] AS datedate, DAYOFWEEK(insert_time) AS color, insert_time AS date
FROM srv_anketa
LEFT JOIN user_access
ON user_access . usr_id = srv_anketa . insert_uid
WHERE " . $filter_lang . " " . $filter_package . " insert_time >= '".date("Y-m-d 0:00:00", strtotime("-1 week"))."'
GROUP BY datedate
ORDER BY insert_time
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_week_survey' ], 'hour' , 'day' , false );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[srv_tracking_active] AS datedate, DAYOFWEEK(datetime) AS color, datetime AS date
FROM srv_tracking_active
LEFT JOIN user_access
ON user_access . usr_id = srv_tracking_active . user
WHERE " . $filter_package . " datetime >= '".date("Y-m-d 0:00:00", strtotime("-1 week"))."'
GROUP BY datedate
ORDER BY datetime
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_week_edit' ], 'hour' , 'day' , false );
2020-12-01 10:09:05 +01:00
$sql = sisplet_query ( " SELECT COUNT(*) as count, $interval[srv_user] AS datedate, DAYOFWEEK(srv_user.time_insert) AS color, srv_user.time_insert AS date
FROM srv_user , srv_anketa
LEFT JOIN user_access
ON user_access . usr_id = srv_anketa . insert_uid
WHERE srv_user . ank_id = srv_anketa . id AND " . $filter . " AND " . $filter_lang . " " . $filter_package . " time_insert >= '".date("Y-m-d 0:00:00", strtotime("-1 week"))."'
GROUP BY datedate
ORDER BY time_insert
" );
2020-08-14 13:36:36 +02:00
$this -> diagnostics_graph ( $sql , $lang [ 'srv_diagnostics_graph_week_answer' ], 'hour' , 'day' , false );
}
/**
* @ desc prikaze diagnostiko anket
*/
public function diagnostics_paradata () {
global $lang , $global_user_id , $admin_type , $site_url ;
set_time_limit ( 1800 ); # 30 minut
// Koliko respondentov vzamemo (random)
$limit = ( isset ( $_GET [ 'limit' ]) && is_numeric ( $_GET [ 'limit' ])) ? $_GET [ 'limit' ] : 1000 ;
// Obdobje
$date_from = ( isset ( $_GET [ 'from' ])) ? $_GET [ 'from' ] : date ( 'j.n.Y' , strtotime ( " -1 year " ));
$date_from_mysql = date ( " Y-m-d " , strtotime ( $date_from )) . ' 00:00:00' ;
$date_to = ( isset ( $_GET [ 'to' ])) ? $_GET [ 'to' ] : date ( 'j.n.Y' );
$date_to_mysql = date ( " Y-m-d " , strtotime ( $date_to )) . ' 00:00:00' ;
// Forma za filtriranje
echo '<form name="diagnostics_paradata" action="index.php" method="get">' ;
echo '<input type="hidden" name="a" value="diagnostics">' ;
echo '<input type="hidden" name="t" value="paradata">' ;
2022-03-24 14:36:07 +01:00
// Nastavitve nad tabelo
echo '<div class="data_table_top_holder">' ;
//Vseh random enot
echo '<div class="osnova">' ;
echo $lang [ 'srv_inv_dashboard_tbl_all' ];
echo '<input class="text" type="text" name="limit" value="' . $limit . '" />' ;
echo '</div>' ;
2020-08-14 13:36:36 +02:00
// Datum
2022-03-24 14:36:07 +01:00
echo '<div id="end">' ;
echo '<div class="dataSettingsBasic">' ;
echo ' <button id="toggleDataCheckboxes_Date" class="small white-blue" onClick="toggleAktivnostCheckboxes(\'date\'); return false;"><span class="faicon calendar_icon"></span>' . $lang [ 'srv_diagnostics_date' ] . '</button>' ;
echo '</div>' ;
echo '</div>' ;
// Dodatne nastavitve, ki se razprejo
echo '<div id="dataSettingsCheckboxes_Date" class="displayNone">' ;
echo ' <div class="dataSettingsCheckboxes_holder">' ;
// Datum - od
echo '<div class="setting_holder">' ;
echo $lang [ 'srv_diagnostics_orfrom' ];
echo '<div class="date_holder">' ;
echo '<input class="text" type="text" id="from" name="from" value="' . $date_from . '" />' ;
echo '<span class="faicon calendar_icon blue" onclick="diagnosticsParadataChooseDate();" id="from_img"></span>' ;
echo '</div>' ;
echo '</div>' ;
// Datum - do
echo '<div class="setting_holder">' ;
echo $lang [ 'srv_diagnostics_to' ];
echo '<div class="date_holder">' ;
echo '<input class="text" type="text" id="to" name="to" value="' . $date_to . '" />' ;
echo '<span class="faicon calendar_icon blue" onclick="diagnosticsParadataChooseDate();" id="from_img"></span>' ;
echo '</div>' ;
echo '</div>' ;
2020-08-14 13:36:36 +02:00
echo '<script>diagnosticsParadataChooseDate();</script>' ;
2022-03-24 14:36:07 +01:00
// Gumb filtriraj
echo '<div class="button_holder">' ;
echo ' <button class="small blue" onClick="this.form.submit();">' . $lang [ 'srv_diagnostics_filter' ] . '</button>' ;
echo '</div>' ;
echo '</div>' ;
echo '</div>' ; //div#dataSettingsCheckboxes_Date
2022-03-28 12:57:04 +02:00
// Klik izven razprith nastavitev - zapremo okno
echo ' < script >
$ ( document ) . mouseup ( function ( e ){
var container1 = $ ( " #dataSettingsCheckboxes_Date " );
if ( ! container1 . is ( e . target ) && container1 . has ( e . target ) . length === 0 ){
$ ( " #dataSettingsCheckboxes_Date " ) . addClass ( " displayNone " );
}
});
</ script > ' ;
2022-03-24 14:36:07 +01:00
echo '</div>' ; // div.data_table_top_holder
2020-08-14 13:36:36 +02:00
2022-03-24 14:36:07 +01:00
echo '</form>' ;
2020-08-14 13:36:36 +02:00
// Gledamo vse veljavne respondente iz leta 2016
$sql = sisplet_query ( " SELECT id, ank_id, useragent
FROM srv_user
WHERE last_status IN ( '5' , '6' ) AND lurker = '0' AND time_insert < '".$date_to_mysql."' AND time_insert >= '".$date_from_mysql."'
ORDER BY rand ()
LIMIT " . $limit . " " );
if ( ! $sql ) { echo mysqli_error ( $GLOBALS [ 'connect_db' ]); die ();}
$statistics = array ();
while ( $row = mysqli_fetch_array ( $sql )) {
//var_dump($row);
$browser_detect = get_browser ( $row [ 'useragent' ], true );
//var_dump($browser_detect);
// Naprava
$statistics [ 'device' ][ $browser_detect [ 'device_type' ]] ++ ;
$statistics [ 'device' ][ 'title' ] = $lang [ 'srv_para_graph_device' ];
// Mobilnik, tablica...
$browser_detect [ 'ismobiledevice' ] = ( $browser_detect [ 'ismobiledevice' ] == '' ) ? '0' : $browser_detect [ 'ismobiledevice' ];
$browser_detect [ 'istablet' ] = ( $browser_detect [ 'istablet' ] == '' ) ? '0' : $browser_detect [ 'istablet' ];
$statistics [ 'mobile' ][ $browser_detect [ 'ismobiledevice' ]] ++ ;
$statistics [ 'mobile' ][ 'title' ] = $lang [ 'srv_para_graph_device1' ];
$statistics [ 'tablet' ][ $browser_detect [ 'istablet' ]] ++ ;
$statistics [ 'tablet' ][ 'title' ] = $lang [ 'srv_para_graph_device2' ];
// Brskalnik
$statistics [ 'browser_name' ][ $browser_detect [ 'browser' ]] ++ ;
$statistics [ 'browser_name' ][ 'title' ] = $lang [ 'srv_para_graph_browser' ];
//$statistics['browser_version'][$browser_detect['version']]++;
// Operacijski sistem
$statistics [ 'os' ][ $browser_detect [ 'platform' ]] ++ ;
$statistics [ 'os' ][ 'title' ] = $lang [ 'srv_para_graph_os' ];
// Brskalnik (verzija)
$statistics [ 'browser' ][ $browser_detect [ 'parent' ]] ++ ;
$statistics [ 'browser' ][ 'title' ] = $lang [ 'srv_para_graph_browser' ];
}
foreach ( $statistics as $key => $vals ){
2022-03-24 14:36:07 +01:00
echo '<fieldset><legend>' . $vals [ 'title' ] . '</legend>' ;
2020-08-14 13:36:36 +02:00
// Sortiramo vrednosti po velikosti (od najvecje do najmanjse)
//ksort($vals);
arsort ( $vals );
2022-03-24 14:36:07 +01:00
echo '<table class="aktivnost_paradata_table">' ;
echo '<tr>' ;
echo '<th>' . $vals [ 'title' ] . '</th>' ;
echo '<th>' . $lang [ 'srv_stevilo_enot' ] . '</th>' ;
echo '</tr>' ;
2020-08-14 13:36:36 +02:00
$max = - 1 ;
foreach ( $vals as $key2 => $val ){
if ( $key2 !== 'title' ){
echo '<tr>' ;
if ( $key2 == '0' )
$key2 = $lang [ 'no' ];
elseif ( $key2 == '1' )
$key2 = $lang [ 'yes' ];
echo '<td>' . $key2 . '</td>' ;
$max = max ( $val , $max ) * 1.2 ;
2022-03-24 14:36:07 +01:00
echo '<td class="graph_cell">' ;
echo '<div class="graph_cell">' ;
echo '<div class="graph_full" style="width:' . ( round ( $val / $max * 100 , 0 )) . '%"> </div><div> ' . $val . '</div>' ;
echo '</div></td>' ;
2020-08-14 13:36:36 +02:00
echo '</tr>' ;
}
}
echo '</table>' ;
2022-03-24 14:36:07 +01:00
echo '</fieldset>' ;
2020-08-14 13:36:36 +02:00
}
}
/**
* izrise graf za aktivnosti / diagnostiko anket , uporabnikov itd ...
*
* @ param mixed $sql
* @ param mixed $text
* @ param mixed $interval
* @ param mixed $color
* @ param mixed $sumarium
*/
private function diagnostics_graph ( $sql , $text , $interval , $color , $sumarium ) {
ob_flush ();
if ( ! $sql ) echo mysqli_error ( $GLOBALS [ 'connect_db' ]);
if ( mysqli_num_rows ( $sql ) > 0 ) mysqli_data_seek ( $sql , 0 );
$interval = $_GET [ 'interval' ];
$max = 0 ;
$sum = 0 ;
$prev = 0 ;
$c = 0 ;
$cols = 0 ;
$prev_color = '' ;
$avg = array ();
$cur_sum = 0 ;
$cur_tot = 0 ;
while ( $row = mysqli_fetch_assoc ( $sql )) {
if ( $row [ 'count' ] > $max ) $max = $row [ 'count' ];
$sum += $row [ 'count' ];
if ( $prev_color != $row [ 'color' ]) {
if ( $cur_tot != 0 ) $avg [ $prev_color ] = round ( $cur_sum / $cur_tot , 1 );
//echo $cur_tot.' '.$cur_sum.' '.$prev_color.': '.$avg[$prev_color].'<br>';
$cur_sum = 0 ;
$cur_tot = 0 ;
$prev_color = $row [ 'color' ];
}
$cur_tot ++ ;
$cur_sum += $row [ 'count' ];
//echo $cur_tot.' '.$cur_sum.'<br>';
}
if ( $cur_tot != 0 ) $avg [ $prev_color ] = round ( $cur_sum / $cur_tot , 1 );
$prev_color = '' ;
$max = $max / 100 ;
$sum = $sum / 100 ;
echo '<div class="time_span_header">' . $text . ' (' . ( $sumarium ? 'sum' : 'max' ) . ': ' . number_format (( $sumarium ? $sum : $max ) * 100 , 0 , ',' , '.' ) . ')</div>' ;
echo '<div class="time_span_container">' ;
if ( mysqli_num_rows ( $sql ) > 0 ) mysqli_data_seek ( $sql , 0 );
while ( $row = mysqli_fetch_assoc ( $sql )) {
if ( $interval == 'hour' )
$plusone = date ( " Y-m-d G " , strtotime ( '+1 ' . $interval . '' , strtotime ( $prev . ':00' )));
elseif ( $interval == 'day' )
$plusone = date ( " Y-m-d " , strtotime ( '+1 ' . $interval . '' , strtotime ( $prev )));
elseif ( $interval == 'week' )
$plusone = date ( " Y-W " , strtotime ( '+1 ' . $interval . '' , strtotime ( $prev )));
elseif ( $interval == 'month' )
$plusone = date ( " Y-m " , strtotime ( '+1 ' . $interval . '' , strtotime ( $prev . '-1' )));
elseif ( $interval == 'year' )
$plusone = date ( " Y " , strtotime ( '+1 ' . $interval . '' , strtotime ( $prev . '-1-1' )));
$i = 0 ;
while ( $plusone != $row [ 'datedate' ] && $prev != 0 ) {
if ( $interval == 'hour' || $interval == 'day' ) {} else break ;
echo '<div class="time_span ' . $color . '_' . $row [ 'color' ] . '" style="_WIDTH_; height:' . ( $sumarium ? ( $c / $sum ) : '0' ) . '%" title="' . $row [ 'datedate' ] . ' (0)"></div>' ;
$cols ++ ;
if ( $interval == 'hour' )
$plusone = date ( " Y-m-d G " , strtotime ( '+1 ' . $interval . '' , strtotime ( $plusone . ':00' )));
elseif ( $interval == 'day' )
$plusone = date ( " Y-m-d " , strtotime ( '+1 ' . $interval . '' , strtotime ( $plusone )));
elseif ( $interval == 'week' )
$plusone = date ( " Y-W " , strtotime ( '+1 ' . $interval . '' , strtotime ( $plusone )));
elseif ( $interval == 'month' )
$plusone = date ( " Y-m " , strtotime ( '+1 ' . $interval . '' , strtotime ( $plusone . '-1' )));
elseif ( $interval == 'year' )
$plusone = date ( " Y " , strtotime ( '+1 ' . $interval . '' , strtotime ( $plusone . '-1-1' )));
if ( $i ++ > 100 ) { break ; } // safety break
}
$prev = $row [ 'datedate' ];
$c += $row [ 'count' ];
if ( $prev_color != $row [ 'color' ]) {
if ( $color == 'year' ) $label = date ( 'Y' , strtotime ( $row [ 'date' ]));
if ( $color == 'month' ) $label = date ( 'M Y' , strtotime ( $row [ 'date' ]));
if ( $color == 'day' ) $label = date ( 'j.n.Y' , strtotime ( $row [ 'date' ]));
2022-03-24 13:21:22 +01:00
/* echo '<span style="position: absolute; bottom: -15px; width: 90px;">' . $label ;
2020-08-14 13:36:36 +02:00
if ( ! $sumarium ) echo ' <span style="color:darkgray; font-size:70%" title="x̄ = ' . $avg [ $row [ 'color' ]] . '">(' . $avg [ $row [ 'color' ]] . ')</span>' ;
2022-03-24 13:21:22 +01:00
echo '</span>' ; */
2020-08-14 13:36:36 +02:00
$prev_color = $row [ 'color' ];
}
echo '<div class="time_span ' . $color . '_' . $row [ 'color' ] . '" style="_WIDTH_; height:' . ( $sumarium ? ( $c / $sum ) : ( $row [ 'count' ] / $max )) . '%" title="' . $row [ 'datedate' ] . ' (' . number_format (( $sumarium ? $c : $row [ 'count' ]), 0 , ',' , '.' ) . ')"></div>' ;
$cols ++ ;
}
echo '</div>' ;
// sirino nastavimo na koncu, ko vidimo koliko je stolpcev (zaradi praznih)
$var = ob_get_clean ();
if ( $cols == 0 ) $cols = 1 ;
$var = str_replace ( '_WIDTH_' , 'width:' . ( 100 / $cols ) . '%' , $var );
echo $var ;
ob_start ();
}
private function diagnostics_show_interval ( $t ) {
2021-09-29 10:37:17 +02:00
global $lang ;
2022-03-24 13:21:22 +01:00
2020-08-14 13:36:36 +02:00
echo '<form name="intr" action="index.php" method="get">' ;
echo '<input type="hidden" name="a" value="diagnostics">' ;
echo '<input type="hidden" name="t" value="' . $t . '">' ;
2022-03-24 13:21:22 +01:00
2020-08-14 13:36:36 +02:00
$testdata = ( isset ( $_GET [ 'testdata' ]) && $_GET [ 'testdata' ] == '1' ) ? 1 : 0 ;
$testdataauto = ( isset ( $_GET [ 'testdataauto' ]) && $_GET [ 'testdataauto' ] == '1' ) ? 1 : 0 ;
$uvoz = ( isset ( $_GET [ 'uvoz' ]) && $_GET [ 'uvoz' ] == '1' ) ? 1 : 0 ;
$ustrezni = ( isset ( $_GET [ 'ustrezni' ]) && $_GET [ 'ustrezni' ] == '0' ) ? 0 : 1 ;
$delnoustrezni = ( isset ( $_GET [ 'delnoustrezni' ]) && $_GET [ 'delnoustrezni' ] == '0' ) ? 0 : 1 ;
$neustrezni = ( isset ( $_GET [ 'neustrezni' ]) && $_GET [ 'neustrezni' ] == '1' ) ? 1 : 0 ;
$mailsent = ( isset ( $_GET [ 'mailsent' ]) && $_GET [ 'mailsent' ] == '1' ) ? 1 : 0 ;
$language = ( isset ( $_GET [ 'language' ])) ? $_GET [ 'language' ] : 0 ;
2020-12-01 10:09:05 +01:00
2022-03-24 13:21:22 +01:00
// Nastavitve nad tabelo
echo '<div class="data_table_top_holder graphs">' ;
2020-12-01 10:09:05 +01:00
2022-03-24 13:21:22 +01:00
//Interval
echo '<div class="osnova">' ;
echo 'Interval:' ;
2020-12-01 10:09:05 +01:00
2022-03-24 13:21:22 +01:00
echo '<select class="dropdown" name="interval" onchange="document.intr.submit();">' ;
if ( ! in_array ( $t , array ( 'time_span_yearly' , 'time_span' )) ) {
echo '<option value="hour" ' . ( $_GET [ 'interval' ] == 'hour' ? 'selected' : '' ) . '>' . $lang [ 'srv_diagnostics_interval_hour' ] . '</option>' ;
}
echo '<option value="day" ' . ( $_GET [ 'interval' ] == 'day' ? 'selected' : '' ) . '>' . $lang [ 'srv_diagnostics_interval_day' ] . '</option>' ;
echo '<option value="week" ' . ( $_GET [ 'interval' ] == 'week' ? 'selected' : '' ) . '>' . $lang [ 'srv_diagnostics_interval_week' ] . '</option>' ;
echo '<option value="month" ' . ( $_GET [ 'interval' ] == 'month' ? 'selected' : '' ) . '>' . $lang [ 'srv_diagnostics_interval_month' ] . '</option>' ;
echo '<option value="year" ' . ( $_GET [ 'interval' ] == 'year' ? 'selected' : '' ) . '>' . $lang [ 'srv_diagnostics_interval_year' ] . '</option>' ;
echo '</select>' ;
echo '</div>' ;
//Upoštevane enote
echo '<div class="dataSettingsBasic">' ;
echo ' <button id="toggleDataCheckboxes" class="small white-blue" onClick="toggleAktivnostCheckboxes(\'units\'); return false;"><span class="faicon plus"></span>' . $lang [ 'srv_diagnostics_upostevane' ] . '</button>' ;
echo '</div>' ;
// Dodatne nastavitve, ki se razprejo
echo '<div id="dataSettingsCheckboxes" class="displayNone">' ;
echo ' <div class="dataSettingsCheckboxes_holder">' ;
// Upoštevaj enote
echo '<div class="setting_holder">' ;
echo '<span class="setting_title">' . $lang [ 'srv_diagnostics_upostevaj' ] . '</span>' ;
2020-08-14 13:36:36 +02:00
echo '<input type="hidden" name="uvoz" id="uvoz_hidden" value="' . $uvoz . '" />' ;
2022-03-24 13:21:22 +01:00
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="testdata" name="testdata" ' . ( $testdata == 1 ? ' checked="checked"' : '' ) . '"><label for="testdata">' . $lang [ 'srv_diagnostics_filter_test' ] . '</label>' ;
echo '</div>' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="testdataauto" name="testdataauto" ' . ( $testdataauto == 1 ? ' checked="checked"' : '' ) . '"><label for="testdataauto">' . $lang [ 'srv_diagnostics_filter_autotest' ] . '</label>' ;
echo '</div>' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" id="uvoz" ' . ( $uvoz == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#uvoz_hidden\').val(' . ( $uvoz == 1 ? '0' : '1' ) . ');"><label for="uvoz">' . $lang [ 'srv_diagnostics_filter_import' ] . '</label>' ;
echo '</div>' ;
2020-08-14 13:36:36 +02:00
echo '<input type="hidden" name="ustrezni" id="ustrezni_hidden" value="' . $ustrezni . '" />' ;
2022-03-24 13:21:22 +01:00
echo '<div class="setting_item">' ;
echo '</span><input type="checkbox" id="ustrezni" ' . ( $ustrezni == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#ustrezni_hidden\').val(' . ( $ustrezni == 1 ? '0' : '1' ) . ');"><label for="ustrezni">' . $lang [ 'srv_diagnostics_filter_6' ] . '</label>' ;
echo '</div>' ;
2020-08-14 13:36:36 +02:00
echo '<input type="hidden" name="delnoustrezni" id="delnoustrezni_hidden" value="' . $delnoustrezni . '" />' ;
2022-03-24 13:21:22 +01:00
echo '<div class="setting_item">' ;
echo '<input type="checkbox" id="delnoustrezni" ' . ( $delnoustrezni == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#delnoustrezni_hidden\').val(' . ( $delnoustrezni == 1 ? '0' : '1' ) . ');"><label for="delnoustrezni">' . $lang [ 'srv_diagnostics_filter_5' ] . '</label>' ;
echo '</div>' ;
2020-08-14 13:36:36 +02:00
echo '<input type="hidden" name="neustrezni" id="neustrezni_hidden" value="' . $neustrezni . '" />' ;
2022-03-24 13:21:22 +01:00
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="neustrezni" ' . ( $neustrezni == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#neustrezni_hidden\').val(' . ( $neustrezni == 1 ? '0' : '1' ) . ');"><label for="neustrezni">' . $lang [ 'srv_diagnostics_filter_34' ] . '</label>' ;
echo '</div>' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="mailsent" name="mailsent" ' . ( $mailsent == 1 ? ' checked="checked"' : '' ) . '><label for="mailsent">' . $lang [ 'srv_diagnostics_filter_012' ] . '</label>' ;
echo '</div>' ;
2020-08-14 13:36:36 +02:00
2022-03-24 13:21:22 +01:00
echo '</div>' ;
echo '<div id="jezikpaket">' ;
//Jezik
echo '<div class="setting_holder">' ;
echo '<span class="setting_title">' . $lang [ 'srv_diagnostics_jezik' ] . '</span>' ;
echo '<select class="dropdown w130" id="language" name="language">' ;
2020-08-14 13:36:36 +02:00
echo '<option value="0" ' . ( $language == '0' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_filter_lang_all' ] . '</option>' ;
echo '<option value="1" ' . ( $language == '1' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_filter_lang_slo' ] . '</option>' ;
echo '<option value="2" ' . ( $language == '2' ? ' selected' : '' ) . '>' . $lang [ 'srv_diagnostics_filter_lang_ang' ] . '</option>' ;
2022-03-24 13:21:22 +01:00
echo '</select>' ;
echo '</div>' ;
//Paketi
if ( AppSettings :: getInstance () -> getSetting ( 'app_settings-commercial_packages' ) === true ){
$package_1ka = ( isset ( $_GET [ 'package_1ka' ]) && $_GET [ 'package_1ka' ] == '0' ) ? 0 : 1 ;
$package_2ka = ( isset ( $_GET [ 'package_2ka' ]) && $_GET [ 'package_2ka' ] == '0' ) ? 0 : 1 ;
$package_3ka = ( isset ( $_GET [ 'package_3ka' ]) && $_GET [ 'package_3ka' ] == '0' ) ? 0 : 1 ;
echo '<div class="setting_holder">' ;
echo '<span class="setting_title">' . $lang [ 'srv_narocilo_paket' ] . '</span>' ;
echo '<input type="hidden" name="package_1ka" id="package_1ka_hidden" value="' . $package_1ka . '" />' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="package_1ka" ' . ( $package_1ka == 1 ? ' checked="checked"' : '' ) . '" onchange="$(\'#package_1ka_hidden\').val(' . ( $package_1ka == 1 ? '0' : '1' ) . ');"><label for="package_1ka">1KA</label>' ;
echo '</div>' ;
echo '<input type="hidden" name="package_2ka" id="package_2ka_hidden" value="' . $package_2ka . '" />' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="package_2ka" ' . ( $package_2ka == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#package_2ka_hidden\').val(' . ( $package_2ka == 1 ? '0' : '1' ) . ');"><label for="package_2ka">2KA</label>' ;
echo '</div>' ;
echo '<input type="hidden" name="package_3ka" id="package_3ka_hidden" value="' . $package_3ka . '" />' ;
echo '<div class="setting_item">' ;
echo '<input type="checkbox" value="1" id="package_3ka" ' . ( $package_3ka == 1 ? ' checked="checked"' : '' ) . ' onchange="$(\'#package_3ka_hidden\').val(' . ( $package_3ka == 1 ? '0' : '1' ) . ');"><label for="package_3ka">3KA</label>' ;
echo '</div>' ;
echo '</div>' ;
}
echo '</div>' ; //div#jezikpaket
// Gumb filtriraj
echo '<div class="button_holder">' ;
echo ' <button class="small blue" onClick="this.form.submit();">' . $lang [ 'srv_diagnostics_filter' ] . '</button>' ;
echo '</div>' ;
2020-08-14 13:36:36 +02:00
2022-03-24 13:21:22 +01:00
echo ' </div>' ;
echo '</div>' ; //div#dataSettingsCheckboxes
2022-03-28 12:57:04 +02:00
// Klik izven razprith nastavitev - zapremo okno
echo ' < script >
$ ( document ) . mouseup ( function ( e ){
var container1 = $ ( " #dataSettingsCheckboxes " );
if ( ! container1 . is ( e . target ) && container1 . has ( e . target ) . length === 0 ){
$ ( " #dataSettingsCheckboxes " ) . addClass ( " displayNone " );
}
});
</ script > ' ;
2022-03-24 13:21:22 +01:00
echo '</div>' ; // div.data_table_top_holder
echo '</form>' ;
2020-08-14 13:36:36 +02:00
}
private function diagnostics_get_interval ( $def = '' ) {
if ( $_GET [ 'interval' ] == '' ) $_GET [ 'interval' ] = $def ;
if ( $_GET [ 'interval' ] == 'year' ) {
$interval [ 'srv_anketa' ] = " YEAR(srv_anketa.insert_time) " ;
$interval [ 'users' ] = " YEAR(users.when_reg) " ;
$interval [ 'srv_user' ] = " YEAR(srv_user.time_insert) " ;
$interval [ 'srv_tracking_active' ] = " YEAR(srv_tracking_active.datetime) " ;
} elseif ( $_GET [ 'interval' ] == 'month' ) {
$interval [ 'srv_anketa' ] = " CONCAT( YEAR(srv_anketa.insert_time), '-', MONTH(srv_anketa.insert_time) ) " ;
$interval [ 'users' ] = " CONCAT( YEAR(users.when_reg), '-', MONTH(users.when_reg) ) " ;
$interval [ 'srv_user' ] = " CONCAT( YEAR(srv_user.time_insert), '-', MONTH(srv_user.time_insert) ) " ;
$interval [ 'srv_tracking_active' ] = " CONCAT( YEAR(srv_tracking_active.datetime), '-', MONTH(srv_tracking_active.datetime) ) " ;
} elseif ( $_GET [ 'interval' ] == 'week' ) {
$interval [ 'srv_anketa' ] = " CONCAT( YEAR(srv_anketa.insert_time), '-', WEEKOFYEAR(srv_anketa.insert_time) ) " ;
$interval [ 'users' ] = " CONCAT( YEAR(users.when_reg), '-', WEEKOFYEAR(users.when_reg) ) " ;
$interval [ 'srv_user' ] = " CONCAT( YEAR(srv_user.time_insert), '-', WEEKOFYEAR(srv_user.time_insert) ) " ;
$interval [ 'srv_tracking_active' ] = " CONCAT( YEAR(srv_tracking_active.datetime), '-', WEEKOFYEAR(srv_tracking_active.datetime) ) " ;
} elseif ( $_GET [ 'interval' ] == 'day' ) {
$interval [ 'srv_anketa' ] = " DATE(srv_anketa.insert_time) " ;
$interval [ 'users' ] = " DATE(users.when_reg) " ;
$interval [ 'srv_user' ] = " DATE(srv_user.time_insert) " ;
$interval [ 'srv_tracking_active' ] = " DATE(datetime) " ;
} elseif ( $_GET [ 'interval' ] == 'hour' ) {
$interval [ 'srv_anketa' ] = " CONCAT( DATE(srv_anketa.insert_time), ' ', HOUR(srv_anketa.insert_time)) " ;
$interval [ 'users' ] = " CONCAT( DATE(users.when_reg), ' ', HOUR(users.when_reg)) " ;
$interval [ 'srv_user' ] = " CONCAT( DATE(srv_user.time_insert), ' ', HOUR(srv_user.time_insert)) " ;
$interval [ 'srv_tracking_active' ] = " CONCAT( DATE(srv_tracking_active.datetime), ' ', HOUR(srv_tracking_active.datetime)) " ;
}
return $interval ;
}
// Vrnemo filter za srv_user (filtriranje testnih podatkov, preview, email vabil, ustreznih...)
private function diagnostics_get_user_settings (){
2020-12-01 10:09:05 +01:00
2020-08-14 13:36:36 +02:00
$testdata = ( isset ( $_GET [ 'testdata' ]) && $_GET [ 'testdata' ] == '1' ) ? 1 : 0 ;
$testdataauto = ( isset ( $_GET [ 'testdataauto' ]) && $_GET [ 'testdataauto' ] == '1' ) ? 1 : 0 ;
$uvoz = ( isset ( $_GET [ 'uvoz' ]) && $_GET [ 'uvoz' ] == '1' ) ? 1 : 0 ;
$ustrezni = ( isset ( $_GET [ 'ustrezni' ]) && $_GET [ 'ustrezni' ] == '0' ) ? 0 : 1 ;
$delnoustrezni = ( isset ( $_GET [ 'delnoustrezni' ]) && $_GET [ 'delnoustrezni' ] == '0' ) ? 0 : 1 ;
$neustrezni = ( isset ( $_GET [ 'neustrezni' ]) && $_GET [ 'neustrezni' ] == '1' ) ? 1 : 0 ;
$mailsent = ( isset ( $_GET [ 'mailsent' ]) && $_GET [ 'mailsent' ] == '1' ) ? 1 : 0 ;
2020-12-01 10:09:05 +01:00
2020-08-14 13:36:36 +02:00
// Vedno filtriramo preview vnose
$filter = " srv_user.preview='0' " ;
// Filter testnih in avtomatsko generiranih testnih
$filter .= " AND (srv_user.testdata='0' " ;
if ( $testdata == 1 )
$filter .= " OR srv_user.testdata='1' " ;
if ( $testdataauto == 1 )
$filter .= " OR srv_user.testdata='2' " ;
$filter .= " ) " ;
$filter .= " AND srv_user.last_status!='-1' AND ( " ;
if ( $ustrezni == 1 ){
$filter .= " srv_user.last_status='6' OR " ;
}
if ( $delnoustrezni == 1 ){
$filter .= " srv_user.last_status='5' OR " ;
}
if ( $neustrezni == 1 ){
$filter .= " srv_user.last_status='3' OR srv_user.last_status='4' OR " ;
}
if ( $mailsent == 1 ){
$filter .= " srv_user.last_status='0' OR srv_user.last_status='1' OR srv_user.last_status='2' OR " ;
}
if ( substr ( $filter , - 2 ) == 'OR' ){
$filter = substr ( $filter , 0 , - 2 );
$filter .= " ) " ;
}
else
$filter .= " srv_user.last_status NOT IN ('0','1','2','3','4','5','6')) " ;
// Filtriramo uvozene podatke
if ( $uvoz == 0 ){
$filter .= " AND !(srv_user.referer='' AND testdata='0' AND ip='' AND recnum='0') " ;
2020-12-01 10:09:05 +01:00
}
2020-08-14 13:36:36 +02:00
return $filter ;
2020-12-01 10:09:05 +01:00
}
// Filter po paketih, ce jih imamo
private function diagnostics_get_user_package (){
$filter = '' ;
2021-09-29 10:37:17 +02:00
if ( AppSettings :: getInstance () -> getSetting ( 'app_settings-commercial_packages' ) === true ){
2020-12-01 10:09:05 +01:00
$package_1ka = ( isset ( $_GET [ 'package_1ka' ]) && $_GET [ 'package_1ka' ] == '0' ) ? 0 : 1 ;
$package_2ka = ( isset ( $_GET [ 'package_2ka' ]) && $_GET [ 'package_2ka' ] == '0' ) ? 0 : 1 ;
$package_3ka = ( isset ( $_GET [ 'package_3ka' ]) && $_GET [ 'package_3ka' ] == '0' ) ? 0 : 1 ;
if ( $package_1ka == 0 ){
$filter .= " ((user_access.package_id='2' OR user_access.package_id='3') AND user_access.time_expire > NOW()) AND " ;
}
if ( $package_2ka == 0 ){
2020-12-14 11:48:50 +01:00
$filter .= " (user_access.package_id!='2' OR user_access.time_expire < NOW() OR user_access.package_id IS NULL) AND " ;
2020-12-01 10:09:05 +01:00
}
if ( $package_3ka == 0 ){
2020-12-14 11:48:50 +01:00
$filter .= " (user_access.package_id!='3' OR user_access.time_expire < NOW() OR user_access.package_id IS NULL) AND " ;
2020-12-01 10:09:05 +01:00
}
}
return $filter ;
}
2020-08-14 13:36:36 +02:00
// Vrnemo filter za srv_user (filtriranje testnih podatkov, preview, email vabil, ustreznih...)
private function diagnostics_get_lang_filter (){
$language = ( isset ( $_GET [ 'language' ])) ? $_GET [ 'language' ] : 0 ;
// Filtriramo po jeziku urednika
$filter = '' ;
if ( $language > 0 ){
$filter .= " srv_anketa.lang_admin=' " . $language . " ' AND " ;
}
return $filter ;
}
}