Hello le web libre,
E-poussin a raison j ai le meme probleme et c est exactement ca c est le mois le plus charger
Hors ligne
mais ce qu ila fais c est deja super bien et utile...je lui tire mon chapeau
Hors ligne
moi i me manque plus qu un compteur live d user un ligne et c est la fete
Hors ligne
Bon, finalement, ca m'a pris moins de temps que je ne pensais.
* Alors, pour ceux qui ont installé la version 1.0 (du coup, j'ai mis en place un principe de version pour pas m'emmeler les pinceaux):
faut toucher aux fichiers admin/stats.php, include/config.inc.php, template/default/admin/stats.tpl:
- admin/stats.php:
remplacer le code qui se trouve à la fin du fichier, entre les balises // BEGIN Stats Detaillé et // END Stats Detaillé par:
if (isset( $_GET['month'] )) { $current_month = $_GET['month']; // Set WHERE clause $where = ' WHERE DATE_FORMAT(date,\'%Y-%m\') = \''.$current_month.'\''; // 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, 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( 'DATE'=>$row['date'], 'LOGIN'=>$row['login'], 'IP'=>gethostbyaddr($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&month='.$_GET['month']; $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']) ); }
- include/config.inc.php:
# #-----[ FIND ]------------------------------------------ # $conf['show_version'] = false; # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé // nb_logs_page : number of logs displayed per page $conf['nb_logs_page'] = 300; // END Stats Detaillé
- template/default/admin/stats.tpl:
# #-----[ FIND ]------------------------------------------ # <!-- END detail --> </table> <br /> # #-----[ AFTER, ADD ]------------------------------------------ # <!-- BEGIN navigation --> <div class="admin"> {navigation.NAV_BAR} </div> <!-- END navigation -->
* Pour les autres (ceux qui n'ont encore rien installé), voici le code complet pour l'install de cette version 1.1:
############################################################## ## MOD Title: Stats ## MOD Author: e-poussin (http://www.e-poussin.com/) ## MOD Description: - this MOD allow you to have detailed statistics ## - ce MOD vous permet d'avoir des statistiques détaillés ## MOD Version: 1.1 ## phpWebGallery Version: 1.4.1 ## ## Installation Level: Advanced ## Installation Time: 30 Minutes ## Files To Edit: ## admin/configuration.php ## admin/stats.php ## include/functions.inc.php ## include/config.inc.php ## language/en_UK.iso-8859-1/admin.lang.php ## language/fr_FR.iso-8859-1/admin.lang.php ## template/default/admin/configuration.tpl ## template/default/admin/stats.tpl ## ############################################################## ## Author Notes: ## ## ### Francais ### ## ## Ce MOD permet d'obtenir la liste de toutes les connexions à votre galerie, et ## de connaître les accès (quelle catégorie?, quelle photo?) réalisés par les ## utilisateurs (adresse, login) pour un mois donné. ## ## De plus, des paramètres supplémentaires vous permettent de ne pas historiser ## l'activité de l'administrateur, ni tracer l'activité d'utilisateurs se ## présentant avec une IP donnée. ## ############################################################## ## MOD History: ## ## 2005-09-16 - Version 1 ## - Initial Release ## ############################################################## ## Before Adding This MOD To Your PWG, You Should Back Up All Files Related To This MOD ############################################################## # #-----[ SQL ]------------------------------------------ # -- -- Don't forget to replace 'phpwebgallery_' with you owned table_prefix -- INSERT INTO `phpwebgallery_config` ( `param` , `value` , `comment` ) VALUES ('logadmin', 'true', 'log administrator actions'); INSERT INTO `phpwebgallery_config` ( `param` , `value` , `comment` ) VALUES ('IPList', '', 'List of IP addresses to ignore'); # #-----[ OPEN ]------------------------------------------ # admin/stats.php # #-----[ FIND ]------------------------------------------ # 'IMAGES'=>$pictures['p'], # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé MOD 'URL'=>PHPWG_ROOT_PATH.'admin.php?page=stats&month='.$current_month, // END Stats Detaillé MOD # #-----[ FIND ]------------------------------------------ # $max_pages_seen = 0; # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé MOD if (isset( $_GET['month'] )) { $current_month = $_GET['month']; // Set WHERE clause $where = ' WHERE DATE_FORMAT(date,\'%Y-%m\') = \''.$current_month.'\''; // 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, 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( 'DATE'=>$row['date'], 'LOGIN'=>$row['login'], 'IP'=>gethostbyaddr($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&month='.$_GET['month']; $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']) ); } // END Stats Detaillé MOD # #-----[ OPEN ]------------------------------------------ # admin/configuration.php # #-----[ FIND ]------------------------------------------ # $history_yes = ($conf['log']=='true')?'checked="checked"':''; # #-----[ BEFORE, ADD ]------------------------------------------ # // BEGIN Stats Detaillé MOD $history_admin_yes = ($conf['logadmin']=='true')?'checked="checked"':''; $history_admin_no = ($conf['logadmin']=='false')?'checked="checked"':''; // END Stats Detaillé MOD # #-----[ FIND ]------------------------------------------ # 'L_CONF_GALLERY_LOCKED_INFO'=>$lang['conf_gallery_locked_info'], # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé MOD 'L_CONF_HISTORY_IPLIST'=>$lang['conf_log_iplist'], 'L_CONF_HISTORY_ADMIN'=>$lang['conf_log_admin'], 'LOGADMIN_YES'=>$history_admin_yes, 'LOGADMIN_NO'=>$history_admin_no, 'IPLIST'=>$conf['IPList'], // END Stats Detaillé MOD # #-----[ OPEN ]------------------------------------------ # include/functions.inc.php # #-----[ FIND ]------------------------------------------ # if ($conf['log']) { # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé MOD if ( (!in_array($_SERVER['REMOTE_ADDR'], split(';', $conf['IPList']))) and ($conf['logadmin'] or (!$conf['logadmin'] and ($user['username'] != 'admin'))) ) { // END Stats Detaillé MOD # #-----[ FIND ]------------------------------------------ # \''.addslashes($picture).'\') ;'; pwg_query($query); # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé MOD } // END Stats Detaillé MOD # #-----[ OPEN ]------------------------------------------ # include/config.inc.php # #-----[ FIND ]------------------------------------------ # $conf['show_version'] = false; # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé // nb_logs_page : number of logs displayed per page $conf['nb_logs_page'] = 300; // END Stats Detaillé # #-----[ OPEN ]------------------------------------------ # language/en_UK.iso-8859-1/admin.lang.php # #-----[ FIND ]------------------------------------------ # $lang['conf_gallery_locked_info'] = 'Lock the entire gallery for maintenance. Only administrator users will be able to reach the gallery'; # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé MOD $lang['conf_log_iplist'] = 'List of IP addresses to ignore (separated by ;)'; $lang['conf_log_admin'] = 'Log administrator actions'; // END Stats Detaillé MOD # #-----[ FIND ]------------------------------------------ # $lang['stats_visitors_graph_title'] = 'Nombre de visiteurs par jour'; # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé MOD $lang['stats_date'] = 'Date'; $lang['stats_login'] = 'Login'; $lang['stats_addr'] = 'Address'; $lang['stats_category'] = 'Category'; $lang['stats_file'] = 'File'; $lang['stats_picture'] = 'Picture'; // END Stats Detaillé MOD # #-----[ OPEN ]------------------------------------------ # language/fr_FR.iso-8859-1/admin.lang.php # #-----[ FIND ]------------------------------------------ # $lang['conf_gallery_locked_info'] = 'Verrouiller toute la galerie pour maintenance. Attention à ne pas vous déconnecter : seul l\'administrateur sera capable d\'y accéder.'; # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaille MOD $lang['conf_log_iplist'] = 'Liste des adresses IP à ignorer (séparées par des ;)'; $lang['conf_log_admin'] = 'Historiser les actions de l\'administrateur'; // END Stats Detaille MOD # #-----[ FIND ]------------------------------------------ # $lang['stats_visitors_graph_title'] = 'Nombre de visiteurs par jour'; # #-----[ AFTER, ADD ]------------------------------------------ # // BEGIN Stats Detaillé MOD $lang['stats_date'] = 'Date'; $lang['stats_login'] = 'Identifiant'; $lang['stats_addr'] = 'Adresse'; $lang['stats_category'] = 'Categorie'; $lang['stats_file'] = 'Fichier'; $lang['stats_picture'] = 'Image'; // END Stats Detaillé MOD # #-----[ OPEN ]------------------------------------------ # template/default/admin/configuration.tpl # #-----[ FIND ]------------------------------------------ # <tr> <td><strong>{general.L_CONF_HISTORY} :</strong><br /><span class="small">{general.L_CONF_HISTORY_INFO}</span></td> <td class="row1"><input type="radio" class="radio" name="log" value="true" {general.history_yes} />{L_YES} <input type="radio" class="radio" name="log" value="false" {general.history_no} />{L_NO}</td> </tr> # #-----[ REPLACE BY ]------------------------------------------ # <tr> <td><strong>{general.L_CONF_HISTORY} :</strong><br /><span class="small">{general.L_CONF_HISTORY_INFO}</span></td> <td class="row1"><input type="radio" class="radio" name="log" value="true" {general.HISTORY_YES} onClick="document.forms[0].IPList.disabled=false; document.forms[0].logadmin[0].disabled=false; document.forms[0].logadmin[1].disabled=false;"/>{L_YES} <input type="radio" class="radio" name="log" value="false" {general.HISTORY_NO} onClick="document.forms[0].IPList.disabled=true; document.forms[0].logadmin[0].disabled=true; document.forms[0].logadmin[1].disabled=true;"/>{L_NO}</td> </tr> <tr> <td><span class="small">{general.L_CONF_HISTORY_IPLIST}</span></td> <td class="row1"><input name="IPList" type="text" id="IPList" size="20" maxlength="255" value="{general.IPLIST}"></td> </tr> <tr> <td><span class="small">{general.L_CONF_HISTORY_ADMIN}</span></td> <td class="row1"><input type="radio" class="radio" name="logadmin" value="true" {general.LOGADMIN_YES} /> {L_YES} <input type="radio" class="radio" name="logadmin" value="false" {general.LOGADMIN_NO} /> {L_NO}</td> </tr> # #-----[ OPEN ]------------------------------------------ # template/default/admin/stats.tpl # #-----[ FIND ]------------------------------------------ # <td>{month.MONTH}</td> # #-----[ REPLACE BY ]------------------------------------------ # <td><a href="{month.URL}">{month.MONTH}</a></td> # #-----[ FIND ]------------------------------------------ # <br /> # #-----[ AFTER, ADD ]------------------------------------------ # <table class="table2" width="60%"> <tr class="throw"> <th>{L_STAT_DATE}</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> <!-- BEGIN detail --> <tr class="{detail.T_CLASS}"> <td nowrap>{detail.DATE}</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 --> #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ # # EoM
* Remarques:
- j'ai modifié l'ordre d'affichage des connexions: de la plus récente à la plus ancienne (j'en avais marre d'aller à chaque fois à la fin de la page pour voir qui s'est connecté aujourd'hui... :).
- vous pouvez choisir le nombre de connexions (logs) à afficher dans chaque page. Actuellement: 300. Il suffit de modifier la valeur affectée à la variable $conf['nb_logs_page'] (à la fin du fichier include/config.inc.php).
POLO, digimic: dites moi si avec ça vous avez toujours votre problème de "serveur introuvable".
Et si vous avez des questions, n'hesitez pas!
Hors ligne
Ca marche mais t as oublié d indiquer une partie entre les balises // BEGIN Stats Detaillé et // END Stats Detaillé dans - admin/stats.php:
ce qui nous donne pour que ca marche ca:
if (isset( $_GET['month'] ))
{
$current_month = $_GET['month'];
// Set WHERE clause
$where = ' WHERE DATE_FORMAT(date,\'%Y-%m\') = \''.$current_month.'\'';
// 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, 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(
'DATE'=>$row['date'],
'LOGIN'=>$row['login'],
'IP'=>gethostbyaddr($row['IP']),
'CATEGORY'=>$row['category'],
'FILE'=>$row['file'],
'PICTURE'=>$row['picture'],
'T_CLASS'=>$class
));
}
}
Hors ligne
POLO a écrit:
Ca marche mais t as oublié d indiquer une partie entre les balises // BEGIN Stats Detaillé et // END Stats Detaillé dans - admin/stats.php
Qu'est ce qui manque?
Attention: il y a la scroll-bar pour faire défiler le code!
Hors ligne
$class = ($i % 2)? 'row1':'row2'; $i++;
$template->assign_block_vars('detail',array(
'DATE'=>$row['date'],
'LOGIN'=>$row['login'],
'IP'=>gethostbyaddr($row['IP']),
'CATEGORY'=>$row['category'],
'FILE'=>$row['file'],
'PICTURE'=>$row['picture'],
'T_CLASS'=>$class
));
}
}
Hors ligne
POLO: ton idée de compteur live, ca m'a donné envi :)
Alors voilà:
- fichier category.php:
# #-----[ FIND ]------------------------------------------ # //------------------------------------------------------------ log informations # #-----[ BEFORE, ADD ]------------------------------------------ # // BEGIN Stats Detaillé $query = ' SELECT COUNT(DISTINCT(IP)) AS nb_users FROM '.HISTORY_TABLE.' WHERE date >= DATE_SUB(NOW(), INTERVAL '.$conf['activity_period'].' MINUTE);'; $result = pwg_query($query); $row = mysql_fetch_array($result); $page['nb_users']=$row['nb_users']; $template->assign_vars(array( 'NB_USERS'=>$page['nb_users'] )); // END Stats Detaillé
- Fichier include/config.inc.php :
# #-----[ FIND ]------------------------------------------ # // END Stats Detaillé # #-----[ BEFORE, ADD ]------------------------------------------ # // Activity period (in minutes) $conf['activity_period'] = 5;
That's all !!
Après, il suffit d'aller dans le category.tpl du template et de placer la ligne suivant là où vous voulez:
<div class="small">Connectés: <b>{NB_USERS}</b></div>
Hors ligne
POLO a écrit:
$class = ($i % 2)? 'row1':'row2'; $i++;
$template->assign_block_vars('detail',array(
'DATE'=>$row['date'],
'LOGIN'=>$row['login'],
'IP'=>gethostbyaddr($row['IP']),
'CATEGORY'=>$row['category'],
'FILE'=>$row['file'],
'PICTURE'=>$row['picture'],
'T_CLASS'=>$class
));
}
}
C'est présent dans le bout de code que j'ai posté, mais faut faire défiler avec la scroll bar.
D'ailleurs, par rapport au code que tu as posté, il faut encore en rajouter car sinon, la barre de navigation ne s'affiche pas.
Hors ligne
Pour le compteur live, dites moi si ca fonctionne car vu que j'ai pas encore bcp de monde sur le site en simultané (surtout à cette heure-ci) c'est assez difficile de tester... :)
Le calcul se base sur les IPs.
Hors ligne
le scripte a l air bon mais faut que j attende une visite pour voir si ca marche alors attends je t envoi le site sur ton mail
Hors ligne
pour le compteur, je l'ai installé. je vois bien marqué connecté :1
mais faut voir si ca marche vraiment.. je vais demander a des gens de se connecter demain pour tester.
est ce qu'il serait possible de mettre "connecté.." dans la partie admin seulement et non visible par les autres?
et pourrais je aussi avoir les noms de compte des personnes connectées?
Hors ligne