135 lines
6.5 KiB
PHP
135 lines
6.5 KiB
PHP
|
<?php
|
||
|
|
||
|
# click stats listing users
|
||
|
require_once dirname(__FILE__).'/accesscheck.php';
|
||
|
|
||
|
if (isset($_GET['msgid'])) {
|
||
|
$msgid = sprintf('%d',$_GET['msgid']);
|
||
|
} else {
|
||
|
$msgid = 0;
|
||
|
}
|
||
|
if (isset($_GET['linkid'])) {
|
||
|
$linkid = sprintf('%d',$_GET['linkid']);
|
||
|
} else {
|
||
|
$linkid = 0;
|
||
|
}
|
||
|
if (isset($_GET['userid'])) {
|
||
|
$userid = sprintf('%d',$_GET['userid']);
|
||
|
} else {
|
||
|
$userid = 0;
|
||
|
}
|
||
|
|
||
|
if (!$msgid && !$linkid && !$userid) {
|
||
|
print $GLOBALS['I18N']->get('Invalid Request');
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$access = accessLevel('userclicks');
|
||
|
switch ($access) {
|
||
|
case 'owner':
|
||
|
case 'all':
|
||
|
$subselect = '';
|
||
|
break;
|
||
|
case 'none':
|
||
|
default:
|
||
|
print $GLOBALS['I18N']->get('You do not have access to this page');
|
||
|
return;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
|
||
|
$ls = new WebblerListing($GLOBALS['I18N']->get('User Click Statistics'));
|
||
|
|
||
|
if ($linkid) {
|
||
|
$urldata = Sql_Fetch_Array_Query(sprintf('select url from %s where linkid = %d',
|
||
|
$GLOBALS['tables']['linktrack'],$linkid));
|
||
|
}
|
||
|
if ($msgid) {
|
||
|
$messagedata = Sql_Fetch_Array_query("SELECT * FROM {$tables['message']} where id = $msgid $subselect");
|
||
|
}
|
||
|
if ($userid) {
|
||
|
$userdata = Sql_Fetch_Array_query("SELECT * FROM {$tables['user']} where id = $userid $subselect");
|
||
|
}
|
||
|
|
||
|
if ($linkid && $msgid) {
|
||
|
print '<h1>'.$GLOBALS['I18N']->get('User Click Details for a URL in a message');
|
||
|
print ' ' .PageLink2('uclicks&id='.$linkid,$urldata['url']);
|
||
|
print '</h1>';
|
||
|
print '<table>
|
||
|
<tr><td>'.$GLOBALS['I18N']->get('Subject').'<td><td>'.PageLink2('mclicks&id='.$msgid,$messagedata['subject']).'</td></tr>
|
||
|
<tr><td>'.$GLOBALS['I18N']->get('Entered').'<td><td>'.$messagedata['entered'].'</td></tr>
|
||
|
<tr><td>'.$GLOBALS['I18N']->get('Sent').'<td><td>'.$messagedata['sent'].'</td></tr>
|
||
|
</table><hr/>';
|
||
|
$req = Sql_Query(sprintf('select user.email,user.id as userid,firstclick,date_format(latestclick,
|
||
|
"%%e %%b %%Y %%H:%%i") as latestclick,sum(clicked) as numclicks from %s as linktrack, %s as user where linktrack.userid = user.id
|
||
|
and linktrack.url = "%s" and linktrack.messageid = %d
|
||
|
and linktrack.clicked group by linktrack.userid',$GLOBALS['tables']['linktrack'],$GLOBALS['tables']['user'],$urldata['url'],$msgid));
|
||
|
} elseif ($userid && $msgid) {
|
||
|
print '<h1>'.$GLOBALS['I18N']->get('User Click Details for a message').'</h1>';
|
||
|
print $GLOBALS['I18N']->get('User').' '.PageLink2('user&id='.$userid,$userdata['email']);
|
||
|
print '</h1>';
|
||
|
print '<table>
|
||
|
<tr><td>'.$GLOBALS['I18N']->get('Subject').'<td><td>'.PageLink2('mclicks&id='.$msgid,$messagedata['subject']).'</td></tr>
|
||
|
<tr><td>'.$GLOBALS['I18N']->get('Entered').'<td><td>'.$messagedata['entered'].'</td></tr>
|
||
|
<tr><td>'.$GLOBALS['I18N']->get('Sent').'<td><td>'.$messagedata['sent'].'</td></tr>
|
||
|
</table><hr/>';
|
||
|
$req = Sql_Query(sprintf('select user.email,user.id as userid,firstclick,date_format(latestclick,
|
||
|
"%%e %%b %%Y %%H:%%i") as latestclick,sum(clicked) as numclicks,messageid,linkid,url from %s as linktrack, %s as user where linktrack.userid = user.id
|
||
|
and linktrack.userid = %d and linktrack.messageid = %s and linktrack.clicked group by linktrack.url',$GLOBALS['tables']['linktrack'],$GLOBALS['tables']['user'],
|
||
|
$userid,$msgid));
|
||
|
} elseif ($linkid) {
|
||
|
print '<h1>'.$GLOBALS['I18N']->get('User Click Details for a URL').' <b>'.$urldata['url'].'</b></h1>';
|
||
|
$req = Sql_Query(sprintf('select user.email, user.id as userid,firstclick,date_format(latestclick,
|
||
|
"%%e %%b %%Y %%H:%%i") as latestclick,sum(clicked) as numclicks from %s as linktrack, %s as user where linktrack.userid = user.id
|
||
|
and linktrack.url = "%s" and linktrack.clicked group by linktrack.userid',$GLOBALS['tables']['linktrack'],$GLOBALS['tables']['user'],
|
||
|
$urldata['url']));
|
||
|
} elseif ($msgid) {
|
||
|
print '<h1>'.$GLOBALS['I18N']->get('User Click Details for a Message').'</h1>';
|
||
|
print '<table>
|
||
|
<tr><td>'.$GLOBALS['I18N']->get('Subject').'<td><td>'.$messagedata['subject'].'</td></tr>
|
||
|
<tr><td>'.$GLOBALS['I18N']->get('Entered').'<td><td>'.$messagedata['entered'].'</td></tr>
|
||
|
<tr><td>'.$GLOBALS['I18N']->get('Sent').'<td><td>'.$messagedata['sent'].'</td></tr>
|
||
|
</table><hr/>';
|
||
|
$req = Sql_Query(sprintf('select user.email,user.id as userid,firstclick,date_format(latestclick,
|
||
|
"%%e %%b %%Y %%H:%%i") as latestclick,sum(clicked) as numclicks from %s as linktrack, %s as user where linktrack.userid = user.id
|
||
|
and linktrack.messageid = %d and linktrack.clicked group by linktrack.userid',$GLOBALS['tables']['linktrack'],$GLOBALS['tables']['user'],
|
||
|
$msgid));
|
||
|
} elseif ($userid) {
|
||
|
print '<h1>'.$GLOBALS['I18N']->get('User Click Details').'</h1>';
|
||
|
$req = Sql_Query(sprintf('select user.email,user.id as userid,firstclick,date_format(latestclick,
|
||
|
"%%e %%b %%Y %%H:%%i") as latestclick,sum(clicked) as numclicks,messageid,linkid,url from %s as linktrack, %s as user where linktrack.userid = user.id
|
||
|
and linktrack.userid = %d and linktrack.clicked group by linktrack.url',$GLOBALS['tables']['linktrack'],$GLOBALS['tables']['user'],
|
||
|
$userid));
|
||
|
}
|
||
|
|
||
|
#ob_end_flush();
|
||
|
#flush();
|
||
|
|
||
|
$summary = array();
|
||
|
while ($row = Sql_Fetch_Array($req)) {
|
||
|
# print $row['email'] . "<br/>";
|
||
|
if (!$userid) {
|
||
|
$element = $row['email'];
|
||
|
$ls->addElement($element,PageUrl2('userhistory&id='.$row['userid']));
|
||
|
} else {
|
||
|
$element = $row['url'];
|
||
|
$ls->addElement($element,PageUrl2('uclicks&id='.$row['linkid']));
|
||
|
$ls->addColumn($element,$GLOBALS['I18N']->get('message'),PageLink2('mclicks&id='.$row['messageid'],$row['messageid']));
|
||
|
}
|
||
|
# $element = sprintf('<a href="%s" target="_blank" class="url" title="%s">%s</a>',$row['url'],$row['url'],substr(str_replace('http://','',$row['url']),0,50));
|
||
|
# $total = Sql_Verbose_Query(sprintf('select count(*) as total from %s where messageid = %d and url = "%s"',
|
||
|
# $GLOBALS['tables']['linktrack'],$id,$row['url']));
|
||
|
# $totalsent = Sql_Fetch_Array_Query(sprintf('select count(*) as total from %s where url = "%s"',
|
||
|
# $GLOBALS['tables']['linktrack'],$urldata['url']));
|
||
|
$ls->addColumn($element,$GLOBALS['I18N']->get('firstclick'),formatDateTime($row['firstclick'],1));
|
||
|
$ls->addColumn($element,$GLOBALS['I18N']->get('latestclick'),$row['latestclick']);
|
||
|
$ls->addColumn($element,$GLOBALS['I18N']->get('clicks'),$row['numclicks']);
|
||
|
# $ls->addColumn($element,$GLOBALS['I18N']->get('sent'),$total['total']);
|
||
|
# $perc = sprintf('%0.2f',($row['numclicks'] / $totalsent['total'] * 100));
|
||
|
# $ls->addColumn($element,$GLOBALS['I18N']->get('clickrate'),$perc.'%');
|
||
|
$summary['totalclicks'] += $row['numclicks'];
|
||
|
}
|
||
|
$ls->addElement('total');
|
||
|
$ls->addColumn('total',$GLOBALS['I18N']->get('clicks'),$summary['totalclicks']);
|
||
|
print $ls->display();
|
||
|
?>
|