Annonces
Livre d'or

Par cecileflora

Bonjour la communauté phpboost, très  réactive, un grand merci  a toutes et tous !

Livre d'or

Mini sondage
Etes-vous satisfait du support PHPBoost ?










Résultats

 
   Le 26/09/09 à 11h29 Citer      

Booster Fronde

Groupe: Membre

Sexe:
Inscrit le: 06/08/09
Messages: 24
Lieu: Anse (69)
Reprise du message précédent

Rien ne marche en fait dans le module. Est-ce que tu veux que je t'envoie mes fichiers du module ?

pm    
   Le 26/09/09 à 11h39 Citer      

Administrateur

Equipe historique

Sexe:
Inscrit le: 04/08/05
Messages: 11001
Lieu: Aix en Provence
Tu as des messages d'erreurs ? Rien ne marche est trop vague pour qu'on puisse arranger les problèmes.
____________________
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++:
"There are two ways to write error-free programs; only the third works."

pm ben.popeye@phpboost.com http://www.phpboost.com    
   Le 26/09/09 à 12h11 Citer      

Booster Fronde

Groupe: Membre

Sexe:
Inscrit le: 06/08/09
Messages: 24
Lieu: Anse (69)
Les messages d'erreurs sont en fait toujours les mêmes que dans mon message un peu plus haut. Si tu veux je peux peut-être te passer en admin sur mon site pour que tu les vois ?

bfja.go1.cc



Edité par bfja Le 26/09/09 à 12h14

pm    
   Le 26/09/09 à 12h53 Citer      

Administrateur

Equipe historique

Sexe:
Inscrit le: 04/08/05
Messages: 11001
Lieu: Aix en Provence
Remplace dans tout le module DB_TABLE_statis par DB_TABLE_STATS.
Ca enlèvera les erreurs des requêtes SQL.
On y verra plus clair après.
____________________
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++:
"There are two ways to write error-free programs; only the third works."

pm ben.popeye@phpboost.com http://www.phpboost.com    
   Le 26/09/09 à 17h49 Citer      

Booster Fronde

Groupe: Membre

Sexe:
Inscrit le: 06/08/09
Messages: 24
Lieu: Anse (69)
Bonne nouvelle, ça va beaucoup mieux ! J'ai accès à quasiment toutes les rubriques. J'ai modifier les noms que tu m'as dit ainsi que sur toutes les lignes sur lesquelles apparaissaient "statis" tant que j'avais des erreurs, également le nom suivant : $statis.

Dans les dernières erreurs concernant les requêtes sql, je pense que cela provient de cette syntaxe : "__LINE__, __FILE__" qui doit faire référence au nom de fichier, du coup j'ai une erreur qui me dit que la table "bfja.statis.referer" n'existe pas. Il s'agit des rubriques "pages vues", "sites référents" et "mots clés".

On a super bien avancé, merci beaucoup ben.popeye.

Aurél

pm    
   Le 26/09/09 à 18h01 Citer      

Administrateur

Chef de projet
Développement Noyau

Sexe:
Inscrit le: 27/02/09
Messages: 7993
Lieu: Alsace
Citation:
Dans les dernières erreurs concernant les requêtes sql, je pense que cela provient de cette syntaxe : "__LINE__, __FILE__"


Tu peut nous coller l'erreur afficher ici stp

pm http://www.phpboost.com    
   Le 26/09/09 à 18h04 Citer      

Booster Fronde

Groupe: Membre

Sexe:
Inscrit le: 06/08/09
Messages: 24
Lieu: Anse (69)
Erreur fatale : Invalid SQL request

SELECT SUM(pages) FROM bfja_statis

Table 'bfja.bfja_statis' doesn't exist


Ligne 533 : admin_statis.php

pm    
   Le 26/09/09 à 18h07 Citer      

Booster Fusée

Groupe: Membre

Sexe:
Inscrit le: 23/09/08
Messages: 1706
Lieu: Aix en provence
ben.popeye:
Remplace dans tout le module DB_TABLE_statis par DB_TABLE_STATS.
Ca enlèvera les erreurs des requêtes SQL.
On y verra plus clair après.


la il doit en rester
____________________

pm    
   Le 26/09/09 à 18h13 Citer      

Booster Fronde

Groupe: Membre

Sexe:
Inscrit le: 06/08/09
Messages: 24
Lieu: Anse (69)
En fait sur les lignes spécifiées il n'y a pas de noms mais ça : "__LINE__, __FILE__" . Je viens de repasser sur tous les fichiers, il n'y a plus d'occurence ayant le mot statis.

Celle d'avant c'était pour la rubrique pages vues, la suivante c'est pour la rubrique sites référents et la dernière pour la rubrique mots clés :

Erreur fatale : invalid while request

SELECT id, count(*) as count, url, relative_url, SUM(total_visit) as total_visit, SUM(today_visit) as today_visit, SUM(yesterday_visit) as yesterday_visit, nbr_day, MAX(last_update) as last_update
FROM bfja_statis_referer
WHERE type = 0
GROUP BY url
ORDER BY total_visit DESC
LIMIT 0, 15

Table 'bfja.bfja_statis_referer' doesn't exist


Ligne 937 : admin_statis.php


Erreur fatale : invalid while request

SELECT id, count(*) as count, relative_url, SUM(total_visit) as total_visit, SUM(today_visit) as today_visit, SUM(yesterday_visit) as yesterday_visit, nbr_day, MAX(last_update) as last_update
FROM bfja_statis_referer
WHERE type = 1
GROUP BY relative_url
ORDER BY total_visit DESC
LIMIT 0, 15

Table 'bfja.bfja_statis_referer' doesn't exist


Ligne 994 : admin_statis.php

pm    
   Le 26/09/09 à 18h14 Citer      

Booster Fusée

Groupe: Membre

Sexe:
Inscrit le: 23/09/08
Messages: 1706
Lieu: Aix en provence
pourrais tu nous montrer ton fichier admin_statis.php parceque sur les deux erreur que je vois je lis bien statis dans les requetes



Edité par Crunchfamily Le 26/09/09 à 18h14
____________________

pm    
   Le 26/09/09 à 18h17 Citer      

Booster Fronde

Groupe: Membre

Sexe:
Inscrit le: 06/08/09
Messages: 24
Lieu: Anse (69)
Code PHP :
<?php
/*##################################################
 *                               admin_statis.php
 *                            -------------------
 *   begin                : July 30, 2005
 *   copyright          : (C) 2005 Viarre Régis
 *   email                : [mail=crowkait@phpboost.com]crowkait@phpboost.com[/mail]
 *
 *
###################################################
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
###################################################*/
 
require_once('../admin/admin_begin.php');
define('TITLE', $LANG['administration']);
require_once('../admin/admin_header.php');
include_once('../lang/' . get_ulang() . '/stats.php'); //Chargement de la langue.
 
$Template->set_filenames(array(
	'admin_statis_management'=> 'statis/admin_statis_management.tpl'
));
 
$visit = !empty($_GET['visit']) ? true : false;
$visit_year = retrieve(GET, 'year', 0);
$pages = !empty($_GET['pages']) ? true : false;
$pages_year = retrieve(GET, 'pages_year', 0);
$members = !empty($_GET['members']) ? true : false;
$referer = !empty($_GET['referer']) ? true : false;
$keyword = !empty($_GET['keyword']) ? true : false;
$browser = !empty($_GET['browser']) ? true : false;
$os = !empty($_GET['os']) ? true : false;
$all = !empty($_GET['all']) ? true : false;
$user_lang = !empty($_GET['lang']) ? true : false;
$bot = !empty($_GET['bot']) ? true : false;
 
if (!empty($_POST['erase'])) //Suppression de robots.txt
	delete_file('../cache/robots.txt'); //On supprime le fichier.
 
