Added Last 15 days recents login chart - Refs #8081

1.10.x
José Loguercio 10 years ago
parent 3bb91f1219
commit 7532197623
  1. 38
      main/admin/statistics/index.php
  2. 14
      main/inc/lib/statistics.lib.php

@ -11,20 +11,25 @@ require_once '../../inc/global.inc.php';
api_protect_admin_script();
$interbreadcrumb[] = array('url' => '../index.php', 'name' => get_lang('PlatformAdmin'));
$htmlHeadXtra[] = api_get_js('chartjs/Chart.min.js');
$htmlHeadXtra[] = ''
. '<script type="text/javascript">'
. '$(document).ready(function() {'
. '$.ajax({'
. 'url: "'. api_get_path(WEB_CODE_PATH) .'inc/ajax/statistics.ajax.php?a=recentlogins",'
. 'type: "POST",'
. 'success: function(data) {'
. 'Chart.defaults.global.responsive = true;'
. 'var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Line(data);'
. '}'
. '});'
. '});'
. '</script>';
$report = isset($_REQUEST['report']) ? $_REQUEST['report'] : '';
if ($report) {
$htmlHeadXtra[] = api_get_js('chartjs/Chart.min.js');
$htmlHeadXtra[] = ''
. '<script type="text/javascript">'
. '$(document).ready(function() {'
. '$.ajax({'
. 'url: "'. api_get_path(WEB_CODE_PATH) .'inc/ajax/statistics.ajax.php?a=recentlogins",'
. 'type: "POST",'
. 'success: function(data) {'
. 'Chart.defaults.global.responsive = true;'
. 'var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Line(data);'
. '}'
. '});'
. '});'
. '</script>';
}
$tool_name = get_lang('Statistics');
Display::display_header($tool_name);
@ -75,7 +80,7 @@ echo '</tr></table>';
$course_categories = Statistics::getCourseCategories();
echo '<br/><br/>';//@todo: spaces between elements should be handled in the css, br should be removed if only there for presentation
$report = isset($_REQUEST['report']) ? $_REQUEST['report'] : '';
switch ($report) {
case 'courses':
// total amount of courses
@ -116,7 +121,8 @@ switch ($report) {
Statistics::printStats(get_lang('Students'), $students);
break;
case 'recentlogins':
echo '<canvas class="col-md-12" id="canvas" ></canvas>';
echo '<h2>'. sprintf(get_lang('LastXDays'), '15') . '</h2>';
echo '<canvas class="col-md-12" id="canvas" height="100px" ></canvas>';
Statistics::printRecentLoginStats();
Statistics::printRecentLoginStats(true);
break;

@ -538,7 +538,7 @@ class Statistics
*/
public static function getRecentLoginStats($distinct = false)
{
$totalLogin = array();
$totalLogin = [];
$table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LOGIN);
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$current_url_id = api_get_current_access_url_id();
@ -554,13 +554,11 @@ class Statistics
if ($distinct) {
$field = 'DISTINCT(login_user_id)';
}
$sql[get_lang('ThisDay')] = "SELECT count($field) AS number FROM $table $table_url WHERE DATE_ADD(login_date, INTERVAL 1 DAY) >= '$now' $where_url";
$sql[get_lang('Last7days')] = "SELECT count($field) AS number FROM $table $table_url WHERE DATE_ADD(login_date, INTERVAL 7 DAY) >= '$now' $where_url";
$sql[get_lang('Last31days')] = "SELECT count($field) AS number FROM $table $table_url WHERE DATE_ADD(login_date, INTERVAL 31 DAY) >= '$now' $where_url";
foreach ($sql as $index => $query) {
$res = Database::query($query);
$obj = Database::fetch_object($res);
$totalLogin[$index] = $obj->number;
$sql = "SELECT count($field) AS number, date(login_date) as login_date FROM $table $table_url WHERE DATE_ADD(login_date, INTERVAL 15 DAY) >= '$now' $where_url GROUP BY date(login_date)";
$res = Database::query($sql);
while($row = Database::fetch_array($res,'ASSOC')){
$totalLogin[$row['login_date']] = $row['number'];
}
return $totalLogin;

Loading…
Cancel
Save