aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/stats.php136
-rw-r--r--doc/ChangeLog4
-rw-r--r--include/config_default.inc.php11
-rw-r--r--include/functions.inc.php3
-rw-r--r--language/en_UK.iso-8859-1/admin.lang.php9
-rw-r--r--language/fr_FR.iso-8859-1/admin.lang.php9
-rw-r--r--template/yoga/admin/stats.tpl32
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='<a href='.$url_back.'>'.$lang['stats_day_title'].'</a>';
+ $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='<a href='.$url_back.'>'.$lang['stats_day_title'].'</a>';
+ $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élection';
$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 @@
<h3>{L_STAT_TITLE}</h3>
<img class="image" src="{IMG_REPORT}" alt="{L_STAT_MONTHLY_ALT}" />
-<h3>{L_STAT_MONTH_TITLE}</h3>
+<h3>{L_STAT_DETAIL_TITLE}</h3>
<table class="table2" width="60%">
<tr class="throw">
<th>{L_VALUE}</th>
@@ -20,4 +20,34 @@
<td>{statrow.IMAGES}</td>
</tr>
<!-- END statrow -->
+
+<table class="table2" width="98%">
+<tr class="throw">
+ <th>{L_STAT_HOUR}</th>
+ <th>{L_STAT_LOGIN}</th>
+ <th>{L_STAT_ADDR}</th>
+ <th>{L_STAT_CATEGORY}</th>
+ <th>{L_STAT_FILE}</th>
+ <th>{L_STAT_PICTURE}</th>
+</tr>
+<h3>{L_DATE_TITLE}</h3>
+<!-- BEGIN detail -->
+ <tr class="{detail.T_CLASS}">
+ <td nowrap>{detail.HOUR}</td>
+ <td>{detail.LOGIN}</td>
+ <td>{detail.IP}</td>
+ <td>{detail.CATEGORY}</td>
+ <td>{detail.FILE}</td>
+ <td>{detail.PICTURE}</td>
+ </tr>
+<!-- END detail -->
+
+</table>
+<br />
+<!-- BEGIN navigation -->
+<div class="admin">
+{navigation.NAV_BAR}
+</div>
+<!-- END navigation -->
+<br />
</table>