From 889b1240cd81511850ea8ad900cb941e35308b52 Mon Sep 17 00:00:00 2001 From: volcom Date: Mon, 17 Oct 2005 07:21:30 +0000 Subject: * new: history details by month,day git-svn-id: http://piwigo.org/svn/trunk@894 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/stats.php | 136 ++++++++++++++++++++++++++++++- doc/ChangeLog | 4 + include/config_default.inc.php | 11 +++ include/functions.inc.php | 3 + language/en_UK.iso-8859-1/admin.lang.php | 9 ++ language/fr_FR.iso-8859-1/admin.lang.php | 9 ++ template/yoga/admin/stats.tpl | 32 +++++++- 7 files changed, 202 insertions(+), 2 deletions(-) diff --git a/admin/stats.php b/admin/stats.php index cd72ec81e..1cc54db0c 100644 --- a/admin/stats.php +++ b/admin/stats.php @@ -35,7 +35,15 @@ $nls_value_title = $lang['w_month']; $group_clause = "DATE_FORMAT(date,'%Y-%m') DESC"; $where_clause = "1"; -if (isset($_GET['month']) && isset($_GET['year']) ) + +if (isset($_GET['day']) && isset($_GET['month']) && isset($_GET['year']) ) +{ + $url_img .= 'dayly_stats.img.php?year='.$_GET['year'].'&month='.$_GET['month'].'&day='.$_GET['day']; + $nls_value_title = $lang['w_day']; + $group_clause = "DATE_FORMAT(date,'%Y-%m-%d') ASC"; + $where_clause = "(YEAR(date) = ".$_GET['year']." AND MONTH(date) = ".$_GET['month']." )"; +} +elseif (isset($_GET['month']) && isset($_GET['year']) ) { $url_img .= 'monthly_stats.img.php?year='.$_GET['year'].'&month='.$_GET['month']; $nls_value_title = $lang['w_day']; @@ -47,7 +55,35 @@ else $url_img .= 'global_stats.img.php'; } + //----------------------------------------------------- template initialization +if (isset($_GET['day']) && isset($_GET['month']) && isset($_GET['year']) ) +{ + $date_of_day=$_GET['day'].' '.$lang['month'][$_GET['month']].' '.$_GET['year']; + $title_page=$lang['stats_day_title'].' du '.$date_of_day; + $url_back = PHPWG_ROOT_PATH."admin.php?page=stats"; + $url_back = add_session_id($url_back); + $title_details=''.$lang['stats_day_title'].''; + $title_day=$lang['stats_day_details_title']." ".$date_of_day; +} +elseif ( isset($_GET['month']) && isset($_GET['year']) ) +{ + $date_of_day=$lang['month'][$_GET['month']].' '.$_GET['year']; + $title_page=$lang['stats_month_title'].' : '.$date_of_day; + $url_back = PHPWG_ROOT_PATH."admin.php?page=stats"; + $url_back = add_session_id($url_back); + $title_details=''.$lang['stats_day_title'].''; + $title_day=$lang['today']; +} +else +{ + $date_of_day=''; + $title_page=$lang['stats_title']; + $title_details=$lang['stats_month_title']; + $title_day=$lang['today']; +} + + $template->set_filenames( array('stats'=>'admin/stats.tpl') ); $template->assign_vars(array( @@ -58,6 +94,16 @@ $template->assign_vars(array( 'L_STAT_TITLE'=>$lang['stats_title'], 'L_STAT_MONTH_TITLE'=>$lang['stats_month_title'], 'L_STAT_MONTHLY_ALT'=>$lang['stats_global_graph_title'], + 'L_STAT_TITLE'=>$title_page, + 'L_STAT_DETAIL_TITLE'=>$title_details, + 'L_DATE_TITLE'=>$title_day, + 'L_STAT_MONTHLY_ALT'=>$lang['stats_global_graph_title'], + 'L_STAT_HOUR'=>$lang['stats_hour'], + 'L_STAT_LOGIN'=>$lang['stats_login'], + 'L_STAT_ADDR'=>$lang['stats_addr'], + 'L_STAT_CATEGORY'=>$lang['stats_category'], + 'L_STAT_FILE'=>$lang['stats_file'], + 'L_STAT_PICTURE'=>$lang['stats_picture'], 'IMG_REPORT'=>add_session_id($url_img) )); @@ -148,6 +194,94 @@ $nb_visitors = mysql_num_rows( $result ); $days = array(); $max_nb_visitors = 0; $max_pages_seen = 0; + +//----------------------------------------------------------- stats / jour + +if ( isset( $_GET['month'] ) && isset( $_GET['month'] ) && isset( $_GET['day'] ) ) +{ if ($_GET['day'] <10) {$current_day='0'; + $current_day.= $_GET['day'];} + else {$current_day = $_GET['day'];} + if ($_GET['month'] <10) {$current_month='0'; + $current_month.= $_GET['month'];} + else {$current_month = $_GET['month'];} + $current_year = $_GET['year']; +} + +else +{ $current_date = GetDate(); + if ($current_date['mday'] <10) {$current_day='0'; + $current_day.= $current_date['mday'];} + else {$current_day = $current_date['mday'];} + if ($current_date['mon'] <10) {$current_month='0'; + $current_month.= $current_date['mon'];} + else {$current_month = $current_date['mon'];} + $current_year = $current_date['year']; +} + +// Set WHERE clause +$where = ' WHERE DATE_FORMAT(date,\'%Y-%m-%d\') = \''.$current_year."-".$current_month."-".$current_day.'\''; + +// Set LIMIT clause +$limit = ' LIMIT '; +$page['start'] = 0; +if (isset($_GET['start']) and is_numeric($_GET['start'])) $page['start'] = abs($_GET['start']); +$limit .= $page['start']; +$limit .= ','.$conf['nb_logs_page']; + +$query = ' +SELECT DATE_FORMAT(date,\'%H:%i:%s\') AS hour, + login, + IP, + category, + file, + picture + FROM '.HISTORY_TABLE. + $where.' + ORDER BY date DESC'. + $limit. + ';'; + + +$result = pwg_query( $query ); + +$i=0; + +while ( $row = mysql_fetch_array( $result ) ) +{ + $class = ($i % 2)? 'row1':'row2'; $i++; + $template->assign_block_vars('detail',array( + 'HOUR'=>$row['hour'], + 'LOGIN'=>$row['login'], + 'IP'=>$row['IP'], + 'CATEGORY'=>$row['category'], + 'FILE'=>$row['file'], + 'PICTURE'=>$row['picture'], + 'T_CLASS'=>$class + )); + } + + +// Get total number of logs +$query = ' + SELECT COUNT(date) as nb_logs + FROM '.HISTORY_TABLE. + $where.' + ;'; + + $result = pwg_query($query); + $row = mysql_fetch_array($result); + $page['nb_logs']=$row['nb_logs']; + + //display nav bar + $url = $_SERVER['PHP_SELF'].'?page=stats&year='.$_GET['year']; + $url .= '&month='.$_GET['month'].'&day='.$_GET['day']; + $page['navigation_bar'] = + create_navigation_bar( $url, $page['nb_logs'],$page['start'],$conf['nb_logs_page'], 'admin' ); +$template->assign_block_vars('navigation', + array('NAV_BAR' => $page['navigation_bar']) + ); + //----------------------------------------------------------- sending html code $template->assign_var_from_handle('ADMIN_CONTENT', 'stats'); ?> + diff --git a/doc/ChangeLog b/doc/ChangeLog index 6e6e8c630..2d17c54dc 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2005-10-17 Pierrick LE GALL + + * new: history details by month,day + 2005-10-15 Pierrick LE GALL * modification: localized labels in Administration>Pictures>Caddie diff --git a/include/config_default.inc.php b/include/config_default.inc.php index e0c047f42..b6854946a 100644 --- a/include/config_default.inc.php +++ b/include/config_default.inc.php @@ -359,4 +359,15 @@ $conf['upload_maxheight_thumbnail'] = 100; // upload_maxwidth_thumbnail: maximum width authorized for the uploaded // thumbnails $conf['upload_maxwidth_thumbnail'] = 150; + +// +-----------------------------------------------------------------------+ +// | history | +// +-----------------------------------------------------------------------+ + +// nb_logs_page : how many logs to display on a page +$conf['nb_logs_page'] = 300; + +// history__admin : history admin visits ? +$conf['history_admin'] = false; + ?> diff --git a/include/functions.inc.php b/include/functions.inc.php index 0c4e462e9..261260b16 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -354,6 +354,8 @@ function pwg_log( $file, $category, $picture = '' ) if ($conf['log']) { + if ( ($conf['history_admin'] ) or ( (! $conf['history_admin']) and ($user['status'] != 'admin') ) ) + { $login = ($user['id'] == $conf['guest_id']) ? 'guest' : addslashes($user['username']); @@ -370,6 +372,7 @@ INSERT INTO '.HISTORY_TABLE.' ;'; pwg_query($query); } + } } // format_date returns a formatted date for display. The date given in diff --git a/language/en_UK.iso-8859-1/admin.lang.php b/language/en_UK.iso-8859-1/admin.lang.php index 6038c0175..a261138d9 100644 --- a/language/en_UK.iso-8859-1/admin.lang.php +++ b/language/en_UK.iso-8859-1/admin.lang.php @@ -262,9 +262,18 @@ $lang['selection'] = 'selection'; $lang['set to'] = 'set to'; $lang['singly represented'] = 'singly represented'; $lang['stats_global_graph_title'] = 'Pages seen by month'; +$lang['stats_dayly_graph_title'] = 'Pages seen by hour'; +$lang['stats_monthly_graph_title'] = 'Pages seen by day'; $lang['stats_month_title'] = 'Monthly statistics'; +$lang['stats_day_title'] = 'Dayly statistics'; $lang['stats_pages_seen'] = 'Pages seen'; $lang['stats_title'] = 'Last year statistics'; +$lang['stats_hour'] = 'Hour'; +$lang['stats_login'] = 'Login'; +$lang['stats_addr'] = 'IP Address'; +$lang['stats_category'] = 'Category'; +$lang['stats_file'] = 'File'; +$lang['stats_picture'] = 'Picture'; $lang['status'] = 'status'; $lang['storage'] = 'Directory'; $lang['sub-categories'] = 'sub-categories'; diff --git a/language/fr_FR.iso-8859-1/admin.lang.php b/language/fr_FR.iso-8859-1/admin.lang.php index efe62eecc..cccd8cd23 100644 --- a/language/fr_FR.iso-8859-1/admin.lang.php +++ b/language/fr_FR.iso-8859-1/admin.lang.php @@ -260,9 +260,18 @@ $lang['selection'] = 's $lang['set to'] = 'changer en'; $lang['singly represented'] = 'représentant fixe'; $lang['stats_global_graph_title'] = 'Pages vues par mois'; +$lang['stats_monthly_graph_title'] = 'Pages vues par jour'; +$lang['stats_dayly_graph_title'] = 'Pages vues par heure'; $lang['stats_month_title'] = 'Statistiques mensuelles'; +$lang['stats_day_title'] = 'Statistiques journalières'; $lang['stats_pages_seen'] = 'Pages vues'; $lang['stats_title'] = 'Statistiques de la dernière année'; +$lang['stats_hour'] = 'Heure'; +$lang['stats_login'] = 'Identifiant'; +$lang['stats_addr'] = 'Adresse IP'; +$lang['stats_category'] = 'Categorie'; +$lang['stats_file'] = 'Fichier'; +$lang['stats_picture'] = 'Image'; $lang['status'] = 'statut'; $lang['storage'] = 'Répertoire'; $lang['sub-categories'] = 'sous-catégories'; diff --git a/template/yoga/admin/stats.tpl b/template/yoga/admin/stats.tpl index da0fff82d..cd9530ee8 100644 --- a/template/yoga/admin/stats.tpl +++ b/template/yoga/admin/stats.tpl @@ -4,7 +4,7 @@

{L_STAT_TITLE}

{L_STAT_MONTHLY_ALT} -

{L_STAT_MONTH_TITLE}

+

{L_STAT_DETAIL_TITLE}

@@ -20,4 +20,34 @@ + +
{L_VALUE}{statrow.IMAGES}
+ + + + + + + + +

{L_DATE_TITLE}

+ + + + + + + + + + + +
{L_STAT_HOUR}{L_STAT_LOGIN}{L_STAT_ADDR}{L_STAT_CATEGORY}{L_STAT_FILE}{L_STAT_PICTURE}
{detail.HOUR}{detail.LOGIN}{detail.IP}{detail.CATEGORY}{detail.FILE}{detail.PICTURE}
+
+ +
+{navigation.NAV_BAR} +
+ +
-- cgit v1.2.3