iPédiatre
 Tout Classes Fichiers Fonctions Variables
dashboard.php
Aller à la documentation de ce fichier.
1 <?php
2 $Module = $Params['Module'];
3 $tpl = eZTemplate::factory();
4 $http = eZHTTPTool::instance();
5 $user = eZUser::currentUser();
6 $ini = eZINI::instance();
7 
8 // On récupère le noeud principal de l'utilisateur
9 $userNode = eZUser::currentUser()->contentObject()->mainNode();
10 
11 // On récupère les données de connection à la base de données
12 $ini = eZINI::instance();
13 $user = $ini->variable('DatabaseSettings', 'User');
14 $passwd = $ini->variable('DatabaseSettings', 'Password');
15 $host = $ini->variable('DatabaseSettings', 'Server');
16 $dbname = $ini->variable('DatabaseSettings', 'Database');
17 
18 // On récupère les node ids de tous les articles publiés sur la page du pédiatre
19 // $nodes_id_array = array_map(function($node){return $node->attribute('node_id');}, $userNode->children());
20 
21 // On crée une connection à la base de données
22 $db = ezcDbFactory::create( "mysql://{$user}:{$passwd}@{$host}/{$dbname}" );
23 
24 // On crée un tableau contenant tous les nodes ids
25 $nodes = array_map(function($child){return $child->attribute('node_id');}, $userNode->children());
26 $nodes[] = $userNode->attribute('node_id');
27 
28 $q = $db->createSelectQuery();
29 
30 $stmt = $q->selectDistinct('session_id')
31  ->from('ipediatre_visits')
32  ->where($q->expr->in('node_id', $nodes))
33  ->prepare();
34 
35 $stmt->execute();
36 $rows = $stmt->fetchAll();
37 
38 $families = count($rows);
39 
40 $q = $db->createSelectQuery();
41 
42 $stmt = $q->select($q->expr->count('*'))
43  ->from('ipediatre_visits')
44  ->where($q->expr->in('node_id', $nodes))
45  ->prepare();
46 
47 $stmt->execute();
48 $rows = $stmt->fetch();
49 
51 
52 $q = $db->createSelectQuery();
53 
54 $stmt = $q->select($q->expr->min('date'))
55  ->from('ipediatre_visits')
56  ->where($q->expr->in('node_id', $nodes))
57  ->prepare();
58 
59 $stmt->execute();
60 $rows = $stmt->fetch();
61 
62 $from = $rows[0];
63 
64 $q = $db->createSelectQuery();
65 
66 $stmt = $q->select($q->expr->max('date'))
67  ->from('ipediatre_visits')
68  ->where($q->expr->in('node_id', $nodes))
69  ->prepare();
70 
71 $stmt->execute();
72 $rows = $stmt->fetch();
73 
74 $to = $rows[0];
75 
76 $tpl->setVariable('from', $from);
77 $tpl->setVariable('to', $to);
78 $tpl->setVariable('families', $families);
79 $tpl->setVariable('views', $views);
80 
81 
82 $Result['content'] = $tpl->fetch('design:ip/dashboard.tpl');
83