source: spip-zone/_plugins_/ab_testing/exec/ab_testing.php @ 32393

Last change on this file since 32393 was 32393, checked in by fil@…, 10 years ago

un plugin pour des split tests A/B

File size: 2.1 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5include_spip('inc/presentation');
6
7
8function exec_ab_testing() {
9
10        pipeline('exec_init',array('args'=>array('exec'=>_request('exec')),'data'=>''));
11
12        $commencer_page = charger_fonction('commencer_page', 'inc');
13        echo $commencer_page(_L('A/B Testing'), "accueil", "accueil");
14
15
16        echo gros_titre(_L('A/B Testing'), '', false);
17
18        echo debut_gauche("",true);
19        echo creer_colonne_droite("", true);
20        echo pipeline('affiche_droite',array('args'=>array('exec'=>_request('exec')),'data'=>''));
21        echo debut_droite("", true);
22
23
24        if (!function_exists('xcache_inc'))
25                echo debut_cadre_trait_couleur('', true)
26                        ."A/B testing necessite un serveur avec l'extension XCache"
27                        .fin_cadre_trait_couleur(true);
28        else
29                bloc_ab_testing(_request('reset') == 'oui');
30
31
32        echo "<br /><br /><br /><br /><br />\n"; # goret
33        echo debut_cadre_trait_couleur('', true);
34        echo "<a href='".generer_url_ecrire('cfg', 'cfg=ab')."'>Configuration</a>";
35        echo " - ";
36        echo "<a href='".parametre_url(self(), 'reset', 'oui')."'
37                onclick='return confirm(&quot;on efface ?&quot;);'
38                >Reset</a>";
39        echo fin_cadre_trait_couleur(true);
40
41
42        echo pipeline('affiche_milieu',array('args'=>array('exec'=>_request('exec')),'data'=>''));
43        echo fin_gauche(), fin_page();
44
45
46}
47
48
49function bloc_ab_testing($reset = false) {
50
51        # lire la config
52        $cfg = @unserialize($GLOBALS['meta']['ab']);
53
54        if (!$cfg['urls']) {
55                echo ('Aucune URL suivie !');
56                return;
57        }
58
59        if (!$n = intval($cfg['n'])) $n = 2;
60
61        for ($i=0; $i<$n; $i++) {
62                echo "<h4>Cohorte $i</h4>\n";
63                echo "<table class='spip'>\n";
64                echo "<tr><th>URI</th><th>hits</th><th>%</th></tr>\n";
65                foreach (array_filter(preg_split(",[\r\n]+,", $cfg['urls'])) as $page) {
66                        $mem = ab_silo($page, $i);
67                        if ($reset) xcache_set($mem, 0);
68                        $m[$i][$page] = xcache_get($mem);
69                }
70                if (!$max[$i] = @max($m[$i])) $max[$i] = 1;
71
72                foreach (array_filter(preg_split(",[\r\n]+,", $cfg['urls'])) as $page) {
73                        $pc = ceil(1000*$m[$i][$page]/$max[$i])/10;
74                        echo "<tr><td>$page</td><td>".$m[$i][$page]."</td><td>".$pc."%</td></tr>\n";
75                }
76                echo "</table>\n";
77                echo "Squelettes pour cette cohorte: <a href='/AB$i' target='_AB$i'>/AB$i/</a>";
78        }
79
80
81
82}
83
84?>
Note: See TracBrowser for help on using the repository browser.