<?php // click stats per message require_once dirname(__FILE__).'/accesscheck.php'; if (isset($_GET['id'])) { $id = sprintf('%d', $_GET['id']); } else { $id = 0; } if (isset($_GET['start'])) { $start = sprintf('%d', $_GET['start']); } else { $start = 0; } $addcomparison = 0; $access = accessLevel('mviews'); //print "Access level: $access"; switch ($access) { case 'owner': $subselect = ' and owner = '.$_SESSION['logindetails']['id']; if ($id) { $allow = Sql_Fetch_Row_query( sprintf( 'select owner from %s where id = %d %s' , $GLOBALS['tables']['message'] , $id , $subselect) ); if ($allow[0] != $_SESSION['logindetails']['id']) { echo s('You do not have access to this page'); return; } } $addcomparison = 1; break; case 'all': $subselect = ''; break; case 'none': default: $subselect = ' where id = 0'; echo s('You do not have access to this page'); return; break; } $download = !empty($_GET['dl']); if (!$id) { echo '<div id="contentdiv"></div>'; echo asyncLoadContent('./?page=pageaction&action=mviews&ajaxed=true&id='.$id.'&start='.$start.addCsrfGetToken()); return; } if ($download) { ob_end_clean(); // header("Content-type: text/plain"); header('Content-type: text/csv'); ob_start(); } echo '<p class="pull-left">'.PageLinkButton('statsoverview&id='.$id, s('Campaign statistics')).'</p>'; if (empty($start)) { echo '<p class="pull-right">'.PageLinkButton('mviews&dl=true&id='.$id.'&start='.$start, s('Download as CSV file')).'</p><div class="clearfix"></div>'; } //print '<h3>'.s('View Details for a Message').'</h3>'; $messagedata = Sql_Fetch_Array_query( "SELECT * FROM {$tables['message']} WHERE id = $id $subselect" ); echo '<table class="mviewsDetails table table-bordered"><tr><td>' . '<div class="twelve columns col-sm-12 col-lg-6"><b>'.s('Subject').': </b><i>'.$messagedata['subject'].'</i></div>'. '<div class="clearfix hidden-lg"></div>'. '<div class="six columns col-sm-8 col-lg-3"><b>'.s('Entered').': </b>'.formatDateTime($messagedata['entered']).'</div>'. '<div class="six columns col-sm-4 col-lg-3"><b>'.s('Sent').': </b>'.formatDateTime($messagedata['sent']).'</div>'. '</td></tr></table>'; if ($download) { header('Content-disposition: attachment; filename="phpList Message open statistics for '.$messagedata['subject'].'.csv"'); } $ls = new WebblerListing(s('Open statistics')); $ls->setElementHeading(s('Subscriber')); $req = Sql_Query( sprintf( 'select um.userid from %s um , %s msg where um.messageid = %d and um.messageid = msg.id and um.viewed is not null %s group by userid' , $GLOBALS['tables']['usermessage'] , $GLOBALS['tables']['message'] , $id , $subselect) ); $total = Sql_Affected_Rows(); if (isset($start) && $start > 0) { $listing = s('Listing user %d to %d', $start, $start + MAX_OPENS_PP); $limit = "limit $start,".MAX_OPENS_PP; } else { $listing = sprintf(s('Listing user %d to %d'), 1, MAX_OPENS_PP); $limit = 'limit 0,'.MAX_OPENS_PP; $start = 0; $limit = 'limit 0,'.MAX_OPENS_PP; } //# hmm, this needs more work, as it'll run out of memory, because it's building the entire //# listing before pushing it out. //# would be best to not have a limit, but putting one to avoid that if ($download) { $limit = ' limit 100000'; } if ($id) { $url_keep = '&id='.$id; } else { $url_keep = ''; } if ($total) { $paging = simplePaging("mviews$url_keep", $start, $total, MAX_OPENS_PP, s('Entries')); $ls->usePanel($paging); } $req = Sql_Query( sprintf( 'select userid , email , um.entered as sent , min(um.viewed) as firstview , max(um.viewed) as lastview , count(um.viewed) as uniqueviews , msg.viewed as totalcampaignviews , abs(unix_timestamp(um.entered) - unix_timestamp(um.viewed)) as responsetime from %s um , %s user , %s msg where um.messageid = %d and um.messageid = msg.id and um.userid = user.id and um.status = "sent" and um.viewed is not null %s group by userid order by lastview desc %s' , $GLOBALS['tables']['usermessage'] , $GLOBALS['tables']['user'] , $GLOBALS['tables']['message'] , $id , $subselect , $limit ) ); $summary = array(); while ($row = Sql_Fetch_Array($req)) { $allViewsReq = Sql_Query( sprintf( 'select * from %s where userid = %d and messageid = %d order by viewed' , $GLOBALS['tables']['user_message_view'] , $row['userid'] , $id )); $totalSubscriberViews = Sql_Affected_Rows(); if ($download) { //# with download, the 50 per page limit is not there. set_time_limit(60); $element = $row['email']; $separator = ','; } else { $element = shortenEmailDisplay($row['email'], 35); $separator = '<br/>'; } $ls->addElement($element, PageUrl2('user&id='.$row['userid'])); $ls->addColumn($element, s('Sent'), formatDateTime($row['sent'], 1)); $ls->addColumn($element, s('Response time'), secs2time($row['responsetime'])); if ($totalSubscriberViews > 0) { $ls->addColumn($element, s('Total views'), $totalSubscriberViews); $viewTimes = array(); while ($row2 = Sql_Fetch_Assoc($allViewsReq)) { $viewTimes[] = formatDateTime($row2['viewed'], 1); } $ls->addColumn($element, s('Viewed'), implode($separator, $viewTimes)); } } if ($download) { ob_end_clean(); echo $ls->tabDelimited(); } else { echo $ls->display(); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
PEAR | Folder | 0755 |
|
|
PHPMailer | Folder | 0755 |
|
|
PHPMailer6 | Folder | 0755 |
|
|
actions | Folder | 0755 |
|
|
css | Folder | 0755 |
|
|
data | Folder | 0755 |
|
|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
inc | Folder | 0755 |
|
|
info | Folder | 0755 |
|
|
js | Folder | 0755 |
|
|
locale | Folder | 0755 |
|
|
onyxrss | Folder | 0755 |
|
|
plugins | Folder | 0755 |
|
|
tests | Folder | 0755 |
|
|
ui | Folder | 0755 |
|
|
.gitignore | File | 20 B | 0644 |
|
.htaccess | File | 489 B | 0644 |
|
.minceconf | File | 994 B | 0644 |
|
AnalyticsQuery.php | File | 985 B | 0644 |
|
CsvReader.php | File | 1.27 KB | 0644 |
|
EmailSender.php | File | 477 B | 0644 |
|
Updater.php | File | 193 B | 0644 |
|
about.php | File | 7.4 KB | 0644 |
|
accesscheck.php | File | 715 B | 0644 |
|
addprefix.php | File | 1.01 KB | 0644 |
|
adduser.php | File | 46 B | 0644 |
|
admin.php | File | 12.77 KB | 0644 |
|
adminattributes.php | File | 7.46 KB | 0644 |
|
admins.php | File | 5.16 KB | 0644 |
|
analytics.php | File | 2.84 KB | 0644 |
|
attributes.php | File | 26.2 KB | 0644 |
|
blacklistemail.php | File | 1.22 KB | 0644 |
|
bounce.php | File | 11.14 KB | 0644 |
|
bouncemgt.php | File | 1.44 KB | 0644 |
|
bouncerule.php | File | 4.27 KB | 0644 |
|
bouncerules.php | File | 6.33 KB | 0644 |
|
bounces.php | File | 7.57 KB | 0644 |
|
catlists.php | File | 3.34 KB | 0644 |
|
checkbouncerules.php | File | 1.43 KB | 0644 |
|
checki18n.php | File | 3.13 KB | 0644 |
|
checkprerequisites.php | File | 1.62 KB | 0644 |
|
class.image.inc | File | 3.9 KB | 0644 |
|
class.phplistmailer.php | File | 30.73 KB | 0644 |
|
class.phplistmailerbase.php | File | 1.67 KB | 0644 |
|
community.php | File | 3.5 KB | 0644 |
|
communityfeed.php | File | 2.36 KB | 0644 |
|
configure.php | File | 7.85 KB | 0644 |
|
connect.php | File | 89.86 KB | 0644 |
|
convertstats.php | File | 5.83 KB | 0644 |
|
converttoutf8.php | File | 3.78 KB | 0644 |
|
cron.php | File | 3.34 KB | 0644 |
|
date.php | File | 7.65 KB | 0644 |
|
dbcheck.php | File | 3.7 KB | 0644 |
|
defaultFrontendTexts.php | File | 9.79 KB | 0644 |
|
defaultconfig.php | File | 30.66 KB | 0644 |
|
defaultplugin.php | File | 31.59 KB | 0644 |
|
defaults.php | File | 3.64 KB | 0644 |
|
defaultsystemtemplate.php | File | 15.29 KB | 0644 |
|
defaulttest.php | File | 1.23 KB | 0644 |
|
dlusers.php | File | 235 B | 0644 |
|
domainbounces.php | File | 507 B | 0644 |
|
domainstats.php | File | 371 B | 0644 |
|
editattributes.php | File | 8.78 KB | 0644 |
|
editlist.php | File | 7.4 KB | 0644 |
|
eventlog.php | File | 4.68 KB | 0644 |
|
export.php | File | 6.86 KB | 0644 |
|
exportuserdata.php | File | 8.26 KB | 0644 |
|
fckphplist.php | File | 49.84 KB | 0644 |
|
gchart.php | File | 903 B | 0644 |
|
generatebouncerules.php | File | 5.51 KB | 0644 |
|
home.php | File | 6.56 KB | 0644 |
|
hostedprocessqueuesetup.php | File | 3.09 KB | 0644 |
|
htaccess | File | 311 B | 0644 |
|
image.php | File | 2.01 KB | 0644 |
|
import.php | File | 2.75 KB | 0644 |
|
import1.php | File | 11.09 KB | 0644 |
|
import2.php | File | 34.16 KB | 0644 |
|
import3.php | File | 22.72 KB | 0644 |
|
import4.php | File | 16.86 KB | 0644 |
|
importadmin.php | File | 17.08 KB | 0644 |
|
importsimple.php | File | 7.32 KB | 0644 |
|
index.php | File | 32.82 KB | 0644 |
|
info.php | File | 1.07 KB | 0644 |
|
init.php | File | 27.36 KB | 0644 |
|
initialise.php | File | 12.05 KB | 0644 |
|
initlanguages.php | File | 867 B | 0644 |
|
languages.php | File | 21.37 KB | 0644 |
|
lib.php | File | 86.79 KB | 0644 |
|
list.php | File | 11.32 KB | 0644 |
|
listbounces.php | File | 4.13 KB | 0644 |
|
login.php | File | 6.39 KB | 0644 |
|
logout.php | File | 865 B | 0644 |
|
massremove.php | File | 2.55 KB | 0644 |
|
mclicks.php | File | 7.28 KB | 0644 |
|
members.php | File | 19.99 KB | 0644 |
|
mergeduplicates.php | File | 4.48 KB | 0644 |
|
message.php | File | 9.08 KB | 0644 |
|
messages.php | File | 26.27 KB | 0644 |
|
minify.txt | File | 201 B | 0644 |
|
msgbounces.php | File | 3.4 KB | 0644 |
|
msgstatus.php | File | 1.27 KB | 0644 |
|
mviews.php | File | 6.27 KB | 0644 |
|
mysql.inc | File | 40 B | 0644 |
|
mysqli.inc | File | 14.02 KB | 0644 |
|
pageaction.php | File | 1.11 KB | 0644 |
|
phpListAdminAuthentication.php | File | 6.82 KB | 0644 |
|
pluginlib.php | File | 9.43 KB | 0644 |
|
plugins.php | File | 17.78 KB | 0644 |
|
preparesend.php | File | 669 B | 0644 |
|
processbounces.php | File | 35.36 KB | 0644 |
|
processqueue.php | File | 3.71 KB | 0644 |
|
readtestmail.php | File | 11.59 KB | 0644 |
|
reconcileusers.php | File | 27.71 KB | 0644 |
|
redirecttoupdater.php | File | 187 B | 0644 |
|
reindex.php | File | 1.82 KB | 0644 |
|
rsslib.php | File | 3.17 KB | 0644 |
|
runcommand.php | File | 583 B | 0644 |
|
send.php | File | 6.17 KB | 0644 |
|
send_core.php | File | 63.91 KB | 0644 |
|
sendemaillib.php | File | 69.84 KB | 0644 |
|
sendprepared.php | File | 4.87 KB | 0644 |
|
sessionlib.php | File | 2.7 KB | 0644 |
|
setpermissions.php | File | 2.08 KB | 0644 |
|
setup.php | File | 2.56 KB | 0644 |
|
spage.php | File | 4.35 KB | 0644 |
|
spageedit.php | File | 19.08 KB | 0644 |
|
statsmgt.php | File | 1.23 KB | 0644 |
|
statsoverview.php | File | 6.19 KB | 0644 |
|
stresstest.php | File | 4.82 KB | 0644 |
|
structure.php | File | 29.21 KB | 0644 |
|
subscribelib2.php | File | 70.22 KB | 0644 |
|
subscriberstats.php | File | 617 B | 0644 |
|
suppressionlist.php | File | 1.71 KB | 0644 |
|
system.php | File | 795 B | 0644 |
|
systemstats.php | File | 5.73 KB | 0644 |
|
template.php | File | 16.4 KB | 0644 |
|
templates.php | File | 3.01 KB | 0644 |
|
tests.php | File | 1.67 KB | 0644 |
|
uclicks.php | File | 6.74 KB | 0644 |
|
update.php | File | 187 B | 0644 |
|
updateLib.php | File | 2.2 KB | 0644 |
|
updatetlds.php | File | 358 B | 0644 |
|
updatetranslation.php | File | 2.51 KB | 0644 |
|
upgrade.php | File | 23.82 KB | 0644 |
|
user.php | File | 23.08 KB | 0644 |
|
usercheck.php | File | 2.55 KB | 0644 |
|
userclicks.php | File | 11.57 KB | 0644 |
|
userhistory.php | File | 8.25 KB | 0644 |
|
usermgt.php | File | 1.9 KB | 0644 |
|
users.php | File | 19.3 KB | 0644 |
|
vCard.php | File | 1.9 KB | 0644 |
|
viewmessage.php | File | 635 B | 0644 |
|
viewtemplate.php | File | 1.86 KB | 0644 |
|
vote.php | File | 38 B | 0644 |
|