1<?php
2require_once dirname(__FILE__).'/../accesscheck.php';
3if (!defined('PHPLISTINIT')) {
4    exit;
5}
6
7if (!$_GET['id']) {
8    Fatal_Error(s('no such User'));
9
10    return;
11} else {
12    $id = sprintf('%d', $_GET['id']);
13}
14$status = "";
15
16$result = Sql_query("SELECT * FROM {$GLOBALS['tables']['user']} where id = $id");
17if (!Sql_Affected_Rows()) {
18    Fatal_Error(s('no such User'));
19
20    return;
21}
22$user = sql_fetch_array($result);
23
24$ls = new WebblerListing(s('Campaigns'));
25if (Sql_Table_Exists($GLOBALS['tables']['usermessage'])) {
26    $msgs = Sql_Query(sprintf(
27        'select messageid,
28            entered,
29            viewed,
30            (viewed = 0 or viewed is null) as notviewed,
31            abs(unix_timestamp(entered) - unix_timestamp(viewed)) as responsetime,
32            (select max(time)
33                from %s umb
34                where umb.message = messageid and umb.user = userid
35            ) as bouncetime
36            from %s
37            where userid = %d and status = "sent"
38            order by entered desc',
39        $GLOBALS['tables']['user_message_bounce'],
40        $GLOBALS['tables']['usermessage'],
41        $user['id']
42    ));
43    $num = Sql_Affected_Rows();
44} else {
45    $num = 0;
46}
47printf('%d '.s('messages sent to this user').'<br/>', $num);
48if ($num) {
49    $resptime = 0;
50    $totalresp = 0;
51    $ls->setElementHeading(s('Campaign'));
52
53    while ($msg = Sql_Fetch_Array($msgs)) {
54        $element = sprintf('<!--%d--> %s', $msg['messageid'],  campaignTitle($msg['messageid']));
55        $ls->addElement($element, PageURL2('message', s('view'), 'id='.$msg['messageid']));
56
57        if (defined('CLICKTRACK') && CLICKTRACK) {
58            $clicksreq = Sql_Fetch_Row_Query(sprintf('select sum(clicked) as numclicks from %s where userid = %s and messageid = %s',
59                $GLOBALS['tables']['linktrack_uml_click'], $user['id'], $msg['messageid']));
60            $clicks = sprintf('%d', $clicksreq[0]);
61            if ($clicks) {
62                $ls->addColumn($element, s('clicks'),
63                    PageLink2('userclicks&amp;userid='.$user['id'].'&amp;msgid='.$msg['messageid'], $clicks));
64            } else {
65                $ls->addColumn($element, s('clicks'), 0);
66            }
67        }
68
69        $ls->addColumn($element, s('sent'), formatDateTime($msg['entered'], 1));
70        if (!$msg['notviewed']) {
71            $viewed = formatDateTime($msg['viewed'], 1);
72            $responseTime = secs2time($msg['responsetime']);
73            $resptime += $msg['responsetime'];
74            $totalresp += 1;
75        } else {
76            $viewed = '';
77            $responseTime = '';
78        }
79        $ls->addColumn($element, s('viewed'), $viewed);
80        $ls->addColumn($element, s('Response time'), $responseTime);
81
82        if ($msg['bouncetime']) {
83            $ls->addColumn($element, s('bounce'), formatDateTime($msg['bouncetime'], 1));
84        }
85    }
86    if ($totalresp) {
87        $avgresp = sprintf('%d', ($resptime / $totalresp));
88        $ls->addElement('<strong>'.s('Average response time: ').'</strong>'.secs2time($avgresp));
89    }
90}
91
92echo $ls->display();
93