Forum PHPBoost
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 ?
Rien ne marche en fait dans le module. Est-ce que tu veux que je t'envoie mes fichiers du module ?
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++:
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."
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
bfja.go1.cc
Edité par bfja Le 26/09/09 à 12h14
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.
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++:
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."
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
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
Citation:
Tu peut nous coller l'erreur afficher ici stp
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
Erreur fatale : Invalid SQL request
SELECT SUM(pages) FROM bfja_statis
Table 'bfja.bfja_statis' doesn't exist
Ligne 533 : admin_statis.php
SELECT SUM(pages) FROM bfja_statis
Table 'bfja.bfja_statis' doesn't exist
Ligne 533 : admin_statis.php
ben.popeye:
la il doit en rester
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.
Ca enlèvera les erreurs des requêtes SQL.
On y verra plus clair après.
la il doit en rester
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
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
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
Edité par Crunchfamily Le 26/09/09 à 18h14
Code PHP :
Edité par bfja Le 26/09/09 à 18h22
<?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
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]
Ces informations vont se remplir petit à petit normalement, ça devrait venir.
C'est bon, tu n'as pas d'autres erreurs ?
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++:
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."
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
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
3 Utilisateurs en ligne :: 0 Administrateur, 0 Modérateur, 0 Membre et 3 Visiteurs
Utilisateurs en ligne: Aucun membre connecté
Utilisateurs en ligne: Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie





PHPBoost

Support
Téléchargements
Développement
Communauté














