Subversion Repositories Sites.tela-botanica.org

Rev

Rev 609 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 david 1
<?php
2
 
3
/***************************************************************************\
4
 *  SPIP, Systeme de publication pour l'internet                           *
5
 *                                                                         *
6
 *  Copyright (c) 2001-2005                                                *
7
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8
 *                                                                         *
9
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11
\***************************************************************************/
12
 
13
 
14
include ("inc.php3");
15
 
16
 
17
debut_page(_T('titre_page_statistiques'), "suivi", "repartition");
18
 
19
	if ($spip_ecran == "large") {
20
		$largeur_table = 974;
21
		$taille = 550;
22
	} else {
23
		$largeur_table = 750;
24
		$taille = 400;
25
	}
26
 
27
echo "<center><table width='$largeur_table'><tr width='$largeur_table'><td width='$largeur_table' class='verdana2'>";
28
 
29
 
30
echo "<br><br>";
31
echo "<center>";
32
gros_titre(_T('titre_page_statistiques'));
33
echo "</center>";
34
//if (lire_meta('multi_articles') == 'oui' OR lire_meta('multi_rubriques') == 'oui')
35
//	barre_onglets("repartition", "rubriques");
36
 
37
if ($GLOBALS["critere"] == "debut") {
38
	$critere = "visites";
39
//	gros_titre(_T('onglet_repartition_debut'));
40
}
41
else {
42
	$critere = "popularite";
43
//	gros_titre(_T('onglet_repartition_actuelle'));
44
}
45
 
46
if ($critere == "popularite") barre_onglets("stat_depuis", "popularite");
47
else barre_onglets("stat_depuis", "debut");
48
 
49
 
50
 
51
//debut_gauche();
52
 
53
//debut_droite();
54
 
55
if ($connect_statut != '0minirezo') {
56
	echo _T('avis_non_acces_page');
57
	fin_page();
58
	exit;
59
}
60
 
61
//
62
// Statistiques sur le site
63
//
64
 
65
 
66
function enfants($id_parent){
67
	global $nombre_vis;
68
	global $total_vis;
69
	global $nombre_abs;
70
	global $critere;
71
 
72
	$query = "SELECT id_rubrique FROM spip_rubriques WHERE id_parent='$id_parent'";
73
	$result = spip_query($query);
74
	$nombre = 0;
75
 
76
	while($row = spip_fetch_array($result)) {
77
		$id_rubrique = $row['id_rubrique'];
78
 
79
		$query2 = "SELECT SUM(".$critere.") AS cnt FROM spip_articles WHERE id_rubrique='$id_rubrique'";
80
		$result2 = spip_query($query2);
81
		$visites = 0;
82
		if ($row2 = spip_fetch_array($result2)) {
83
			$visites = $row2['cnt'];
84
		}
85
		$nombre_abs[$id_rubrique] = $visites;
86
		$nombre_vis[$id_rubrique] = $visites;
87
		$nombre += $visites;
88
		$nombre += enfants($id_rubrique);
89
	}
90
	$nombre_vis[$id_parent] += $nombre;
91
	return $nombre;
92
}
93
 
94
 
