Example #1
0
print '<h3>' . $GLOBALS['I18N']->get('Click details for a URL') . ' <b>' . $urldata['url'] . '</b></h3><br/>';
print PageLinkButton('userclicks&fwdid=' . $id, s('View subscribers'));
if ($download) {
    header('Content-disposition:  attachment; filename="phpList URL click statistics for ' . $urldata['url'] . '.csv"');
}
$req = Sql_Query(sprintf('select messageid,firstclick,date_format(latestclick,
  "%%e %%b %%Y %%H:%%i") as latestclick,total,clicked from %s where forwardid = %d and firstclick is not null order by firstclick desc
  ', $GLOBALS['tables']['linktrack_ml'], $id));
$summary = array();
$summary['totalsent'] = 0;
$summary['totalclicks'] = 0;
$summary['uniqueclicks'] = 0;
while ($row = Sql_Fetch_Array($req)) {
    $msgsubj = Sql_Fetch_Row_query(sprintf('select subject from %s where id = %d', $GLOBALS['tables']['message'], $row['messageid']));
    if (!$download) {
        $element = '<!-- ' . $row['messageid'] . '-->' . shortenTextDisplay($msgsubj[0], 30);
    } else {
        $element = '<!-- ' . $row['messageid'] . '-->' . $msgsubj[0];
    }
    #  $element = $GLOBALS['I18N']->get('msg').' '.$row['messageid'].': '.substr($msgsubj[0],0,25). '...';
    #  $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']));
    # if (CLICKTRACK_SHOWDETAIL) {
    $uniqueclicks = Sql_Fetch_Array_Query(sprintf('select count(distinct userid) as users from %s
      where messageid = %d and forwardid = %d', $GLOBALS['tables']['linktrack_uml_click'], $row['messageid'], $id));
    #  }
    $ls->addElement($element, PageUrl2('mclicks&amp;id=' . $row['messageid']));
    $ls->setClass($element, 'row1');
    $ls->addColumn($element, $GLOBALS['I18N']->get('firstclick'), formatDateTime($row['firstclick'], 1));
    $ls->addColumn($element, $GLOBALS['I18N']->get('latestclick'), $row['latestclick']);
Example #2
0
    $paging = simplePaging("mviews{$url_keep}", $start, $total, MAX_USER_PP, $GLOBALS['I18N']->get("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 viewcount,
    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 %s', $GLOBALS['tables']['usermessage'], $GLOBALS['tables']['user'], $GLOBALS['tables']['message'], $id, $subselect, $limit));
$summary = array();
while ($row = Sql_Fetch_Array($req)) {
    if ($download) {
        ## with download, the 50 per page limit is not there.
        set_time_limit(60);
        $element = $row['email'];
    } else {
        $element = shortenTextDisplay($row['email'], 15);
    }
    $ls->addElement($element, PageUrl2('userhistory&amp;id=' . $row['userid']));
    $ls->setClass($element, 'row1');
    $ls->addRow($element, '<div class="listingsmall gray">' . $GLOBALS['I18N']->get('sent') . ': ' . formatDateTime($row['sent'], 1) . '</div>', '');
    if ($row['viewcount'] > 1) {
        $ls->addColumn($element, $GLOBALS['I18N']->get('firstview'), formatDateTime($row['firstview'], 1));
        $ls->addColumn($element, $GLOBALS['I18N']->get('lastview'), formatDateTime($row['lastview']));
        $ls->addColumn($element, $GLOBALS['I18N']->get('views'), $row['viewcount']);
    } else {
        $ls->addColumn($element, $GLOBALS['I18N']->get('firstview'), formatDateTime($row['firstview'], 1));
        $ls->addColumn($element, $GLOBALS['I18N']->get('responsetime'), secs2time($row['responsetime']));
    }
}
if ($download) {
    ob_end_clean();
Example #3
0
    header('Content-disposition:  attachment; filename="phpList URL click statistics for ' . $urldata['url'] . '.csv"');
}
$req = Sql_Query(sprintf('select messageid,firstclick,date_format(latestclick,
  "%%e %%b %%Y %%H:%%i") as latestclick,total,clicked from %s where forwardid = %d and firstclick is not null order by firstclick desc
  ', $GLOBALS['tables']['linktrack_ml'], $id));
$summary = array();
$summary['totalsent'] = 0;
$summary['totalclicks'] = 0;
$summary['uniqueclicks'] = 0;
while ($row = Sql_Fetch_Array($req)) {
    $messagedata = loadMessageData($row['messageid']);
    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'];
    }
    #  $element = $GLOBALS['I18N']->get('msg').' '.$row['messageid'].': '.substr($msgsubj[0],0,25). '...';
    #  $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']));
    # if (CLICKTRACK_SHOWDETAIL) {
    $uniqueclicks = Sql_Fetch_Array_Query(sprintf('select count(distinct userid) as users from %s
      where messageid = %d and forwardid = %d', $GLOBALS['tables']['linktrack_uml_click'], $row['messageid'], $id));
    #  }
    $ls->addElement($element, PageUrl2('mclicks&amp;id=' . $row['messageid']));
    $ls->setClass($element, 'row1');
    $ls->addColumn($element, $GLOBALS['I18N']->get('firstclick'), formatDateTime($row['firstclick'], 1));
Example #4
0
        case 'unidentified':
            print '<p class="information">' . s('no unidentified bounces available') . '</p>';
            break;
        case 'processed':
            print '<p class="information">' . s('no processed bounces available') . '</p>';
            break;
    }
}
$ls = new WebblerListing(s($status) . ' ' . s('bounces'));
$ls->usePanel($paging);
while ($bounce = Sql_fetch_array($result)) {
    #@@@ not sure about these ones - bounced list message
    $element = $bounce['id'];
    $ls->addElement($element, PageUrl2('bounce&type=' . $status . '&id=' . $bounce['id']));
    if (preg_match("#bounced list message ([\\d]+)#", $bounce['status'], $regs)) {
        $messageid = PageLink2('message&id=' . $regs[1], shortenTextDisplay(campaignTitle($regs[1]), 30));
        #sprintf('<a href="./?page=message&amp;id=%d">%d</a>',$regs[1],$regs[1]);
    } elseif ($bounce['status'] == 'bounced system message') {
        $messageid = $GLOBALS['I18N']->get('System Message');
    } else {
        $messageid = $GLOBALS['I18N']->get('Unknown');
    }
    /*  if (preg_match('/Action: delayed\s+Status: 4\.4\.7/im',$bounce["data"])) {
            $ls->addColumn($element,'delayed',$GLOBALS['img_tick']);
          } else {
            $ls->addColumn($element,'delayed',$GLOBALS['img_cross']);
          }
        */
    $ls->addColumn($element, s('Campaign'), $messageid);
    if (preg_match("#([\\d]+) bouncecount increased#", $bounce['comment'], $regs)) {
        $userid = PageLink2('user&id=' . $regs[1], $regs[1]);
Example #5
0
    if ($download) {
        ob_end_clean();
        print $ls->tabDelimited();
    }
    print $ls->display();
    return;
}
#print '<h3>'.$GLOBALS['I18N']->get('Campaign statistics').'</h3>';
print PageLinkButton('statsoverview', s('View all campaigns'));
$messagedata = loadMessageData($id);
//var_dump($messagedata);
print '<h3>' . $messagedata['subject'] . '</h3>';
$ls = new WebblerListing('');
$element = ucfirst(s('Subject'));
$ls->addElement($element);
$ls->addColumn($element, '&nbsp;', shortenTextDisplay($messagedata['subject'], 30));
$element = ucfirst(s('Date entered'));
$ls->addElement($element);
$ls->addColumn($element, '&nbsp;', $messagedata['entered']);
$element = ucfirst(s('Date sent'));
$ls->addElement($element);
$ls->addColumn($element, '&nbsp;', $messagedata['sent']);
$element = ucfirst(s('Sent as HTML'));
$ls->addElement($element);
$ls->addColumn($element, '&nbsp;', $messagedata['astextandhtml']);
$element = ucfirst(s('Sent as text'));
$ls->addElement($element);
$ls->addColumn($element, '&nbsp;', $messagedata['astext']);
$totalSent = 0;
$sentQ = Sql_Query(sprintf('select status,count(userid) as num from %s where messageid = %d group by status', $tables['usermessage'], $id));
while ($row = Sql_Fetch_Assoc($sentQ)) {
Example #6
0
    print $GLOBALS['I18N']->get('No Rules found');
    $some = 0;
} else {
    print formStart('class="bouncerulesListing"');
}
while ($row = Sql_Fetch_Array($req)) {
    $element = $GLOBALS['I18N']->get('rule') . ' ' . $row['id'];
    $ls->addElement($element, PageUrl2('bouncerule&amp;id=' . $row['id']));
    if ($type == 'candidate') {
        # check if it matches an active rule
        $activerule = matchedBounceRule($row['regex'], 1);
        if ($activerule) {
            $ls->addColumn($element, $GLOBALS['I18N']->get('match'), PageLink2('bouncerule&amp;id=' . $activerule, $GLOBALS['I18N']->get('match')));
        }
    }
    $ls->addColumn($element, $GLOBALS['I18N']->get('expression'), '<a name="' . $row['id'] . '"></a>' . shortenTextDisplay($row['regex'], 50));
    $ls->addColumn($element, $GLOBALS['I18N']->get('action'), $GLOBALS['bounceruleactions'][$row['action']]);
    #  $num = Sql_Fetch_Row_Query(sprintf('select count(*) from %s where regex = %d',$GLOBALS['tables']['bounceregex_bounce'],$row['id']));
    #  $ls->addColumn($element,$GLOBALS['I18N']->get('#bncs'),$num[0]);
    $ls->addColumn($element, $GLOBALS['I18N']->get('#bncs'), $row['count']);
    $ls->addColumn($element, $GLOBALS['I18N']->get('tag'), sprintf('<input type="checkbox" name="tagged[%d]" value="%d">', $row['id'], $row['listorder']));
    $ls->addColumn($element, $GLOBALS['I18N']->get('order'), sprintf('<input type="text" name="listorder[%d]" value="%d" size=3>', $row['id'], $row['listorder']));
    $ls->addColumn($element, $GLOBALS['I18N']->get('del'), PageLink2('bouncerules&del=' . $row['id'] . $url, $GLOBALS['I18N']->get('del')));
}
print $ls->display();
if ($some) {
    print '<p class="information">' . $GLOBALS['I18N']->get('with tagged rules: ') . ' ';
    printf('<b>%s</b> <input type="checkbox" name="tagaction" value="delete"><br/>', $GLOBALS['I18N']->get('delete'));
    if ($type == 'candidate') {
        printf('<b>%s</b> <input type="checkbox" name="tagaction" value="activate"><br/>', $GLOBALS['I18N']->get('make active'));
    } else {
Example #7
0
    print "<p>" . s('%d subscribers', $total) . '</p>';
    print formStart(' name="users" class="membersProcess" ');
    printf('<input type="hidden" name="id" value="%d" />', $id);
    ?>

  <input type="checkbox" name="checkall" class="checkallcheckboxes" /><?php 
    echo $GLOBALS['I18N']->get("Tag all users in this page");
    ?>
  <?php 
    $columns = array();
    $columns = explode(',', getConfig('membership_columns'));
    # $columns = array('country','Lastname');
    $ls = new WebblerListing($GLOBALS['I18N']->get("Members"));
    $ls->usePanel($paging);
    while ($user = Sql_fetch_array($result)) {
        $element = shortenTextDisplay($user["email"]);
        $ls->addElement($element, PageUrl2("user&amp;id=" . $user["id"]));
        $ls->setClass($element, 'row1');
        $ls_delete = "";
        if ($access != "view") {
            $ls_delete = sprintf('<a title="' . $GLOBALS['I18N']->get('Delete') . '" class="del" href="javascript:deleteRec(\'%s\');"></a>', PageURL2("members", "", "start={$start}&{$pagingKeep}&id={$id}&delete=" . $user["id"]));
        }
        $ls->addRow($element, '', $user["confirmed"] && !$user["blacklisted"] ? $ls_delete . $GLOBALS["img_tick"] : $ls_delete . $GLOBALS["img_cross"]);
        if ($access != "view") {
            $ls->addColumn($element, $GLOBALS['I18N']->get("tag"), sprintf('<input type="checkbox" name="user[%d]" value="1" />', $user["id"]));
        }
        /*
            $query
            = ' select count(*)'
            . ' from %s lm, %s um'
            . ' where lm.messageid = um.messageid'
Example #8
0
}
$summary = array();
$summary['totalclicks'] = 0;
while ($row = Sql_Fetch_Array($req)) {
    #  print $row['email'] . "<br/>";
    if ($download) {
        $downloadContent .= $row['email'] . PHP_EOL;
    } else {
        if (!$userid) {
            $element = shortenTextDisplay($row['email']);
            $ls->addElement($element, PageUrl2('userhistory&amp;id=' . $row['userid']));
            $ls->setClass($element, 'row1');
        } else {
            #    $link = substr($row['url'],0,50);
            #    $element = PageLink2($link,$link,PageUrl2('uclicks&amp;id='.$row['forwardid']),"",true,$row['url']);
            $element = shortenTextDisplay($row['url']);
            $ls->addElement($element, PageUrl2('uclicks&amp;id=' . $row['forwardid']));
            $ls->setClass($element, 'row1');
            $ls->addColumn($element, $GLOBALS['I18N']->get('message'), PageLink2('mclicks&amp;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_userid = '';
        if (!$userid) {
            $ls_userid = '<span class="viewusers"><a class="button" href="' . PageUrl2('userclicks&amp;userid=' . $row['userid']) . '" title="' . $GLOBALS['I18N']->get('view user') . '"></a></span>';
        }
        if (!empty($row['userid'])) {
            $userStatus = Sql_Fetch_Assoc_Query(sprintf('select blacklisted,confirmed from %s where id = %d', $GLOBALS['tables']['user'], $row['userid']));
Example #9
0
 print "<div class='minitabs'>\n";
 print $tabs->display();
 print "</div>\n";
 print '<p>' . s('%d subscribers', $total) . '</p>';
 print formStart(' name="users" class="membersProcess" ');
 printf('<input type="hidden" name="id" value="%d" />', $id);
 if (!$listAll) {
     print '<input type="checkbox" name="checkall" class="checkallcheckboxes" />' . $GLOBALS['I18N']->get('Tag all users in this page');
 }
 $columns = array();
 $columns = explode(',', getConfig('membership_columns'));
 # $columns = array('country','Lastname');
 $ls = new WebblerListing($GLOBALS['I18N']->get('Members'));
 $ls->usePanel($paging);
 while ($user = Sql_fetch_array($result)) {
     $element = shortenTextDisplay($user['email']);
     $ls->addElement($element, PageUrl2('user&amp;id=' . $user['id']));
     $ls->setClass($element, 'row1');
     $ls_delete = '';
     if ($access != 'view') {
         $ls_delete = sprintf('<a title="' . $GLOBALS['I18N']->get('Delete') . '" class="del" href="javascript:deleteRec(\'%s\');"></a>', PageURL2('members', '', "start={$start}&{$pagingKeep}&id={$id}&delete=" . $user['id']));
     }
     $ls->addRow($element, '', $user['confirmed'] && !$user['blacklisted'] ? $ls_delete . $GLOBALS['img_tick'] : $ls_delete . $GLOBALS['img_cross']);
     if ($access != 'view' && !$listAll) {
         $ls->addColumn($element, $GLOBALS['I18N']->get('tag'), sprintf('<input type="checkbox" name="user[%d]" value="1" />', $user['id']));
     } else {
         $ls->addColumn($element, '&nbsp;', '', $user['id']);
     }
     ## allow plugins to add columns
     foreach ($GLOBALS['plugins'] as $plugin) {
         $plugin->displayUsers($user, $element, $ls);