<?php verifyCsrfGetToken(); if (isset($_GET['id'])) { $id = sprintf('%d', $_GET['id']); } else { $id = 0; } $some = 0; $status = ''; $access = accessLevel('mclicks'); 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 $GLOBALS['I18N']->get('You do not have access to this page'); return; } } break; case 'all': $subselect = ''; break; case 'none': default: $subselect = ' where id = 0'; echo $GLOBALS['I18N']->get('You do not have access to this page'); return; break; } $download = !empty($_GET['dl']); if ($download) { ob_end_clean(); // header("Content-type: text/plain"); header('Content-type: text/csv'); header('Content-disposition: attachment; filename="phpList Campaign click statistics.csv"'); ob_start(); } /* $req = Sql_Query(sprintf('select distinct messageid, subject, sum(clicked) as totalclicks, count(distinct userid) as users, count(distinct linkid) as linkcount from %s as linktrack, %s as message where clicked and linktrack.messageid = message.id %s group by messageid order by entered desc limit 50', $GLOBALS['tables']['linktrack'],$GLOBALS['tables']['message'],$subselect));*/ $req = Sql_Query(sprintf('select distinct messageid, subject, sum(total) as total, count(forwardid) as linkcount,sum(clicked) as totalclicks, sum(htmlclicked) as htmlclicked,sum(textclicked) as textclicked from %s as linktrack_ml, %s as message where clicked and linktrack_ml.messageid = message.id %s group by messageid order by entered desc limit 50', $GLOBALS['tables']['linktrack_ml'], $GLOBALS['tables']['message'], $subselect)); if (!Sql_Affected_Rows()) { $status .= '<p class="information">'.s('There are currently no messages to view').'</p>'; } $ls = new WebblerListing(s('Clicked campaigns')); $ls->setElementHeading(s('Campaign')); while ($row = Sql_Fetch_Array($req)) { // Flag indicating that results were returned $some = 1; $messagedata = loadMessageData($row['messageid']); $totalusers = Sql_Fetch_Row_Query(sprintf('select count(userid) from %s where messageid = %d and status = "sent"', $GLOBALS['tables']['usermessage'], $row['messageid'])); $totalclicked = Sql_Fetch_Row_Query(sprintf('select count(distinct userid) from %s where messageid = %d', $GLOBALS['tables']['linktrack_uml_click'], $row['messageid'])); if ($totalusers[0] > 0) { $clickrate = sprintf('%0.2f', ($totalclicked[0] / $totalusers[0] * 100)); } else { $clickrate = s('N/A'); } if (!$download) { if ($messagedata['subject'] != $messagedata['campaigntitle']) { $element = '<!--'.$row['messageid'].'-->'.stripslashes($messagedata['campaigntitle']).'<br/><strong>'.shortenTextDisplay($messagedata['subject'], 30).'</strong>'; } else { $element = '<!--'.$row['messageid'].'-->'.shortenTextDisplay($messagedata['subject'], 30); } } else { $element = $messagedata['subject']; } $ls->addElement($element, PageURL2('mclicks&id='.$row['messageid'])); $ls->setClass($element, 'row1'); $ls->addColumn($element, ucfirst(s('links')), $row['linkcount']); // $ls->addColumn($element,$GLOBALS['I18N']->get('sent'),$totalusers[0]); $ls->addColumn($element, ucfirst(s('subscribers')), number_format($totalclicked[0])); $ls->addColumn($element, ucfirst(s('clickrate')), $clickrate); $ls->addColumn($element, ucfirst(s('clicks')), PageLink2('userclicks&msgid='.$row['messageid'], number_format($row['totalclicks']))); // $ls->addColumn($element,$GLOBALS['I18N']->get('total'),$row['total']); // $ls->addColumn($element,$GLOBALS['I18N']->get('users'),$row['users']); $ls->addRow($element, '', '<div class="content listingsmall fright gray">'.s('html').': '.number_format($row['htmlclicked']).'</div><div class="content listingsmall fright gray">'.s('text').': '.number_format($row['textclicked']).'</div>'); /* this one is the percentage of total links versus clicks. I guess that's too detailed for most people. * besides it'll be low $perc = sprintf('%0.2f',($row['totalclicks'] / $row['total'] * 100)); $ls->addColumn($element,$GLOBALS['I18N']->get('rate'),$perc.' %'); */ } // If records / links exist if ($some) { // if data export requested if ($download) { ob_end_clean(); $status .= $ls->tabDelimited(); } // Add CSV download button $status .= '<div class="action">'; $status .= '<p class="pull-right">'.PageLinkButton('pageaction&action=mclicks&dl=true', s('Download as CSV file')).'</p>'; $status .= '</div><div class="clearfix"></div>'; $status .= $ls->display(); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
.htaccess | File | 231 B | 0644 |
|
addemail.php | File | 1.08 KB | 0644 |
|
addlist.php | File | 69 B | 0644 |
|
bounce.php | File | 166 B | 0644 |
|
bounces.php | File | 1.43 KB | 0644 |
|
campaigns.php | File | 3.03 KB | 0644 |
|
checkurl.php | File | 753 B | 0644 |
|
configure.php | File | 4.03 KB | 0644 |
|
domainbounces.php | File | 1.66 KB | 0644 |
|
domainstats.php | File | 7.29 KB | 0644 |
|
export.php | File | 8.73 KB | 0644 |
|
generatetext.php | File | 1.04 KB | 0644 |
|
generatetextpreview.php | File | 1.42 KB | 0644 |
|
getservertime.php | File | 129 B | 0644 |
|
hidenote.php | File | 258 B | 0644 |
|
import.php | File | 187 B | 0644 |
|
import1.php | File | 10.42 KB | 0644 |
|
import2.php | File | 27.49 KB | 0644 |
|
importsimple.php | File | 187 B | 0644 |
|
initlanguage.php | File | 245 B | 0644 |
|
keepalive.php | File | 108 B | 0644 |
|
listbounces.php | File | 2.3 KB | 0644 |
|
listmembercount.php | File | 2.1 KB | 0644 |
|
markread.php | File | 344 B | 0644 |
|
mclicks.php | File | 4.97 KB | 0644 |
|
mergeduplicatelists.php | File | 1.41 KB | 0644 |
|
msgbounces.php | File | 2.35 KB | 0644 |
|
msgsent.php | File | 886 B | 0644 |
|
msgstatus.php | File | 5.82 KB | 0644 |
|
mviews.php | File | 4.72 KB | 0644 |
|
plugins.php | File | 1.75 KB | 0644 |
|
processqueue.php | File | 60.86 KB | 0644 |
|
reconcileusers.php | File | 3.32 KB | 0644 |
|
removeemptylists.php | File | 379 B | 0644 |
|
searchemail.php | File | 839 B | 0644 |
|
shownotes.php | File | 75 B | 0644 |
|
statsoverview.php | File | 6.53 KB | 0644 |
|
storemessage.php | File | 1.81 KB | 0644 |
|
subscription.php | File | 3.91 KB | 0644 |
|
test.php | File | 12 B | 0644 |
|
updatetranslation.php | File | 835 B | 0644 |
|
upgrade.php | File | 307 B | 0644 |
|
user.php | File | 756 B | 0644 |
|
viewtemplate.php | File | 1.1 KB | 0644 |
|