95
function enfants_aff($id_parent,$decalage, $gauche=0) {
96
	global $total_vis;
97
	global $ifond;
98
	global $niveau;
99
	global $nombre_vis;
100
	global $nombre_abs;
101
	global $couleur_claire, $couleur_foncee, $spip_lang_right, $spip_lang_left;
102
	global $abs_total;
103
	global $taille;
104
 
105
	$query="SELECT id_rubrique, titre FROM spip_rubriques WHERE id_parent='$id_parent' ORDER BY 0+titre, titre";
106
	$result=spip_query($query);
107
 
108
 
109
	while($row = spip_fetch_array($result)){
110
		$id_rubrique = $row['id_rubrique'];
111
		$titre = typo($row['titre']);
112
 
113
		if ($nombre_vis[$id_rubrique]>0 OR $nombre_abs[$id_rubrique]>0){
114
			$largeur_rouge = floor(($nombre_vis[$id_rubrique] - $nombre_abs[$id_rubrique]) * $taille / $abs_total);
115
			$largeur_vert = floor($nombre_abs[$id_rubrique] * $taille / $abs_total);
116
 
117
			if ($largeur_rouge+$largeur_vert>0){
118
 
119
				if ($niveau == 0) {
120
					$couleur="#cccccc";
121
				}
122
 
123
				else if ($niveau == 1) {
124
					$couleur="#eeeeee";
125
				}
126
				else {
127
					$couleur="white";
128
				}
129
				echo "<TABLE CELLPADDING=2 CELLSPACING=0 BORDER=0 width='100%'>";
130
				echo "<TR BGCOLOR='$couleur' BACKGROUND='" . _DIR_IMG_PACK . "rien.gif' width='100%'>";
131
				echo "<TD style='border-bottom: 1px solid #aaaaaa; padding-$spip_lang_left: ".($niveau*20+5)."px;'>";
132
				if ($niveau==0 OR 1==1){
133
					$pourcent = round($nombre_vis[$id_rubrique]/$abs_total*1000)/10;
134
					echo "<div class='verdana1' style='float: $spip_lang_right;'>$pourcent%</div>";
135
				}
136
 
137
				//echo "<IMG SRC='" . _DIR_IMG_PACK . "rien.gif' WIDTH='".($niveau*20+1)."' HEIGHT=8 BORDER=0>";
138
 
139
 
140
				if ( $largeur_rouge > 2) echo bouton_block_invisible("stats$id_rubrique");
141
 
142
				echo "<span class='verdana1'>";
143
				echo "<A HREF='naviguer.php3?id_rubrique=$id_rubrique' style='color: black;'>$titre</A>";
144
 
145
 
146
				echo "</span>";
147
				echo "</TD><TD ALIGN='right' width='".($taille+5)."' style='border-bottom: 1px solid #aaaaaa;'>";
148
 
149
 
150
				echo "<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 WIDTH=".($decalage+1+$gauche)." HEIGHT=8>";
151
				echo "<TR>";
152
				if ($gauche > 0) echo "<td width='".$gauche."'></td>";
153
				echo "<TD style='background-color: #eeeeee; border: 1px solid #999999; white-space: nowrap;'>";
154
				if ($visites_abs > 0) echo "<img src='" . _DIR_IMG_PACK . "rien.gif' width='".$visites_abs."' height=8 border=0>";
155
				if ($largeur_rouge>0) echo "<IMG SRC='" . _DIR_IMG_PACK . "rien.gif' style='background-color: $couleur_foncee;' WIDTH=$largeur_rouge HEIGHT=8 BORDER=0>";
156
				if ($largeur_vert>0) echo "<IMG SRC='" . _DIR_IMG_PACK . "rien.gif' style='background-color: $couleur_claire;' WIDTH=$largeur_vert HEIGHT=8 BORDER=0>";
157
 
158
				echo "</TD></TR></TABLE>\n";
159
				echo "</TD></TR></table>";
160
			}
161
		}
162
 
163
		if ($largeur_rouge > 0) {
164
			$niveau++;
165
			echo debut_block_invisible("stats$id_rubrique");
166
			enfants_aff($id_rubrique,$largeur_rouge, $visites_abs+$gauche);
167
			echo fin_block();
168
			$niveau--;
169
		}
170
		$visites_abs = $visites_abs + round($nombre_vis[$id_rubrique]/$abs_total*$taille);
171
	}
172
}
173
 
174
 
175
 
176
$abs_total=enfants(0);
177
if ($abs_total<1) $abs_total=1;
178
$nombre_vis[0] = 0;
179
 
180
$query = "SELECT id_rubrique FROM spip_rubriques WHERE id_parent='0'";
181
$result = spip_query($query);
182
 
183
while($row = spip_fetch_array($result)) {
184
	$id_rubrique = $row['id_rubrique'];
185
	if ($nombre_vis[$id_rubrique] > $total_vis) $total_vis+=$nombre_vis[$id_rubrique];
186
}
187
 
188
if ($total_vis<1) $total_vis=1;
189
 
190
debut_cadre_relief("statistiques-24.gif");
191
echo "<div style='border: 1px solid #aaaaaa;'>";
192
enfants_aff(0,$taille);
193
echo "</div>";
194
 
195
 
196
 
197
echo "<P><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=3>"._T('texte_signification')."</FONT>";
198
 
199
 
200
fin_cadre_relief();
201
 
202
echo "</td></tr></table></center>";
203
 
204
//fin_page();
205
 
206
?>
207