#31 2005-09-18 16:03:33

POLO
Membre
2005-08-11
61

Re: Historique

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

#32 2005-09-18 16:05:21

digimic
Membre
2005-04-05
107

Re: Historique

bon ben ca confirme que le mod a besoin d'une touche d'optimistaion :-))

Hors ligne

#33 2005-09-18 17:11:24

POLO
Membre
2005-08-11
61

Re: Historique

mais ce qu ila fais c est deja super bien et utile...je lui tire mon chapeau

Hors ligne

#34 2005-09-18 17:39:38

digimic
Membre
2005-04-05
107

Re: Historique

c'est clair! depuis le temps que tout le monde attendait ca :-))

Hors ligne

#35 2005-09-18 17:42:26

POLO
Membre
2005-08-11
61

Re: Historique

moi i me manque plus qu un compteur live d user un ligne et c est la fete

Hors ligne

#36 2005-09-18 22:22:50

e-poussin
Membre
Paris
2005-09-16
25

Re: Historique

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:

Code:

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:

Code:

# 
#-----[ 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:

Code:

# 
#-----[ 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:

Code:

############################################################## 
## 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}&nbsp;:</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}&nbsp;&nbsp;
  <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}&nbsp;:</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}&nbsp;&nbsp;
  <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}&nbsp;&nbsp;
      <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!


Photos de qualité: http://www.e-poussin.com/

Hors ligne

#37 2005-09-18 23:13:34

POLO
Membre
2005-08-11
61

Re: Historique

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

#38 2005-09-18 23:27:30

e-poussin
Membre
Paris
2005-09-16
25

Re: Historique

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!


Photos de qualité: http://www.e-poussin.com/

Hors ligne

#39 2005-09-18 23:28:40

POLO
Membre
2005-08-11
61

Re: Historique

$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

#40 2005-09-18 23:36:10

e-poussin
Membre
Paris
2005-09-16
25

Re: Historique

POLO: ton idée de compteur live, ca m'a donné envi :)

Alors voilà:

- fichier category.php:

Code:

# 
#-----[ 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 :

Code:

# 
#-----[ 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:

Code:

<div class="small">Connectés: <b>{NB_USERS}</b></div>

Photos de qualité: http://www.e-poussin.com/

Hors ligne

#41 2005-09-18 23:38:49

e-poussin
Membre
Paris
2005-09-16
25

Re: Historique

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.


Photos de qualité: http://www.e-poussin.com/

Hors ligne

#42 2005-09-18 23:42:15

e-poussin
Membre
Paris
2005-09-16
25

Re: Historique

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.


Photos de qualité: http://www.e-poussin.com/

Hors ligne

#43 2005-09-18 23:48:54

POLO
Membre
2005-08-11
61

Re: Historique

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

#44 2005-09-19 01:07:30

digimic
Membre
2005-04-05
107

Re: Historique

pour l'historique ca marche pour moi!! super!!!

Hors ligne

#45 2005-09-19 01:17:46

digimic
Membre
2005-04-05
107

Re: Historique

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

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact