X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Fgenie%2Fpopularites.php;fp=www%2Fecrire%2Fgenie%2Fpopularites.php;h=a30a7c46d2643193c043a8fc860cb00e7f259aa6;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/genie/popularites.php b/www/ecrire/genie/popularites.php new file mode 100644 index 0000000..a30a7c4 --- /dev/null +++ b/www/ecrire/genie/popularites.php @@ -0,0 +1,84 @@ +'maj', 'popularite' => "popularite * $a"), 'popularite>1'); + + // enregistrer les metas... + $row = sql_fetsel('MAX(popularite) AS max, SUM(popularite) AS tot', "spip_articles"); + ecrire_meta("popularite_max", $row['max']); + ecrire_meta("popularite_total", $row['tot']); + + + // Une fois par jour purger les referers du jour ; qui deviennent + // donc ceux de la veille ; au passage on stocke une date_statistiques + // dans spip_meta - cela permet au code d'etre "reentrant", ie ce cron + // peut etre appele par deux bases SPIP ne partageant pas le meme + // _DIR_TMP, sans tout casser... + + $aujourdhui = date("Y-m-d"); + if (($d = $GLOBALS['meta']['date_statistiques']) != $aujourdhui) { + spip_log("Popularite: purger referer depuis $d"); + ecrire_meta('date_statistiques', $aujourdhui); + if (strncmp($GLOBALS['connexions'][0]['type'],'sqlite',6)==0) + spip_query("UPDATE spip_referers SET visites_veille=visites_jour, visites_jour=0"); + else + // version 3 fois plus rapide, mais en 2 requetes + #spip_query("ALTER TABLE spip_referers CHANGE visites_jour visites_veille INT( 10 ) UNSIGNED NOT NULL DEFAULT '0',CHANGE visites_veille visites_jour INT( 10 ) UNSIGNED NOT NULL DEFAULT '0'"); + #spip_query("UPDATE spip_referers SET visites_jour=0"); + // version 4 fois plus rapide que la premiere, en une seule requete + sql_alter("TABLE spip_referers DROP visites_veille, + CHANGE visites_jour visites_veille INT(10) UNSIGNED NOT NULL DEFAULT '0', + ADD visites_jour INT(10) UNSIGNED NOT NULL DEFAULT '0'"); + } + + // et c'est fini pour cette fois-ci + return 1; + +} + +?>