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&userid='.$user['id'].'&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