$Template->assign_vars(array(
	'L_SITE' => $LANG['site'],
	'L_STATS' => $LANG['stats'],
	'L_USERS' => $LANG['member_s'],
	'L_VISITS' => $LANG['guest_s'],
	'L_PAGES' => $LANG['page_s'],
	'L_BROWSERS' => $LANG['browser_s'],
	'L_OS' => $LANG['os'],
	'L_LANG' => $LANG['stat_lang'],
	'L_KEYWORD' => $LANG['keyword_s'],
	'L_REFERER' => $LANG['referer_s'],
	'L_ROBOTS' => $LANG['robots']
));
 
if (!empty($members))
{
	$last_user = $Sql->query_array(DB_TABLE_MEMBER, 'user_id', 'login', "ORDER BY user_id DESC " . $Sql->limit(0, 1), __LINE__, __FILE__);
	$nbr_member = $Sql->count_table('member', __LINE__, __FILE__);
 
	$Template->assign_vars(array(
		'C_statis_USERS' => true,
		'LAST_USER' => $last_user['login'],
		'U_LAST_USER_ID' => url('.php?id=' . $last_user['user_id'], '-' . $last_user['user_id'] . '.php'),
		'USERS' => $nbr_member,
		'GRAPH_RESULT_THEME' => !file_exists('../cache/theme.png') ? '<img src="../kernel/framework/ajax/display_stats.php?theme=1" alt="" />' : '<img src="../cache/theme.png" alt="" />',
		'GRAPH_RESULT_SEX' => !file_exists('../cache/sex.png') ? '<img src="../kernel/framework/ajax/display_stats.php?sex=1" alt="" />' : '<img src="../cache/sex.png" alt="" />',
		'L_LAST_USER' => $LANG['last_member'],
		'L_TEMPLATES' => $LANG['theme_s'],
		'L_PSEUDO' => $LANG['pseudo'],
		'L_MSG' => $LANG['message_s'],
		'L_TOP_TEN_POSTERS' => $LANG['top_10_posters'],
		'L_COLORS' => $LANG['colors'],
		'L_USERS' => $LANG['member_s'],
		'L_SEX' => $LANG['sex']
	));
 
	$stats_array = array();
	$result = $Sql->query_while ("SELECT at.theme, COUNT( m.user_theme) AS compt
	FROM " . DB_TABLE_THEMES . " at
	LEFT JOIN " . DB_TABLE_MEMBER . " m ON m.user_theme = at.theme
	GROUP BY at.theme
	ORDER BY compt DESC", __LINE__, __FILE__);
	while ($row = $Sql->fetch_assoc($result))
	{
		$info_theme = load_ini_file('../templates/' . $row['theme'] . '/config/', get_ulang());
		$name = isset($info_theme['name']) ? $info_theme['name'] : $row['theme'];
		$stats_array[$name] = $row['compt'];
	}
	$Sql->query_close($result);
	import('util/images_stats');
	$stats = new stats();
 
	$stats->load_data($stats_array, 'ellipse');
	foreach ($stats->data_stats as $name => $angle_value)
	{
		$array_color = $stats->array_allocated_color[$stats->_image_color_allocate_dark(false, NO_ALLOCATE_COLOR)];
		$Template->assign_block_vars('templates', array(
			'NBR_THEME' => number_round(($angle_value*$stats->nbr_entry)/360, 0),
			'COLOR' => 'RGB(' . $array_color[0] . ', ' . $array_color[1] . ', ' . $array_color[2] . ')',
			'THEME' => ($name == 'Other') ? $LANG['other'] : $name,
			'PERCENT' => number_round(($angle_value/3.6), 1)
		));
	}
 
	$stats_array = array();
	$result = $Sql->query_while ("SELECT count(user_sex) as compt, user_sex
	FROM " . PREFIX . "member
	GROUP BY user_sex
	ORDER BY compt", __LINE__, __FILE__);
	while ($row = $Sql->fetch_assoc($result))
	{
		switch ($row['user_sex'])
		{
			case 0:
			$name = $LANG['unknow'];
			break;
			case 1:
			$name = $LANG['male'];
			break;
			case 2:
			$name = $LANG['female'];
			break;
		}
		$stats_array[$name] = $row['compt'];
	}
	$Sql->query_close($result);
 
	$stats->color_index = 0;
	$stats->load_data($stats_array, 'ellipse');
	foreach ($stats->data_stats as $name => $angle_value)
	{
		$array_color = $stats->array_allocated_color[$stats->_image_color_allocate_dark(false, NO_ALLOCATE_COLOR)];
		$Template->assign_block_vars('sex', array(
			'NBR_MBR' => number_round(($angle_value*$stats->nbr_entry)/360, 0),
			'COLOR' => 'RGB(' . $array_color[0] . ', ' . $array_color[1] . ', ' . $array_color[2] . ')',
			'SEX' => ($name == 'Other') ? $LANG['other'] : $name,
			'PERCENT' => number_round(($angle_value/3.6), 1)
		));
	}
 
	$i = 1;
	$result = $Sql->query_while("SELECT user_id, login, user_msg
	FROM " . DB_TABLE_MEMBER . "
	ORDER BY user_msg DESC
	" . $Sql->limit(0, 10), __LINE__, __FILE__);
	while ($row = $Sql->fetch_assoc($result))
	{
		$Template->assign_block_vars('top_poster', array(
			'ID' => $i,
			'U_USER_ID' => url('.php?id=' . $row['user_id'], '-' . $row['user_id'] . '.php'),
			'LOGIN' => $row['login'],
			'USER_POST' => $row['user_msg']
		));
 
		$i++;
	}
	$Sql->query_close($result);
}
elseif ($visit || $visit_year) //Visites par jour classées par mois.
{
	//On affiche les visiteurs totaux et du jour
	$compteur = $Sql->query_array(DB_TABLE_VISIT_COUNTER, 'ip AS nbr_ip', 'total', "WHERE id = 1", __LINE__, __FILE__);
	$compteur_total = !empty($compteur['nbr_ip']) ? $compteur['nbr_ip'] : '1';
	$compteur_day = !empty($compteur['total']) ? $compteur['total'] : '1';
 
	$Template->assign_vars(array(
		'L_TODAY' => $LANG['today'],
		'L_TOTAL' => $LANG['total'],
		'L_AVERAGE' => $LANG['average'],
		'L_VISITORS' => $LANG['guest_s'] . ':',
		'L_VISITS_DAY' => $LANG['guest_s'],
		'L_DAY' => $LANG['date'],
		'L_MONTH' => $LANG['month'],
		'L_SUBMIT' => $LANG['submit']
	));
 
	$time = gmdate_format('Ym');
	$current_year = substr($time, 0, 4);
	$current_month = substr($time, 4, 2);
 
	$month = retrieve(GET, 'm', (int)$current_month);
	$year = retrieve(GET, 'y', (int)$current_year);
	if ($visit_year)
		$year = $visit_year;
 
	//Gestion des mois pour s'adapter au array défini dans lang/main.php
	$array_l_months = array($LANG['january'], $LANG['february'], $LANG['march'], $LANG['april'], $LANG['may'], $LANG['june'],
	$LANG['july'], $LANG['august'], $LANG['september'], $LANG['october'], $LANG['november'], $LANG['december']);
 
	if (!empty($visit_year)) //Visites par mois classées par ans.
	{
		//Années précédente et suivante
		$next_year = $visit_year + 1;
		$previous_year = $visit_year - 1;
 
		//On va chercher le nombre de jours présents dans la table, ainsi que le record mensuel
		$info = $Sql->query_array(DB_TABLE_STATS, 'MAX(nbr) as max_month', 'SUM(nbr) as sum_month', 'COUNT(DISTINCT(STATS_MONTH)) as nbr_month', "WHERE STATS_YEAR = '" . $visit_year . "' GROUP BY STATS_YEAR", __LINE__, __FILE__);
 
		$Template->assign_vars(array(
			'C_statis_VISIT' => true,
			'TYPE' => 'visit',
			'VISIT_TOTAL' => $compteur_total,
			'VISIT_DAY' => $compteur_day,
			'YEAR' => $visit_year,
			'COLSPAN' => 14,
			'SUM_NBR' => $info['sum_month'],
			'MAX_NBR' => $info['max_month'],
			'MOY_NBR' => !empty($info['nbr_month']) ? number_round($info['sum_month']/$info['nbr_month'], 1) : 1,
			'U_NEXT_LINK' =>  url('.php?year=' . $next_year),
			'U_PREVIOUS_LINK' => url('.php?year=' . $previous_year)
		));
 
		//Année maximale
		$info_year = $Sql->query_array(DB_TABLE_STATS, 'MAX(STATS_YEAR) as max_year', 'MIN(STATS_YEAR) as min_year', '', __LINE__, __FILE__);
		$years = '';
		for ($i = $info_year['min_year']; $i <= $info_year['max_year']; $i++)
		{
			$selected = ($i == $year) ? ' selected="selected"' : '';
			$years .= '<option value="' . $i . '"' . $selected . '>' . $i . '</option>';
		}
		$Template->assign_vars(array(
			'C_STATS_YEAR' => true,
			'STATS_YEAR' => $years
		));
 
		if (@extension_loaded('gd'))
		{
			$Template->assign_vars(array(
				'GRAPH_RESULT' => '<img src="../kernel/framework/ajax/display_stats.php?visit_year=1&year=' . $visit_year . '" alt="" />'
			));
 
			//On fait la liste des visites journalières
			$result = $Sql->query_while ("SELECT STATS_MONTH, SUM(nbr) AS total
			FROM " . DB_TABLE_STATS . "
			WHERE STATS_YEAR = '" . $visit_year . "'
			GROUP BY STATS_MONTH", __LINE__, __FILE__);
			while ($row = $Sql->fetch_assoc($result))
			{
				//On affiche les statis numériquement dans un tableau en dessous
				$Template->assign_block_vars('value', array(
					'U_DETAILS' => '<a href="admin_statis' . url('.php?m=' . $row['STATS_MONTH'] . '&y=' . $visit_year . '&visit=1') . '#statis">' . $array_l_months[$row['STATS_MONTH'] - 1] . '</a>',
					'NBR' => $row['total']
				));
			}
			$Sql->query_close($result);
		}
		else
		{
			$result = $Sql->query_while ("SELECT SUM(nbr) AS total
			FROM " . DB_TABLE_STATS . "
			WHERE STATS_YEAR = '" . $visit_year . "'
			GROUP BY STATS_MONTH", __LINE__, __FILE__);
			$max_month = 1;
 
			while ($row = $Sql->fetch_assoc($result))
				$max_month = ($row['total'] <= $max_month) ? $max_month : $row['total'];
 
 
			$Template->assign_vars(array(
				'C_statis_NO_GD' => true
			));
 
			$i = 1;
			$last_month = 1;
			$months_not_empty = array();
			$result = $Sql->query_while ("SELECT STATS_MONTH, SUM(nbr) AS total
			FROM " . DB_TABLE_STATS . "
			WHERE STATS_YEAR = '" . $visit_year . "'
			GROUP BY STATS_MONTH", __LINE__, __FILE__);
			while ($row = $Sql->fetch_assoc($result))
			{
				$diff = 0;
				if ($row['STATS_MONTH'] != $i)
				{
					$diff = $row['STATS_MONTH'] - $i;
					for ($j = 0; $j < $diff; $j++)
					{
						$Template->assign_block_vars('values', array(
							'HEIGHT' => 0
						));
					}
				}
 
				$i += $diff;
 
				//On a des statis pour ce mois-ci, on l'enregistre
				array_push($months_not_empty, $row['STATS_MONTH']);
 
				//On calcule la proportion (le maximum du mois tiendra toute la hauteur)
				$height = $row['total'] / $max_month * 200;
 
				$Template->assign_block_vars('values', array(
					'HEIGHT' => ceil($height)
				));
 
				$Template->assign_block_vars('values.head', array(
				));
 
				//On affiche les statis numériquement dans un tableau en dessous
				$Template->assign_block_vars('value', array(
					'U_DETAILS' => '<a href="admin_statis' . url('.php?m=' . $row['STATS_MONTH'] . '&y=' . $visit_year . '&visit=1') . '#statis">' . $array_l_months[$row['STATS_MONTH'] - 1] . '</a>',
					'NBR' => $row['total']
				));
 
				$last_month = $row['STATS_MONTH'];
				$i++;
			}
			$Sql->query_close($result);
 
			//Génération des td manquants.
			$date_day = isset($date_day) ? $date_day : 1;
			for	($i = $last_month; $i < 12; $i++)
			{
				$Template->assign_block_vars('end_td', array(
					'END_TD' => '<td style="width:13px;"> </td>'
				));
			}
			//On liste les jours en dessous du graphique
			$i = 1;
			foreach ($array_l_months as $value)
			{
				$Template->assign_block_vars('legend', array(
					'LEGEND' => (in_array($i, $months_not_empty)) ? '<a href="admin_statis' . url('.php?m=' . $i . '&y=' . $visit_year . '&visit=1') . '#statis">' . substr($value, 0, 3) . '</a>' : substr($value, 0, 3)
				));
				$i++;
			}
		}
	}
	else
	{
		//Nombre de jours pour chaque mois (gestion des années bissextiles)
		$bissextile = (date("L", mktime(0, 0, 0, 1, 1, $year)) == 1) ? 29 : 28;
		$array_month = array(31, $bissextile, 31, 30, 31, 30 , 31, 31, 30, 31, 30, 31);
 
		//Mois précédent et suivant
		$next_month = ($month < 12) ? $month + 1 : 1;
		$next_year = ($month < 12) ? $year : $year + 1;
		$previous_month = ($month > 1) ? $month - 1 : 12;
		$previous_year = ($month > 1) ? $year : $year - 1;
 
		//On va chercher le nombre de jours présents dans la table, ainsi que le record mensuel
		$info = $Sql->query_array(DB_TABLE_STATS, 'MAX(nbr) as max_nbr', 'MIN(STATS_DAY) as min_day', 'SUM(nbr) as sum_nbr', 'AVG(nbr) as avg_nbr', "WHERE STATS_YEAR = '" . $year . "' AND STATS_MONTH = '" . $month . "' GROUP BY STATS_MONTH", __LINE__, __FILE__);
 
		$Template->assign_vars(array(
			'C_statis_VISIT' => true,
			'TYPE' => 'visit',
			'VISIT_TOTAL' => $compteur_total,
			'VISIT_DAY' => $compteur_day,
			'COLSPAN' => $array_month[$month-1] + 2,
			'SUM_NBR' => !empty($info['sum_nbr']) ? $info['sum_nbr'] : 0,
			'MONTH' => $array_l_months[$month - 1],
			'MAX_NBR' => $info['max_nbr'],
			'MOY_NBR' => number_round($info['avg_nbr'], 1),
			'U_NEXT_LINK' => url('.php?m=' . $next_month . '&y=' . $next_year . '&visit=1'),
			'U_PREVIOUS_LINK' => url('.php?m=' . $previous_month . '&y=' . $previous_year . '&visit=1'),
			'U_YEAR' => '<a href="admin_statis' . url('.php?year=' . $year) . '#statis">' . $year . '</a>',
			'U_VISITS_MORE' => '<a href="admin_statis' . url('.php?year=' . $year) . '#statis">' . $LANG['visits_year'] . ' ' . $year . '</a>'
		));
 
		$months = '';
		for ($i = 1; $i <= 12; $i++)
		{
			$selected = ($i == $month) ? ' selected="selected"' : '';
			$months .= '<option value="' . $i . '"' . $selected . '>' . $array_l_months[$i - 1] . '</option>';
		}
 
		//Année maximale
		$info_year = $Sql->query_array(DB_TABLE_STATS, 'MAX(STATS_YEAR) as max_year', 'MIN(STATS_YEAR) as min_year', '', __LINE__, __FILE__);
		$years = '';
		for ($i = $info_year['min_year']; $i <= $info_year['max_year']; $i++)
		{
			$selected = ($i == $year) ? ' selected="selected"' : '';
			$years .= '<option value="' . $i . '"' . $selected . '>' . $i . '</option>';
		}
		$Template->assign_vars(array(
			'C_STATS_MONTH' => true,
			'C_STATS_YEAR' => true,
			'STATS_MONTH' => $months,
			'STATS_YEAR' => $years
		));
 
		if (@extension_loaded('gd'))
		{
			$Template->assign_vars(array(
				'GRAPH_RESULT' => '<img src="../kernel/framework/ajax/display_stats.php?visit_month=1&year=' . $year . '&month=' . $month . '" alt="" />'
			));
 
			//On fait la liste des visites journalières
			$result = $Sql->query_while("SELECT nbr, STATS_DAY AS day
			FROM " . DB_TABLE_STATS . " WHERE STATS_YEAR = '" . $year . "' AND STATS_MONTH = '" . $month . "'
			ORDER BY STATS_DAY", __LINE__, __FILE__);
			while ($row = $Sql->fetch_assoc($result))
			{
				$date_day = ($row['day'] < 10) ? '0' . $row['day'] : $row['day'];
 
				//On affiche les statis numériquement dans un tableau en dessous
				$Template->assign_block_vars('value', array(
					'U_DETAILS' => $date_day . '/' . $month . '/' . $year,
					'NBR' => $row['nbr']
				));
			}
			$Sql->query_close($result);
		}
		else
		{
			//Mois selectionné.
			if (!empty($month) && !empty($year))
			{
				$Template->assign_vars(array(
					'C_statis_NO_GD' => true
				));
 
				//On rajoute un 0 devant tous les mois plus petits que 10
				$month = ($month < 10) ? '0' . $month : $month;
				unset($i);
 
				//On fait la liste des visites journalières
				$j = 0;
				$result = $Sql->query_while("SELECT nbr, STATS_DAY AS day
				FROM " . DB_TABLE_STATS . " WHERE STATS_YEAR = '" . $year . "' AND STATS_MONTH = '" . $month . "'
				ORDER BY STATS_DAY", __LINE__, __FILE__);
				while ($row = $Sql->fetch_assoc($result))
				{
					//Complétion des jours précédent le premier enregistrement du mois.
					if ($j == 0)
					{
						for ($z = 1; $z < $row['day']; $z++)
						{
							$Template->assign_block_vars('values', array(
								'HEIGHT' => 0
							));
						}
						$j++;
					}
					//Remplissage des trous possibles entre les enregistrements.
					$i = !isset($i) ? $row['day'] : $i;
					$diff = 0;
					if ($row['day'] != $i)
					{
						$diff = $row['day'] - $i;
						for ($j = 0; $j < $diff; $j++)
						{
							$Template->assign_block_vars('values', array(
								'HEIGHT' => 0
							));
						}
					}
					$i += $diff;
 
					//On calcule la proportion (le maximum du mois tiendra toute la hauteur)
					$height = ($row['nbr'] / $info['max_nbr']) * 200;
 
					$Template->assign_block_vars('values', array(
						'HEIGHT' => ceil($height)
					));
 
					$Template->assign_block_vars('values.head', array(
					));
 
					$date_day = ($row['day'] < 10) ? '0' . $row['day'] : $row['day'];
 
					//On affiche les statis numériquement dans un tableau en dessous
					$Template->assign_block_vars('value', array(
						'U_DETAILS' => $date_day . '/' . $month . '/' . $year,
						'NBR' => $row['nbr']
					));
 
					$i++;
				}
				$Sql->query_close($result);
 
				//Génération des td manquants.
				$date_day = isset($date_day) ? $date_day : 1;
				for	($i = $date_day; $i < ($array_month[$month - 1] - 1); $i++)
				{
					$Template->assign_block_vars('end_td', array(
						'END_TD' => '<td style="width:13px;"> </td>'
					));
				}
 
				//On liste les jours en dessous du graphique
				for ($i = 1; $i <= $array_month[$month - 1]; $i++)
				{
					$Template->assign_block_vars('legend', array(
						'LEGEND' => $i
					));
				}
			}
		}
	}
}
elseif ($pages || $pages_year) //Pages par jour classées par mois.
{
	$time = gmdate_format('Ymj');
	$current_year = substr($time, 0, 4);
	$current_month = substr($time, 4, 2);
	$current_day = substr($time, 6, 2);
 
	$day = retrieve(GET, 'd', (int)$current_day);
	$month = retrieve(GET, 'm', (int)$current_month);
	if ($pages_year)
	{
		$clause = '';
		$year = $pages_year;
	}
	elseif (isset($_GET['d']))
	{
		$clause = "AND STATS_MONTH = '" . $month . "' AND STATS_DAY = '" . $day . "'";
		$year = retrieve(GET, 'y', (int)$current_year);
	}
	else
	{
		$clause = "AND STATS_MONTH = '" . $month . "'";
		$year = retrieve(GET, 'y', (int)$current_year);
	}
 
	//On va chercher le nombre de jours présents dans la table, ainsi que le record mensuel
	$info = $Sql->query_array(DB_TABLE_STATS, 'MAX(pages) as max_nbr', 'MIN(STATS_DAY) as min_day', 'SUM(pages) as sum_nbr', 'AVG(pages) as avg_nbr', 'COUNT(DISTINCT(STATS_MONTH)) as nbr_month', 'pages', "WHERE STATS_YEAR = '" . $year . "'" . $clause . " AND pages_detail <> '' GROUP BY STATS_MONTH", __LINE__, __FILE__);
 
	//On affiche les visiteurs totaux et du jour
	$compteur_total = $Sql->query("SELECT SUM(pages) FROM " . PREFIX . "statis", __LINE__, __FILE__);
	$compteur_day = array_sum(pages_displayed(NO_UPDATE_PAGES)) + 1;
	$compteur_total = $compteur_total + $compteur_day;
	$compteur_day = !empty($compteur_day) ? $compteur_day : '1';
 
	$Template->assign_vars(array(
		'L_TODAY' => $LANG['today'],
		'L_TOTAL' => $LANG['total'],
		'L_AVERAGE' => $LANG['average'],
		'L_VISITORS' => $LANG['page_s'] . ':',
		'L_VISITS_DAY' => $LANG['page_s'],
		'L_DAY' => $LANG['date'],
		'L_MONTH' => $LANG['month'],
		'L_SUBMIT' => $LANG['submit']
	));
 
	//Gestion des mois pour s'adapter au array défini dans lang/main.php
	$array_l_months = array($LANG['january'], $LANG['february'], $LANG['march'], $LANG['april'], $LANG['may'], $LANG['june'],
	$LANG['july'], $LANG['august'], $LANG['september'], $LANG['october'], $LANG['november'], $LANG['december']);
 
	if (!empty($pages_year)) //Visites par mois classées par ans.
	{
		//Années précédente et suivante
		$next_year = $pages_year + 1;
		$previous_year = $pages_year - 1;
 
		$Template->assign_vars(array(
			'C_statis_VISIT' => true,
			'TYPE' => 'pages',
			'VISIT_TOTAL' => $compteur_total,
			'VISIT_DAY' => $compteur_day,
			'YEAR' => $pages_year,
			'COLSPAN' => 13,
			'SUM_NBR' => $info['sum_nbr'],
			'MAX_NBR' => $info['max_nbr'],
			'MOY_NBR' => !empty($info['nbr_month']) ? number_round($info['sum_nbr']/$info['nbr_month'], 1) : 0,
			'U_NEXT_LINK' =>  url('.php?pages_year=' . $next_year),
			'U_PREVIOUS_LINK' => url('.php?pages_year=' . $previous_year)
		));
 
		//Année maximale
		$info_year = $Sql->query_array(DB_TABLE_STATS, 'MAX(STATS_YEAR) as max_year', 'MIN(STATS_YEAR) as min_year', '', __LINE__, __FILE__);
		$years = '';
		for ($i = $info_year['min_year']; $i <= $info_year['max_year']; $i++)
		{
			$selected = ($i == $year) ? ' selected="selected"' : '';
			$years .= '<option value="' . $i . '"' . $selected . '>' . $i . '</option>';
		}
		$Template->assign_vars(array(
			'C_STATS_YEAR' => true,
			'STATS_YEAR' => $years
		));
 
		if (@extension_loaded('gd'))
		{
			$Template->assign_vars(array(
				'GRAPH_RESULT' => '<img src="../kernel/framework/ajax/display_stats.php?pages_year=1&year=' . $pages_year . '" alt="" />'
			));
 
			//On fait la liste des visites journalières
			$result = $Sql->query_while ("SELECT STATS_MONTH, SUM(pages) AS total
			FROM " . DB_TABLE_STATS . "
			WHERE STATS_YEAR = '" . $pages_year . "'
			GROUP BY STATS_MONTH", __LINE__, __FILE__);
			while ($row = $Sql->fetch_assoc($result))
			{
				//On affiche les statis numériquement dans un tableau en dessous
				$Template->assign_block_vars('value', array(
					'U_DETAILS' => '<a href="admin_statis' . url('.php?m=' . $row['STATS_MONTH'] . '&y=' . $pages_year . '&pages=1') . '#statis">' . $array_l_months[$row['STATS_MONTH'] - 1] . '</a>',
					'NBR' => $row['total']
				));
			}
			$Sql->query_close($result);
		}
		else
		{
			$result = $Sql->query_while ("SELECT SUM(nbr) AS total
			FROM " . DB_TABLE_STATS . "
			WHERE STATS_YEAR = '" . $visit_year . "'
			GROUP BY STATS_MONTH", __LINE__, __FILE__);
			$max_month = 1;
 
			while ($row = $Sql->fetch_assoc($result))
				$max_month = ($row['total'] <= $max_month) ? $max_month : $row['total'];
 
 
			$Template->assign_vars(array(
				'C_statis_NO_GD' => true
			));
 
			$i = 1;
			$last_month = 1;
			$months_not_empty = array();
			$result = $Sql->query_while ("SELECT STATS_MONTH, SUM(pages) AS total
			FROM " . DB_TABLE_STATS . "
			WHERE STATS_YEAR = '" . $pages_year . "'
			GROUP BY STATS_MONTH", __LINE__, __FILE__);
			while ($row = $Sql->fetch_assoc($result))
			{
				$diff = 0;
				if ($row['STATS_MONTH'] != $i)
				{
					$diff = $row['STATS_MONTH'] - $i;
					for ($j = 0; $j < $diff; $j++)
					{
						$Template->assign_block_vars('values', array(
							'HEIGHT' => 0
						));
					}
				}
 
				$i += $diff;
 
				//On a des statis pour ce mois-ci, on l'enregistre
				array_push($months_not_empty, $row['STATS_MONTH']);
 
				//On calcule la proportion (le maximum du mois tiendra toute la hauteur)
				$height = $row['total'] / $info['max_month'] * 200;
 
				$Template->assign_block_vars('months', array(
					'HEIGHT' => ceil($height)
				));
 
				$Template->assign_block_vars('values.head', array(
				));
 
				//On affiche les statis numériquement dans un tableau en dessous
				$Template->assign_block_vars('value', array(
					'U_DETAILS' => '<a href="admin_statis' . url('.php?m=' . $row['STATS_MONTH'] . '&y=' . $pages_year . '&pages=1') . '#statis">' . $array_l_months[$row['STATS_MONTH'] - 1] . '</a>',
					'NBR' => $row['total']
				));
 
				$last_month = $row['STATS_MONTH'];
				$i++;
			}
			$Sql->query_close($result);
 
			//Génération des td manquants.
			$date_day = isset($date_day) ? $date_day : 1;
			for	($i = $last_month; $i < 12; $i++)
			{
				$Template->assign_block_vars('end_td', array(
					'END_TD' => '<td style="width:13px;"> </td>'
				));
			}
			//On liste les jours en dessous du graphique
			$i = 1;
			foreach ($array_l_months as $value)
			{
				$Template->assign_block_vars('legend', array(
					'LEGEND' => (in_array($i, $months_not_empty)) ? '<a href="admin_statis' . url('.php?m=' . $i . '&y=' . $pages_year . '&pages=1') . '#statis">' . substr($value, 0, 3) . '</a>' : substr($value, 0, 3)
				));
				$i++;
			}
		}
	}
	elseif (isset($_GET['d']) )
	{
		//Nombre de jours pour chaque mois (gestion des années bissextiles)
		$bissextile = (date("L", mktime(0, 0, 0, 1, 1, $year)) == 1) ? 29 : 28;
		$array_month = array(31, $bissextile, 31, 30, 31, 30 , 31, 31, 30, 31, 30, 31);
 
		//Mois précédent et suivant
		$check_day = $day < $array_month[$month-1];
		$next_day = $check_day ? $day + 1 : 1;
		$next_month = ($check_day && $month < 12) ? $month + 1 : $month;
		$next_year = ($month < 12) ? $year : $year + 1;
		$previous_day = ($day > 1) ? $day - 1 : $array_month[$month-1];
		$previous_month = ($month > 1) ? ($day == 1 ? $month - 1 : $month) : 12;
		$previous_year = ($month > 1) ? $year : $year - 1;
 
		$Template->assign_vars(array(
			'C_statis_VISIT' => true,
			'TYPE' => 'pages',
			'VISIT_TOTAL' => $compteur_total,
			'VISIT_DAY' => $compteur_day,
			'SUM_NBR' => !empty($info['pages']) ? $info['pages'] : 0,
			'MONTH' => $array_l_months[$month - 1],
			'MAX_NBR' => $info['max_nbr'],
			'MOY_NBR' => number_round($info['pages']/24, 1),
			'U_NEXT_LINK' => url('.php?d=' . $next_day . '&m=' . $next_month . '&y=' . $next_year . '&pages=1'),
			'U_PREVIOUS_LINK' => url('.php?d=' . $previous_day . '&m=' . $previous_month . '&y=' . $previous_year . '&pages=1'),
			'U_YEAR' => '<a href="admin_statis' . url('.php?pages_year=' . $year) . '#statis">' . $year . '</a>',
			'U_VISITS_MORE' => '<a href="admin_statis' . url('.php?pages_year=' . $year) . '#statis">' . $LANG['visits_year'] . ' ' . $year . '</a>'
		));
 
		$days = '';
		for ($i = 1; $i <= $array_month[$month-1]; $i++)
		{
			$selected = ($i == $day) ? ' selected="selected"' : '';
			$days .= '<option value="' . $i . '"' . $selected . '>' . $i . '</option>';
		}
 
		$months = '';
		for ($i = 1; $i <= 12; $i++)
		{
			$selected = ($i == $month) ? ' selected="selected"' : '';
			$months .= '<option value="' . $i . '"' . $selected . '>' . $array_l_months[$i - 1] . '</option>';
		}
 
		//Année maximale
		$info_year = $Sql->query_array(DB_TABLE_STATS, 'MAX(STATS_YEAR) as max_year', 'MIN(STATS_YEAR) as min_year', '', __LINE__, __FILE__);
		$years = '';
		for ($i = $info_year['min_year']; $i <= $info_year['max_year']; $i++)
		{
			$selected = ($i == $year) ? ' selected="selected"' : '';
			$years .= '<option value="' . $i . '"' . $selected . '>' . $i . '</option>';
		}
 
		$Template->assign_vars(array(
			'STATS_DAY' => $days,
			'STATS_MONTH' => $months,
			'STATS_YEAR' => $years,
			'GRAPH_RESULT' => '<img src="../kernel/framework/ajax/display_stats.php?pages_day=1&year=' . $year . '&month=' . $month . '&day=' . $day . '" alt="" />'
		));
 
		//On fait la liste des visites journalières
		$result = $Sql->query_while("SELECT pages, STATS_DAY, STATS_MONTH, STATS_YEAR
		FROM " . DB_TABLE_STATS . " WHERE STATS_YEAR = '" . $year . "' AND STATS_MONTH = '" . $month . "'
		ORDER BY STATS_DAY", __LINE__, __FILE__);
		while ($row = $Sql->fetch_assoc($result))
		{
			$date_day = ($row['STATS_DAY'] < 10) ? 0 . $row['STATS_DAY'] : $row['STATS_DAY'];
 
			//On affiche les statis numériquement dans un tableau en dessous
			$Template->assign_block_vars('value', array(
				'U_DETAILS' => '<a href="admin_statis' . url('.php?d=' . $row['STATS_DAY'] . '&m=' . $row['STATS_MONTH'] . '&y=' . $row['STATS_YEAR'] . '&pages=1') . '#statis">' . $date_day . '/' . $row['STATS_MONTH'] . '/' . $row['STATS_YEAR'] . '</a>',
				'NBR' => $row['pages']
			));
		}
		$Sql->query_close($result);
	}
	else
	{
		//Nombre de jours pour chaque mois (gestion des années bissextiles)
		$bissextile = (date("L", mktime(0, 0, 0, 1, 1, $year)) == 1) ? 29 : 28;
		$array_month = array(31, $bissextile, 31, 30, 31, 30 , 31, 31, 30, 31, 30, 31);
 
		//Mois précédent et suivant
		$next_month = ($month < 12) ? $month + 1 : 1;
		$next_year = ($month < 12) ? $year : $year + 1;
		$previous_month = ($month > 1) ? $month - 1 : 12;
		$previous_year = ($month > 1) ? $year : $year - 1;
 
		$Template->assign_vars(array(
			'C_statis_VISIT' => true,
			'TYPE' => 'pages',
			'VISIT_TOTAL' => $compteur_total,
			'VISIT_DAY' => $compteur_day,
			'COLSPAN' => $array_month[$month-1] + 2,
			'SUM_NBR' => !empty($info['sum_nbr']) ? $info['sum_nbr'] : 0,
			'MONTH' => $array_l_months[$month - 1],
			'MAX_NBR' => $info['max_nbr'],
			'MOY_NBR' => number_round($info['avg_nbr'], 1),
			'U_NEXT_LINK' => url('.php?m=' . $next_month . '&y=' . $next_year . '&pages=1'),
			'U_PREVIOUS_LINK' => url('.php?m=' . $previous_month . '&y=' . $previous_year . '&pages=1'),
			'U_YEAR' => '<a href="admin_statis' . url('.php?pages_year=' . $year) . '#statis">' . $year . '</a>',
			'U_VISITS_MORE' => '<a href="admin_statis' . url('.php?pages_year=' . $year) . '#statis">' . $LANG['visits_year'] . ' ' . $year . '</a>'
		));
 
		$months = '';
		for ($i = 1; $i <= 12; $i++)
		{
			$selected = ($i == $month) ? ' selected="selected"' : '';
			$months .= '<option value="' . $i . '"' . $selected . '>' . $array_l_months[$i - 1] . '</option>';
		}
 
		//Année maximale
		$info_year = $Sql->query_array(DB_TABLE_STATS, 'MAX(STATS_YEAR) as max_year', 'MIN(STATS_YEAR) as min_year', '', __LINE__, __FILE__);
		$years = '';
		for ($i = $info_year['min_year']; $i <= $info_year['max_year']; $i++)
		{
			$selected = ($i == $year) ? ' selected="selected"' : '';
			$years .= '<option value="' . $i . '"' . $selected . '>' . $i . '</option>';
		}
 
		$Template->assign_vars(array(
			'C_STATS_YEAR' => true,
			'C_STATS_MONTH' => true,
			'STATS_YEAR' => $years,
			'STATS_MONTH' => $months
		));
 
		if (@extension_loaded('gd'))
		{
			$Template->assign_vars(array(
				'GRAPH_RESULT' => '<img src="../kernel/framework/ajax/display_stats.php?pages_month=1&year=' . $year . '&month=' . $month . '" alt="" />'
			));
 
			//On fait la liste des visites journalières
			$result = $Sql->query_while("SELECT pages, STATS_DAY, STATS_MONTH, STATS_YEAR
			FROM " . DB_TABLE_STATS . " WHERE STATS_YEAR = '" . $year . "' AND STATS_MONTH = '" . $month . "'
			ORDER BY STATS_DAY", __LINE__, __FILE__);
			while ($row = $Sql->fetch_assoc($result))
			{
				$date_day = ($row['STATS_DAY'] < 10) ? 0 . $row['STATS_DAY'] : $row['STATS_DAY'];
 
				//On affiche les statis numériquement dans un tableau en dessous
				$Template->assign_block_vars('value', array(
					'U_DETAILS' => '<a href="admin_statis' . url('.php?d=' . $row['STATS_DAY'] . '&m=' . $row['STATS_MONTH'] . '&y=' . $row['STATS_YEAR'] . '&pages=1') . '#statis">' . $date_day . '/' . $row['STATS_MONTH'] . '/' . $row['STATS_YEAR'] . '</a>',
					'NBR' => $row['pages']
				));
			}
			$Sql->query_close($result);
		}
		else
		{
			//Mois selectionné.
			if (!empty($month) && !empty($year))
			{
				$Template->assign_vars(array(
					'C_statis_NO_GD' => true
				));
 
				//On rajoute un 0 devant tous les mois plus petits que 10
				$month = ($month < 10) ? '0' . $month : $month;
				unset($i);
 
				//On fait la liste des visites journalières
				$j = 0;
				$result = $Sql->query_while("SELECT pages, STATS_DAY AS day, STATS_MONTH, STATS_YEAR
				FROM " . DB_TABLE_STATS . " WHERE STATS_YEAR = '" . $year . "' AND STATS_MONTH = '" . $month . "'
				ORDER BY STATS_DAY", __LINE__, __FILE__);
				while ($row = $Sql->fetch_assoc($result))
				{
					//Complétion des jours précédent le premier enregistrement du mois.
					if ($j == 0)
					{
						for ($z = 1; $z < $row['day']; $z++)
						{
							$Template->assign_block_vars('days', array(
								'HEIGHT' => 0
							));
						}
						$j++;
					}
					//Remplissage des trous possibles entre les enregistrements.
					$i = !isset($i) ? $row['day'] : $i;
					$diff = 0;
					if ($row['day'] != $i)
					{
						$diff = $row['day'] - $i;
						for ($j = 0; $j < $diff; $j++)
						{
							$Template->assign_block_vars('days', array(
								'HEIGHT' => 0
							));
						}
					}
					$i += $diff;
 
					//On calcule la proportion (le maximum du mois tiendra toute la hauteur)
					$height = ($row['pages'] / $info['max_nbr']) * 200;
 
					$Template->assign_block_vars('values', array(
						'HEIGHT' => ceil($height)
					));
 
					$Template->assign_block_vars('values.head', array(
					));
 
					$date_day = ($row['day'] < 10) ? '0' . $row['day'] : $row['day'];
 
					//On affiche les statis numériquement dans un tableau en dessous
					$Template->assign_block_vars('value', array(
						'U_DETAILS' => $date_day . '/' . $row['STATS_MONTH'] . '/' . $row['STATS_YEAR'],
						'NBR' => $row['pages']
					));
 
					$i++;
				}
				$Sql->query_close($result);
 
				//Génération des td manquants.
				$date_day = isset($date_day) ? $date_day : 1;
				for	($i = $date_day; $i < ($array_month[$month - 1] - 1); $i++)
				{
					$Template->assign_block_vars('end_td', array(
						'END_TD' => '<td style="width:13px;"> </td>'
					));
				}
 
				//On liste les jours en dessous du graphique
				for ($i = 1; $i <= $array_month[$month - 1]; $i++)
				{
					$Template->assign_block_vars('legend', array(
						'LEGEND' => $i
					));
				}
			}
		}
	}
}
elseif (!empty($referer))
{
	import('util/pagination');
	$Pagination = new Pagination();
 
	$nbr_referer = $Sql->query("SELECT COUNT(DISTINCT(url)) FROM " . DB_TABLE_STATS_REFERER . " WHERE type = 0", __LINE__, __FILE__);
	$result = $Sql->query_while ("SELECT id, count(*) as count, url, relative_url, SUM(total_visit) as total_visit, SUM(today_visit) as today_visit, SUM(yesterday_visit) as yesterday_visit, nbr_day, MAX(last_update) as last_update
	FROM " . PREFIX . "statis_referer
	WHERE type = 0
	GROUP BY url
	ORDER BY total_visit DESC
	" . $Sql->limit($Pagination->get_first_msg(15, 'p'), 15), __LINE__, __FILE__);
	while ($row = $Sql->fetch_assoc($result))
	{
		$average = ($row['total_visit'] / $row['nbr_day']);
		if ($row['yesterday_visit'] > $average)
		{
			$trend_img = 'up.png';
			$sign = '+';
			$trend = number_round((($row['yesterday_visit'] * 100) / $average), 1) - 100;
		}
		elseif ($row['yesterday_visit'] < $average)
		{
			$trend_img = 'down.png';
			$sign = '-';
			$trend = 100 - number_round((($row['yesterday_visit'] * 100) / $average), 1);
		}
		else
		{
			$trend_img = 'right.png';
			$sign = '+';
			$trend = 0;
		}
 
		$Template->assign_block_vars('referer_list', array(
			'ID' => $row['id'],
			'URL' => $row['url'],
			'IMG_MORE' => '<img src="../templates/' . get_utheme() . '/images/upload/plus.png" alt="" onclick="XMLHttpRequest_referer(' . $row['id'] . ')" class="valign_middle" id="img_url' . $row['id'] . '" />',
			'NBR_LINKS' => $row['count'],
			'TOTAL_VISIT' => $row['total_visit'],
			'AVERAGE_VISIT' => number_round($average, 1),
			'LAST_UPDATE' => gmdate_format('date_format_short', $row['last_update']),
			'TREND' => '<img src="../templates/' . get_utheme() . '/images/admin/' . $trend_img . '" alt="" class="valign_middle" /> (' . $sign . $trend . '%)'
		));
	}
	$Sql->query_close($result);
 
	$Template->assign_vars(array(
		'C_statis_REFERER' => true,
		'PAGINATION' => $Pagination->display('admin_statis' . url('.php?referer=1&p=%d'), $nbr_referer, 'p', 15, 3),
		'L_URL' => $LANG['url'],
		'L_TOTAL_VISIT' => $LANG['total_visit'],
		'L_AVERAGE_VISIT' => $LANG['average_visit'],
		'L_TREND' => $LANG['trend'],
		'L_LAST_UPDATE' => $LANG['last_update'],
	));
}
elseif (!empty($keyword))
{
	import('util/pagination');
	$Pagination = new Pagination();
 
	$nbr_keyword = $Sql->query("SELECT COUNT(DISTINCT(relative_url)) FROM " . DB_TABLE_STATS_REFERER . " WHERE type = 1", __LINE__, __FILE__);
	$result = $Sql->query_while ("SELECT id, count(*) as count, relative_url, SUM(total_visit) as total_visit, SUM(today_visit) as today_visit, SUM(yesterday_visit) as yesterday_visit, nbr_day, MAX(last_update) as last_update
	FROM " . PREFIX . "statis_referer
	WHERE type = 1
	GROUP BY relative_url
	ORDER BY total_visit DESC
	" . $Sql->limit($Pagination->get_first_msg(15, 'p'), 15), __LINE__, __FILE__);
	while ($row = $Sql->fetch_assoc($result))
	{
		$average = ($row['total_visit'] / $row['nbr_day']);
		if ($row['yesterday_visit'] > $average)
		{
			$trend_img = 'up.png';
			$sign = '+';
			$trend = number_round((($row['yesterday_visit'] * 100) / $average), 1) - 100;
		}
		elseif ($row['yesterday_visit'] < $average)
		{
			$trend_img = 'down.png';
			$sign = '-';
			$trend = 100 - number_round((($row['yesterday_visit'] * 100) / $average), 1);
		}
		else
		{
			$trend_img = 'right.png';
			$sign = '+';
			$trend = 0;
		}
 
		$Template->assign_block_vars('keyword_list', array(
			'ID' => $row['id'],
			'KEYWORD' => $row['relative_url'],
			'IMG_MORE' => '<img src="../templates/' . get_utheme() . '/images/upload/plus.png" alt="" onclick="XMLHttpRequest_referer(' . $row['id'] . ')" class="valign_middle" id="img_url' . $row['id'] . '" />',
			'NBR_LINKS' => $row['count'],
			'TOTAL_VISIT' => $row['total_visit'],
			'AVERAGE_VISIT' => number_round($average, 1),
			'LAST_UPDATE' => gmdate_format('date_format_short', $row['last_update']),
			'TREND' => '<img src="../templates/' . get_utheme() . '/images/admin/' . $trend_img . '" alt="" class="valign_middle" /> (' . $sign . $trend . '%)'
		));
	}
	$Sql->query_close($result);
 
	$Template->assign_vars(array(
		'C_statis_KEYWORD' => true,
		'PAGINATION' => $Pagination->display('admin_statis' . url('.php?keyword=1&p=%d'), $nbr_keyword, 'p', 15, 3),
		'L_SEARCH_ENGINE' => $LANG['keyword_s'],
		'L_TOTAL_VISIT' => $LANG['total_visit'],
		'L_AVERAGE_VISIT' => $LANG['average_visit'],
		'L_TREND' => $LANG['trend'],
		'L_LAST_UPDATE' => $LANG['last_update'],
	));
}
elseif (!empty($browser) || !empty($os) || !empty($user_lang)) //Graphiques camenbert.
{
	include_once('../lang/' . get_ulang() . '/stats.php');
 
	if (!empty($browser))
	{
		$Template->assign_vars(array(
			'C_statis_BROWSERS' => true,
			'GRAPH_RESULT' => '<img src="../kernel/framework/ajax/display_stats.php?browsers=1" alt="" />',
			'L_BROWSERS' => $LANG['browser_s']
		));
		$stats_menu = 'browsers';
		$array_statis_info = $stats_array_browsers;
		$path = '../images/statis/browsers/';
	}
	elseif (!empty($os))
	{
		$Template->assign_vars(array(
			'C_statis_OS' => true,
			'GRAPH_RESULT' => '<img src="../kernel/framework/ajax/display_stats.php?os=1" alt="" />',
			'L_OS' => $LANG['os']
		));
		$stats_menu = 'os';
		$array_stats_info = $stats_array_os;
		$path = '../images/statis/os/';
	}
	elseif (!empty($user_lang))
	{
		$Template->assign_vars(array(
			'C_statis_LANG' => true,
			'GRAPH_RESULT' => '<img src="../kernel/framework/ajax/display_stats.php?lang=1" alt="" />',
			'L_LANG' => $LANG['stat_lang']
		));
		$stats_menu = 'lang';
		$array_statis_info = $stats_array_lang;
		$path = '../images/statis/countries/';
	}
 
	//On lit le fichier
	$file = @fopen('../cache/' . $stats_menu . '.txt', 'r');
	$stats_array = @fgets($file);
	$stats_array = !empty($stats_array) ? unserialize($stats_array) : array();
	@fclose($file);
	import('util/images_stats');
	$stats = new stats();
 
	$stats->load_data($stats_array, 'ellipse', 5);
 
	//Tri décroissant.
	arsort($stats->data_stats);
 
	//Traitement des données.
	$array_statis_tmp = array();
	$array_order = array();
	$percent_other = 0;
	foreach ($stats->data_stats as $value_name => $angle_value)
	{
		if (!isset($array_statis_info[$value_name]) || $value_name == 'other') //Autres, on additionne le tout.
		{
			$value_name = 'other';
			$angle_value += $percent_other;
			$percent_other += $angle_value;
			$stats_img = '<img src="../templates/' . get_utheme() . '/images/statis/other.png" alt="' . $LANG['other'] . '" />';
			$name_statis = $LANG['other'];
		}
		else
		{
			$stats_img = !empty($array_statis_info[$value_name][1]) ? '<img src="' . $path . $array_statis_info[$value_name][1] . '" alt="' . $array_statis_info[$value_name][0] . '" />' : '-';
			$name_statis = $array_statis_info[$value_name][0];
		}
 
		if (!isset($array_order[$value_name]))
		{
			$array_color = $stats->array_allocated_color[$stats->_image_color_allocate_dark(false, NO_ALLOCATE_COLOR)];
			$array_statis_tmp[$value_name] = array($name_statis, $array_color, $stats_img);
			$array_order[$value_name] = $angle_value;
		}
	}
 
	//Affichage.
	foreach ($array_order as $value_name => $angle_value)
	{
		$Template->assign_block_vars('list', array(
			'COLOR' => 'RGB(' . trim(implode(', ', $array_statis_tmp[$value_name][1]), ', ') . ')',
			'IMG' => $array_statis_tmp[$value_name][2],
			'L_NAME' => $array_statis_tmp[$value_name][0],
			'PERCENT' => number_round(($angle_value/3.6), 1),
		));
	}
}
elseif ($bot)
{
	$Template->assign_vars(array(
		'C_statis_ROBOTS' => true,
		'L_ERASE_RAPPORT' => $LANG['erase_rapport'],
		'L_ERASE' => $LANG['erase'],
		'L_COLORS' => $LANG['colors'],
		'L_VIEW_NUMBER' => $LANG['number_r_visit'],
		'L_LAST_UPDATE' => $LANG['last_update']
	));
 
	//On lit le fichier
	$file = @fopen('../cache/robots.txt', 'r');
	$robot_serial = @fgets($file);
	$array_robot = !empty($robot_serial) ? unserialize($robot_serial) : array('other' => 0);
	$stats_array = array();
	$array_date = array(0 => 0, 1 => 0, 2 => 0);
	if (is_array($array_robot))
	{
		foreach ($array_robot as $key => $value)
		{
			$array_info = explode('/', $value);
			if (isset($array_info[0]) && isset($array_info[1]))
			{
				$stats_array[$array_info[0]] = $array_info[1];
				$array_date[$array_info[0]] = array(substr($array_info[2], 2, 2), substr($array_info[2], 4, 2), substr($array_info[2], 6, 2));
			}
		}
	}
 
	import('util/images_stats');
	$stats = new stats();
 
	$stats->load_data($stats_array, 'ellipse');
 
	$stats_info = array('Google bot' => 'google.gif', 'Yahoo Slurp' => 'yahoo.gif', 'Msn bot' => 'msn.gif', 'Voila' => 'voila.gif', 'Gigablast' => 'gigablast.gif', 'Ia archiver' => 'ia_archiver.gif', 'Exalead' => 'exalead.gif');
 
	foreach ($stats->data_stats as $key => $angle_value)
	{
		if (isset($stats_info[$key]))
		{
			$array_color = $stats->array_allocated_color[$stats->_image_color_allocate_dark(false, NO_ALLOCATE_COLOR)];
			$name = ucfirst(str_replace(array('_', '.gif'), array(' ', ' '), $stats_info[$key]));
			$Template->assign_block_vars('list', array(
				'COLOR' => 'RGB(' . $array_color[0] . ', ' . $array_color[1] . ', ' . $array_color[2] . ')',
				'IMG' => !empty($stats_info[$key]) ? '<img src="../images/statis/bot/' . $stats_info[$key] . '" alt="' . $name . '" />' : '',
				'VIEWS' => number_round(($angle_value * $stats->nbr_entry)/360, 0),
				'PERCENT' => number_round(($angle_value/3.6), 1),
				'DATE' => gmdate_format('date_format_short', mktime(0, 0, 0, $array_date[$key][1], $array_date[$key][2], $array_date[$key][0])),
				'L_NAME' => ($name == 'Other') ? $LANG['other'] : $name
			));
		}
	}
}
else
{
	$Template->assign_vars(array(
		'C_statis_SITE' => true,
		'START' => gmdate_format('date_format_short', $CONFIG['start']),
		'VERSION' => $CONFIG['version'],
		'L_START' => $LANG['start'],
		'L_VERSION' => $LANG['version']
	));
}
 
 
$Template->pparse('admin_statis_management');
 
require_once('../admin/admin_footer.php');
 
?>




Edité par bfja Le 26/09/09 à 18h22

pm    
   Le 26/09/09 à 18h21 Citer      

Booster Fusée

Groupe: Membre

Sexe:
Inscrit le: 23/09/08
Messages: 1706
Lieu: Aix en provence
vers la 930 tu as un "FROM " . PREFIX . "statis_referer" , par contre pour poster du coide php encadre le avec des balise bbcode Code BBCODE :
[code=php][/code]


____________________

pm    
   Le 26/09/09 à 18h29 Citer      

Booster Fronde

Groupe: Membre

Sexe:
Inscrit le: 06/08/09
Messages: 24
Lieu: Anse (69)
Plus de message d'erreur !!

Par contre, c'est peut-être normal, mais je n'ai rien qui s'affiche pour sites référents et rien dans le tableau pour les mots clés.

Merci beaucoup.



Edité par bfja Le 26/09/09 à 18h45

pm    
   Le 27/09/09 à 10h54 Citer      

Administrateur

Equipe historique

Sexe:
Inscrit le: 04/08/05
Messages: 11001
Lieu: Aix en Provence
Ces informations vont se remplir petit à petit normalement, ça devrait venir.
C'est bon, tu n'as pas d'autres erreurs ?
____________________
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++:
"There are two ways to write error-free programs; only the third works."

pm ben.popeye@phpboost.com http://www.phpboost.com    
   Le 27/09/09 à 11h44 Citer      

Booster Fronde

Groupe: Membre

Sexe:
Inscrit le: 06/08/09
Messages: 24
Lieu: Anse (69)
Ok, non plus aucune erreur.

Merci beaucoup pour votre aide à tous et surtout à ben.popeye.

Je voulais aussi vous féliciter pour ce CMS, c'est du super boulot.

A+

Aurél

pm    
3 Utilisateurs en ligne :: 0 Administrateur, 0 Modérateur, 0 Membre et 3 Visiteurs
Utilisateurs en ligne: Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
Annonces