From a2dd7f1ff5fba1d57e72c19a805aa0793b6cefd7 Mon Sep 17 00:00:00 2001 From: Patrick Cool Date: Mon, 23 Nov 2009 15:47:56 +0100 Subject: [PATCH] bugfix: Administration -> Reporting -> Latest Access -> enter date -> change sorting => all results are gone bugfix: list did not display the last accesses but the accesses that were done prior to x days --- main/admin/statistics/statistics.lib.php | 65 ++++++++++++------------ 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/main/admin/statistics/statistics.lib.php b/main/admin/statistics/statistics.lib.php index 6dba3b4363..f9ca789c9f 100644 --- a/main/admin/statistics/statistics.lib.php +++ b/main/admin/statistics/statistics.lib.php @@ -413,45 +413,44 @@ class Statistics $form->add_textfield('date_diff',get_lang('Days'),true); $form->addRule('date_diff','InvalidNumber','numeric'); $form->addElement('submit','ok',get_lang('Ok')); - $defaults['date_diff'] = 60; + if (!isset($_GET['date_diff'])) { + $defaults['date_diff'] = 60; + } else { + $defaults['date_diff'] = Security::Remove_XSS($_GET['date_diff']); + } $form->setDefaults($defaults); - if($form->validate()) { - $form->display(); - $values = $form->exportValues(); - $date_diff = $values['date_diff']; - $table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS); - $sql = "SELECT * FROM $table GROUP BY access_cours_code HAVING access_cours_code <> '' AND DATEDIFF( NOW() , access_date ) >= ". $date_diff; - $res = Database::query($sql,__FILE__,__LINE__); - $number_of_courses = Database::num_rows($res); - $sql .= ' ORDER BY '.$columns[$column].' '.$sql_order[$direction]; - $from = ($page_nr -1) * $per_page; - $sql .= ' LIMIT '.$from.','.$per_page; - echo '

'.get_lang('LastAccess').' >= '.$date_diff.' '.get_lang('Days').'

'; - $res = Database::query($sql, __FILE__, __LINE__); - if (Database::num_rows($res) > 0) - { - $courses = array (); - while ($obj = Database::fetch_object($res)) - { - $course = array (); - $course[]= ''.$obj->access_cours_code.' '; - $course[] = $obj->access_date; - $courses[] = $course; - } - $parameters['action'] = 'courselastvisit'; - $parameters['date_diff'] = $date_diff; - $table_header[] = array ("Coursecode", true); - $table_header[] = array ("Last login", true); - Display :: display_sortable_table($table_header, $courses, array ('column'=>$column,'direction'=>$direction), array (), $parameters); - } - else + $form->display(); + $values = $form->exportValues(); + $date_diff = $values['date_diff']; + $table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS); + $sql = "SELECT * FROM $table GROUP BY access_cours_code HAVING access_cours_code <> '' AND DATEDIFF( NOW() , access_date ) <= ". $date_diff; + $res = Database::query($sql,__FILE__,__LINE__); + $number_of_courses = Database::num_rows($res); + $sql .= ' ORDER BY '.$columns[$column].' '.$sql_order[$direction]; + $from = ($page_nr -1) * $per_page; + $sql .= ' LIMIT '.$from.','.$per_page; + echo '

'.get_lang('LastAccess').' >= '.$date_diff.' '.get_lang('Days').'

'; + $res = Database::query($sql, __FILE__, __LINE__); + if (Database::num_rows($res) > 0) + { + $courses = array (); + while ($obj = Database::fetch_object($res)) { - echo get_lang('NoSearchResults'); + $course = array (); + $course[]= '
'.$obj->access_cours_code.' '; + $course[] = $obj->access_date; + $courses[] = $course; } + $parameters['action'] = 'courselastvisit'; + $parameters['date_diff'] = $date_diff; + $parameters['action'] = 'courselastvisit'; + $table_header[] = array ("Coursecode", true); + $table_header[] = array ("Last login", true); + Display :: display_sortable_table($table_header, $courses, array ('column'=>$column,'direction'=>$direction), array (), $parameters); } else { - $form->display(); + echo get_lang('NoSearchResults'); } } }