$content = ''; if (isset($_POST['usercheck'])) { $lsexist = new WebblerListing(s('Existing subscribers')); $lsnonexist = new WebblerListing(s('Non existing subscribers ')); $users = explode("\n", $_POST['usercheck']); foreach ($users as $user) { $user = trim($user); if (isset($_POST['check']) && $_POST['check'] == 'foreignkey') { $exists = Sql_Query(sprintf('select id,foreignkey,email from %s where foreignkey = "%s"', $tables['user'], sql_escape($user))); } else { $exists = Sql_Query(sprintf('select id,foreignkey,email from %s where email = "%s"', $tables['user'], sql_escape($user))); } if (Sql_Num_Rows($exists)) { $id = Sql_Fetch_Array($exists); $element = strip_tags($user); $lsexist->addElement($element, PageUrl2('user&id=' . $id['id'])); $lsexist->addColumn($element, $GLOBALS['I18N']->get('email'), $id['email']); $lsexist->addColumn($element, $GLOBALS['I18N']->get('key'), $id['foreignkey']); } else { $lsnonexist->addElement(strip_tags($user)); } } print $lsexist->display(); print $lsnonexist->display(); } else { $_POST['usercheck'] = ''; } /* print $GLOBALS["I18N"]->get("Page to check the existence of users in the database"); */ $content .= '<form method="post" action="">';
$uniques .= $colstruct[0] . '<br/>'; } # if ($column == "primary key") if ($column == "storage_engine") { $engine = $colstruct[0]; } if ($column == 'table_category') { $category = $colstruct; } } } } } else { $haserror = true; unset($tls); $createlink = PageUrl2('pageaction&action=createtable&table=' . urlencode($table)); } if (!$haserror) { $tls->collapse(); $ls->addColumn($table, "ok", $GLOBALS["img_tick"]); } else { $pass = false; $ls->addColumn($table, "ok", $GLOBALS["img_cross"]); } if (!empty($indexes)) { $ls->addColumn($table, "index", $indexes); } if (!empty($uniques)) { $ls->addColumn($table, "unique", $uniques); } if (!empty($category)) {
<?php if (isset($_POST["usercheck"])) { $lsexist = new WebblerListing($GLOBALS["I18N"]->get("existingusers")); $lsnonexist = new WebblerListing($GLOBALS["I18N"]->get("nonexistingusers")); $users = explode("\n", $_POST["usercheck"]); foreach ($users as $user) { $user = trim($user); if ($_POST["check"] == "foreignkey") { $exists = Sql_Query(sprintf('select id,foreignkey,email,password from %s where foreignkey = "%s"', $tables["user"], $user)); } else { $exists = Sql_Query(sprintf('select id,foreignkey,email,password from %s where email = "%s"', $tables["user"], $user)); } if (Sql_Num_Rows($exists)) { $id = Sql_Fetch_Array($exists); $lsexist->addElement($user, PageUrl2("user&id=" . $id["id"])); $lsexist->addColumn($user, $GLOBALS["I18N"]->get('email'), $id['email']); $lsexist->addColumn($user, $GLOBALS["I18N"]->get('key'), $id['foreignkey']); $lsexist->addColumn($user, $GLOBALS["I18N"]->get('passwd'), $id['password']); } else { $lsnonexist->addElement($user); } } print $lsexist->display(); print $lsnonexist->display(); } $GLOBALS["I18N"]->get("existcheckintro"); print '<form method=post>'; print '<table>'; print '<tr><td>' . $GLOBALS["I18N"]->get("whatistype") . '</td></tr>'; print '<tr><td>' . $GLOBALS["I18N"]->get("foreignkey") . ' <input type=radio name="check" value="foreignkey"></td></tr>';
$ls = new WebblerListing(s('Campaigns')); $ls->usePanel($paging); ## messages table if ($total) { $result = Sql_query('SELECT * FROM ' . $tables['message'] . " {$whereClause} {$sortBySql} limit {$limit} offset {$offset}"); while ($msg = Sql_fetch_array($result)) { $editlink = ''; $messagedata = loadMessageData($msg['id']); if ($messagedata['subject'] != $messagedata['campaigntitle']) { $listingelement = '<!--' . $msg['id'] . '-->' . stripslashes($messagedata['campaigntitle']) . '<br/><strong>' . stripslashes($messagedata['subject']) . '</strong>'; } else { $listingelement = '<!--' . $msg['id'] . '-->' . stripslashes($messagedata['subject']); } # $listingelement = '<!--'.$msg['id'].'-->'.stripslashes($messagedata["campaigntitle"]); if ($msg['status'] == 'draft') { $editlink = PageUrl2('send&id=' . $msg['id']); } $ls->addElement($listingelement, $editlink); $ls->setClass($listingelement, 'row1'); $uniqueviews = Sql_Fetch_Row_Query("select count(userid) from {$tables['usermessage']} where viewed is not null and status = 'sent' and messageid = " . $msg['id']); $clicks = Sql_Fetch_Row_Query("select sum(clicked) from {$tables['linktrack_ml']} where messageid = " . $msg['id']); # $clicks = array(0); /* foreach ($messagedata as $key => $val) { $ls->addColumn($listingelement,$key,$val); } */ $ls->addColumn($listingelement, $GLOBALS['I18N']->get('Entered'), formatDateTime($msg['entered'])); $_GET['id'] = $msg['id']; $statusdiv = '<div id="messagestatus' . $msg['id'] . '">'; include 'actions/msgstatus.php';
"> <?php echo $GLOBALS['I18N']->get('Find an admin'); ?> : <input type=text name="find" value="<?php echo htmlspecialchars($find); ?> " size="40"><input type="submit" value="<?php echo $GLOBALS['I18N']->get('Go'); ?> "> </form></td> </tr> </table> <?php $ls = new WebblerListing($GLOBALS['I18N']->get('Administrators')); $ls->usePanel($paging); while ($admin = Sql_fetch_array($result)) { $delete_url = sprintf("<a href=\"javascript:deleteRec('%s');\">" . $GLOBALS['I18N']->get('del') . '</a>', PageURL2('admins', 'Delete', "start={$start}&delete=" . $admin['id'])); $ls->addElement($admin['loginname'], PageUrl2('admin', $GLOBALS['I18N']->get('Show'), "start={$start}&id=" . $admin['id'] . $remember_find)); if (!$external && $admin['id'] != $_SESSION['logindetails']['id']) { $ls->addColumn($admin['loginname'], $GLOBALS['I18N']->get('Del'), $delete_url); } } print $ls->display(); print '<br/><hr/>'; print PageLinkButton('admin', $GLOBALS['I18N']->get('Add a new administrator'), "start={$start}" . $remember_find); print '<p class="button">' . PageLink2('importadmin', $GLOBALS['I18N']->get('Import list of admins')) . '</p>';
if (!Sql_Num_Rows($result)) { switch ($status) { 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&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);
# $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&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']); $ls->addRow($element, '<div class="listingsmall gray">' . $GLOBALS['I18N']->get('sent') . ': ' . $row['total'] . '</div>', ''); # $ls->addColumn($element,$GLOBALS['I18N']->get('clicks'),$row['clicked'].'<span class="viewusers"><a class="button" href="'.PageUrl2('userclicks&msgid='.$row['messageid'].'&fwdid='.$id.'" title="'.$GLOBALS['I18N']->get('view users').'"></a></span>')); # $perc = sprintf('%0.2f',($row['clicked'] / $row['total'] * 100)); # $ls->addColumn($element,$GLOBALS['I18N']->get('clickrate'),$perc.'%'); $summary['totalsent'] += $row['total']; # if (CLICKTRACK_SHOWDETAIL) { $ls->addColumn($element, $GLOBALS['I18N']->get('clicks'), $uniqueclicks['users'] . '<span class="viewusers"><a class="button" href="' . PageUrl2('userclicks&msgid=' . $row['messageid'] . '&fwdid=' . $id) . '" title="' . s('view subscribers who clicked') . '"></a></span>'); $perc = sprintf('%0.2f', $uniqueclicks['users'] / $row['total'] * 100); $ls->addColumn($element, $GLOBALS['I18N']->get('click rate'), $perc . '%'); $summary['uniqueclicks'] += $uniqueclicks['users']; # } $summary['totalclicks'] += $row['clicked']; } $ls->addElement($GLOBALS['I18N']->get('total')); $ls->setClass($GLOBALS['I18N']->get('total'), 'rowtotal'); #$ls->addColumn($GLOBALS['I18N']->get('total'),$GLOBALS['I18N']->get('clicks'),$summary['totalclicks']); #$perc = sprintf('%0.2f',($summary['totalclicks'] / $summary['totalsent'] * 100)); #$ls->addColumn($GLOBALS['I18N']->get('total'),$GLOBALS['I18N']->get('clickrate'),$perc.'%'); #if (CLICKTRACK_SHOWDETAIL) { $ls->addColumn($GLOBALS['I18N']->get('total'), $GLOBALS['I18N']->get('clicks'), $summary['uniqueclicks']); $perc = sprintf('%0.2f', $summary['uniqueclicks'] / $summary['totalsent'] * 100); $ls->addColumn($GLOBALS['I18N']->get('total'), $GLOBALS['I18N']->get('click rate'), $perc . '%');
$req = Sql_Query(sprintf('select messageid,min(firstclick) as firstclick,date_format(max(latestclick), "%%e %%b %%Y %%H:%%i") as latestclick,sum(clicked) as numclicks from %s where url = "%s" and clicked group by messageid ', $GLOBALS['tables']['linktrack'], $urldata['url'])); $summary = array(); while ($row = Sql_Fetch_Array($req)) { $msgsubj = Sql_Fetch_Row_query(sprintf('select subject from %s where id = %d', $GLOBALS['tables']['message'], $row['messageid'])); $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'])); $totalsent = Sql_Fetch_Array_Query(sprintf('select count(*) as total from %s where url = "%s"', $GLOBALS['tables']['linktrack'], $urldata['url'])); if (CLICKTRACK_SHOWDETAIL) { $uniqueclicks = Sql_Fetch_Array_Query(sprintf('select count(distinct userid) as users from %s where messageid = %d and url = "%s" and clicked', $GLOBALS['tables']['linktrack'], $row['messageid'], $urldata['url'])); } $ls->addElement($element, PageUrl2('mclicks&id=' . $row['messageid'])); $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 . '%'); if (CLICKTRACK_SHOWDETAIL) { $ls->addColumn($element, $GLOBALS['I18N']->get('unique clicks'), $uniqueclicks['users']); $perc = sprintf('%0.2f', $uniqueclicks['users'] / $totalsent['total'] * 100); $ls->addColumn($element, $GLOBALS['I18N']->get('unique clickrate'), $perc . '%'); $summary['uniqueclicks'] += $uniqueclicks['users']; } $ls->addColumn($element, $GLOBALS['I18N']->get('who'), PageLink2('userclicks&msgid=' . $row['messageid'] . '&linkid=' . $id, $GLOBALS['I18N']->get('view users'))); $summary['totalclicks'] += $row['numclicks']; }
// $ls->addElement($element,PageURL2("purgerss")); // $ls->addColumn($element," ",$GLOBALS['I18N']->get('Purge rss items')); //} // //obsolete, moved to rssmanager plugin //if ($some && ENABLE_RSS && !array_key_exists("rssmanager", $GLOBALS["plugins"])) // print $ls->display(); $some = 0; $ls = new WebblerListing(''); if (sizeof($GLOBALS["plugins"])) { foreach ($GLOBALS["plugins"] as $pluginName => $plugin) { $menu = $plugin->adminmenu(); if (is_array($menu)) { foreach ($menu as $page => $desc) { $some = 1; $ls->addElement($pluginName . ' ' . $page, PageUrl2("{$page}&pi={$pluginName}")); $ls->addColumn($pluginName . ' ' . $page, " ", PageLinkClass("{$page}&pi={$pluginName}", $GLOBALS['I18N']->get($desc), '', 'hometext')); $ls->setClass($pluginName . ' ' . $page, "plugin"); } } } } if ($some) { print '<h3><a name="plugins">' . $GLOBALS['I18N']->get('Plugins') . '</a></h3>'; $ls->noShader(); $ls->noHeader(); print '<div>' . $ls->display() . '</div>'; } $some = 0; $ls = new WebblerListing(''); if (checkAccess("initialise") && !$_GET["pi"]) {
} else { # $link = substr($row['url'],0,50); # $element = PageLink2($link,$link,PageUrl2('uclicks&id='.$row['forwardid']),"",true,$row['url']); $element = shortenTextDisplay($row['url']); $ls->addElement($element, PageUrl2('uclicks&id=' . $row['forwardid'])); $ls->setClass($element, 'row1'); $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_userid = ''; if (!$userid) { $ls_userid = '<span class="viewusers"><a class="button" href="' . PageUrl2('userclicks&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'])); $ls->addColumn($element, s('Status'), $userStatus['confirmed'] && empty($userStatus['blacklisted']) ? $GLOBALS['img_tick'] : $GLOBALS['img_cross']); } $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['clicked'] . $ls_userid); if (!empty($row['htmlclicked']) && !empty($row['textclicked'])) { $ls->addRow($element, '<div class="content listingsmall fright gray">' . $GLOBALS['I18N']->get('HTML') . ': ' . $row['htmlclicked'] . '</div>' . '<div class="content listingsmall fright gray">' . $GLOBALS['I18N']->get('text') . ': ' . $row['textclicked'] . '</div>', ''); } # $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['clicked'];
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&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' . ' and lm.listid = ?'
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&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, ' ', '', $user['id']); } ## allow plugins to add columns foreach ($GLOBALS['plugins'] as $plugin) { $plugin->displayUsers($user, $element, $ls); }
$element = $GLOBALS['I18N']->get('viewrss'); $ls->addElement($element, PageURL2("viewrss")); $ls->addColumn($element, " ", $GLOBALS['I18N']->get('View RSS items')); } if (checkAccess("purgerss")) { $some = 1; $element = $GLOBALS['I18N']->get('purgerss'); $ls->addElement($element, PageURL2("purgerss")); $ls->addColumn($element, " ", $GLOBALS['I18N']->get('Purge RSS items')); } if ($some && ENABLE_RSS) { print $ls->display(); } $ls = new WebblerListing($GLOBALS['I18N']->get('Plugins')); if (sizeof($GLOBALS["plugins"])) { foreach ($GLOBALS["plugins"] as $pluginName => $plugin) { $menu = $plugin->adminmenu(); if (is_array($menu)) { foreach ($menu as $page => $desc) { $ls->addElement($desc, PageUrl2("{$page}&pi={$pluginName}")); # $ls->addColumn($page," ",$desc); } } } } print $ls->display(); ?>
$result = Sql_query("select id,loginname,email from " . $tables["admin"] . " order by loginname"); } } ?> <table> <tr><td colspan=4><?php echo formStart(); ?> <input type=hidden name=id value="<?php echo $listid; ?> "> Find an admin: <input type=text name=find value="<?php echo $find; ?> " size=40><input type=submit value="Go"> </form></td></tr></table> <?php $ls = new WebblerListing("Administrators"); while ($admin = Sql_fetch_array($result)) { if ($find) { $remember_find = "&find=" . urlencode($find); } $delete_url = sprintf("<a href=\"javascript:deleteRec('%s');\">del</a>", PageURL2("admins", "Delete", "start={$start}&delete=" . $admin["id"])); $ls->addElement($admin["loginname"], PageUrl2("admin", "Show", "start={$start}&id=" . $admin["id"] . $remember_find)); $ls->addColumn($admin["loginname"], "del", $delete_url); } print $ls->display(); print '<br/><hr/>'; print PageLink2("admin", "Add new admin", "start={$start}" . $remember_find); print '<p>' . PageLink2("importadmin", "Import list of admins") . '</p>';
} #print '<p>'.PageLink2("messages&type=sent","Sent Messages").' '; #print PageLink2("messages&type=draft","Draft Messages").' '; #print PageLink2("messages&type=queue","Queued Messages").' '; #print PageLink2("messages&type=stat","Static Messages").' '; #if (ENABLE_RSS) { # print PageLink2("messages&type=rss","RSS Messages").' '; #} #print '</p>'; $tabs = new WebblerTabs(); $tabs->addTab($GLOBALS['I18N']->get("sent"), PageUrl2("messages&type=sent")); $tabs->addTab($GLOBALS['I18N']->get("draft"), PageUrl2("messages&type=draft")); $tabs->addTab($GLOBALS['I18N']->get("queued"), PageUrl2("messages&type=queued")); # if (USE_PREPARE) { $tabs->addTab($GLOBALS['I18N']->get("static"), PageUrl2("messages&type=static")); } #if (ENABLE_RSS) { # $tabs->addTab("rss",PageUrl2("messages&type=rss")); #} $tabs->setCurrent($_GET["type"]); print $tabs->display(); if ($_GET["delete"]) { $todelete = array(); if ($_GET["delete"] == "draft") { $req = Sql_Query(sprintf('select id from %s where status = "draft" and (subject = "" or subject = "(no subject)") %s', $tables["message"], $ownerselect_and)); while ($row = Sql_Fetch_Row($req)) { array_push($todelete, $row[0]); } } else { array_push($todelete, sprintf('%d', $_GET["delete"]));
$start = 0; } $paging = ''; if ($total > $_SESSION['messagenumpp']) { $paging = simplePaging("messages{$url_keep}", $start, $total, $_SESSION['messagenumpp'], $GLOBALS['I18N']->get("Campaigns")); } $ls = new WebblerListing(s('Campaigns')); $ls->usePanel($paging); ## messages table if ($total) { $result = Sql_query("SELECT * FROM " . $tables["message"] . " {$whereClause} {$sortBySql} limit {$limit} offset {$offset}"); while ($msg = Sql_fetch_array($result)) { $editlink = ''; $listingelement = '<!--' . $msg['id'] . '-->' . stripslashes($msg["subject"]); if ($msg['status'] == 'draft') { $editlink = PageUrl2("send&id=" . $msg["id"]); } $ls->addElement($listingelement, $editlink); $ls->setClass($listingelement, 'row1'); $uniqueviews = Sql_Fetch_Row_Query("select count(userid) from {$tables["usermessage"]} where viewed is not null and status = 'sent' and messageid = " . $msg["id"]); $clicks = Sql_Fetch_Row_Query("select sum(clicked) from {$tables["linktrack_ml"]} where messageid = " . $msg["id"]); # $clicks = array(0); $messagedata = loadMessageData($msg['id']); /* foreach ($messagedata as $key => $val) { $ls->addColumn($listingelement,$key,$val); } */ $ls->addColumn($listingelement, $GLOBALS['I18N']->get("Entered"), formatDateTime($msg["entered"])); $_GET['id'] = $msg['id']; $statusdiv = '<div id="messagestatus' . $msg['id'] . '">';
function checkAll() { for (i=0;i<document.users.length;i++) { document.users.elements[i].checked = document.users.checkall.checked; } } </script> <input type=checkbox name="checkall" onClick="checkAll()"><?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")); while ($user = Sql_fetch_array($result)) { $ls->addElement($user["email"], PageUrl2("user&id=" . $user["id"])); $ls->addColumn($user["email"], $GLOBALS['I18N']->get("confirmed"), $user["confirmed"] ? $GLOBALS["img_tick"] : $GLOBALS["img_cross"]); if ($access != "view") { $ls->addColumn($user["email"], $GLOBALS['I18N']->get("tag"), sprintf('<input type=checkbox name="user[%d]" value="1">', $user["id"])); } if ($access != "view") { $ls->addColumn($user["email"], $GLOBALS['I18N']->get("del"), sprintf('<a href="javascript:deleteRec(\'%s\');">' . $GLOBALS['I18N']->get('Del') . '</a>', PageURL2("members", "", "start={$start}&id={$id}&delete=" . $user["id"]))); } $msgcount = Sql_Fetch_Row_Query("select count(*) from {$tables["listmessage"]},{$tables["usermessage"]}\n where {$tables["listmessage"]}.listid = {$id} and {$tables["listmessage"]}.messageid = {$tables["usermessage"]}.messageid\n and {$tables["usermessage"]}.userid = {$user["id"]}"); $ls->addColumn($user["email"], $GLOBALS['I18N']->get("# msgs"), $msgcount[0]); if (ENABLE_RSS) { $msgcount = Sql_Fetch_Row_Query("select count(*) from {$tables["rssitem"]},{$tables["rssitem_user"]}\n where {$tables["rssitem"]}.list = {$id} and {$tables["rssitem"]}.id = {$tables["rssitem_user"]}.itemid and\n {$tables["rssitem_user"]}.userid = {$user["id"]}"); if ($msgcount[0]) { $ls->addColumn($user["email"], $GLOBALS['I18N']->get("# rss"), $msgcount[0]); } if ($user["rssfrequency"]) {
} print "<p><div class='minitabs'>\n"; print $tabs->display(); print "</div></p>\n"; $some = 1; $req = Sql_Query(sprintf('select * from %s where status = "%s" order by listorder,regex', $GLOBALS['tables']['bounceregex'], $type)); $ls = new WebblerListing($GLOBALS['I18N']->get('Bounce Regular Expressions')); if (!Sql_Num_Rows($req)) { 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&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&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')));
function simplePaging($baseurl, $start, $total, $numpp, $itemname = '') { $end = $start ? $start + $numpp : $numpp; if ($end > $total) { $end = $total; } if (!empty($itemname)) { $text = $GLOBALS['I18N']->get('Listing %d to %d of %d'); } else { $text = $GLOBALS['I18N']->get('Listing %d to %d'); } if ($start > 0) { $listing = sprintf($text, $start + 1, $end, $total) . ' ' . $itemname; } else { $listing = sprintf($text, 1, $end, $total) . ' ' . $itemname; $start = 0; } if ($total < $numpp) { return $listing; } ## 22934 - new code return '<div class="paging"> <p class="range">' . $listing . '</p><div class="controls"> <a title="' . $GLOBALS['I18N']->get('First Page') . '" class="first" href="' . PageUrl2($baseurl . '&start=0') . '"></a> <a title="' . $GLOBALS['I18N']->get('Previous') . '" class="previous" href="' . PageUrl2($baseurl . sprintf('&start=%d', max(0, $start - $numpp))) . '"></a> <a title="' . $GLOBALS['I18N']->get('Next') . '" class="next" href="' . PageUrl2($baseurl . sprintf('&start=%d', min($total, $start + $numpp))) . '"></a> <a title="' . $GLOBALS['I18N']->get('Last Page') . '" class="last" href="' . PageUrl2($baseurl . sprintf('&start=%d', $total - $numpp)) . '"></a> </div></div> '; }
if (!Sql_Affected_Rows()) { print '<p class="information">' . $GLOBALS['I18N']->get("No template have been defined") . '</p>'; } $defaulttemplate = getConfig('defaultmessagetemplate'); $systemtemplate = getConfig('systemmessagetemplate'); print formStart('name="templates" class="templatesEdit" '); $ls = new WebblerListing($GLOBALS['I18N']->get("Existing templates")); while ($row = Sql_fetch_Array($req)) { $img_template = '<img src="images/no-image-template.png" />'; if (file_exists('templates/' . $row['id'] . '.jpg')) { $img_template = '<img src="templates/' . $row['id'] . '.jpg" />'; } $element = $row['title']; $ls->addElement($element, PageUrl2('template&id=' . $row['id'])); $ls->setClass($element, 'row1'); $ls->addColumn($element, $GLOBALS['I18N']->get('ID'), $row['id']); $ls->addRow($element, $img_template, '<span class="button">' . PageLinkDialogOnly("viewtemplate&id=" . $row["id"], $GLOBALS['img_view']) . '</span>' . sprintf('<span class="delete"><a class="button" href="javascript:deleteRec(\'%s\');" title="' . $GLOBALS['I18N']->get('delete') . '">%s</a>', PageUrl2("templates", "", "delete=" . $row["id"]), $GLOBALS['I18N']->get('delete'))); # $imgcount = Sql_Fetch_Row_query(sprintf('select count(*) from %s where template = %d', # $GLOBALS['tables']['templateimage'],$row['id'])); # $ls->addColumn($element,$GLOBALS['I18N']->get('# imgs'),$imgcount[0]); # $ls->addColumn($element,$GLOBALS['I18N']->get('View'),); $ls->addColumn($element, $GLOBALS['I18N']->get('Campaign Default'), sprintf('<input type=radio name="defaulttemplate" value="%d" %s onchange="document.templates.submit();">', $row['id'], $row['id'] == $defaulttemplate ? 'checked' : '')); $ls->addColumn($element, $GLOBALS['I18N']->get('System'), sprintf('<input type=radio name="systemtemplate" value="%d" %s onchange="document.templates.submit();">', $row['id'], $row['id'] == $systemtemplate ? 'checked' : '')); } print $ls->display(); print '</form>'; print '<p class="button">' . PageLink2("template", $GLOBALS['I18N']->get('Add new Template')) . "</p>"; $exists = Sql_Fetch_Row_Query(sprintf('select * from %s where title = "System Template"', $GLOBALS['tables']['template'])); if (empty($exists[0])) { print '<p class="button">' . PageLink2("defaultsystemtemplate", $GLOBALS['I18N']->get('Add default system template')) . "</p>"; }
$numdraft = Sql_Num_Rows($req); if ($numdraft > 0 && !isset($_GET['id']) && !isset($_GET['new'])) { print '<p>' . PageLinkActionButton('send&new=1', $I18N->get('start a new message'), '', '', s('Start a new campaign')) . '</p>'; print '<p><h3>' . $I18N->get('Choose an existing draft message to work on') . '</h3></p><br/>'; $ls = new WebblerListing($I18N->get('Draft messages')); $ls->noShader(); while ($row = Sql_Fetch_Array($req)) { $element = '<!--' . $row['id'] . '-->' . $row['subject']; $ls->addElement($element, PageUrl2('send&id=' . $row['id'])); $ls->setClass($element, 'row1'); # $ls->addColumn($element,$I18N->get('edit'),PageLink2('send&id='.$row['id'],$I18N->get('edit'))); $ls->addColumn($element, $I18N->get('entered'), $row['entered']); $ls->addColumn($element, $I18N->get('age'), secs2time($row['age'])); $ls->addRow($element, '', '<a class="del" href="' . PageUrl2('send&delete=' . $row['id']) . '" title="' . $I18N->get('del') . '">' . $I18N->get('del') . '</a>'); } $ls->addButton($I18N->get('delete all'), PageUrl2('send&delete=alldraft')); print $ls->display(); return; } } include "send_core.php"; if ($done) { if ($GLOBALS["commandline"]) { ob_end_clean(); print clineSignature(); print "Message with subject " . $_POST["subject"] . " was sent to " . $lists . "\n"; exit; } return; } /*if (!$_GET["id"]) {
if ($dh = opendir($testdir)) { while (($file = readdir($dh)) !== false) { if (preg_match("/\\.php\$/", $file) && is_file($testdir . '/' . $file)) { require_once $testdir . '/' . $file; $class = basename($file, '.php'); eval('$test = new $class();'); if (method_exists($test, 'runtest')) { $tests[$class] = $test; } } } closedir($dh); } } if (!empty($_GET['runtest']) && in_array($_GET['runtest'], array_keys($tests))) { print '<h3>Running test: ' . $tests[$_GET['runtest']]->name . '</h3>'; $testresult = $tests[$_GET['runtest']]->runtest(); if ($testresult) { print $GLOBALS['I18N']->get('Test passed'); } else { print $GLOBALS['I18N']->get('Test failed'); } print '<br/><br/>'; } $ls = new WebblerListing($GLOBALS['I18N']->get('Tests available')); foreach ($tests as $testclassname => $testclass) { $el = $GLOBALS['I18N']->get($testclass->name); $ls->addElement($el, PageUrl2('tests&runtest=' . $testclassname)); $ls->addColumn($el, $GLOBALS['I18N']->get('Purpose'), $GLOBALS['I18N']->get($testclass->purpose)); } print $ls->display();
print '</p>'; if ($_GET['type'] == 'dl') { ob_end_clean(); Header("Content-type: text/plain"); $filename = 'Bounces on ' . listName($listid); header("Content-disposition: attachment; filename=\"{$filename}\""); } $currentlist = 0; $ls = new WebblerListing(''); while ($row = Sql_Fetch_Array($req)) { if ($currentlist != $row['listid']) { if ($_GET['type'] != 'dl') { print $ls->display(); } $currentlist = $row['listid']; flush(); $ls = new WebblerListing(listName($row['listid'])); } $userdata = Sql_Fetch_Array_Query(sprintf('select * from %s where id = %d', $GLOBALS['tables']['user'], $row['userid'])); if ($_GET['type'] == 'dl') { print $userdata['email'] . "\n"; } $ls->addElement($row['userid'], PageUrl2('user&id=' . $row['userid'])); $ls->addColumn($row['userid'], $GLOBALS['I18N']->get('email'), $userdata['email']); $ls->addColumn($row['userid'], $GLOBALS['I18N']->get('# bounces'), $row['numbounces']); } if ($_GET['type'] != 'dl') { print $ls->display(); } else { exit; }
} if (isset($_POST['defaulttemplate'])) { saveConfig('defaultmessagetemplate', sprintf('%d', $_POST['defaulttemplate'])); } ?> <script language="Javascript" src="js/jslib.js" type="text/javascript"></script> <?php $req = Sql_Query("select * from {$tables["template"]} order by listorder"); if (!Sql_Affected_Rows()) { print '<p class="error">' . $GLOBALS['I18N']->get("No template have been defined") . '</p>'; } $defaulttemplate = getConfig('defaultmessagetemplate'); print formStart('name="templates"'); $ls = new WebblerListing($GLOBALS['I18N']->get("Existing templates")); while ($row = Sql_fetch_Array($req)) { $element = $row['title']; $ls->addElement($element, PageUrl2('template&id=' . $row['id'])); $ls->addColumn($element, $GLOBALS['I18N']->get('ID'), $row['id']); $ls->addColumn($element, $GLOBALS['I18N']->get('delete'), sprintf('<a href="javascript:deleteRec(\'%s\');">%s</a>', PageUrl2("templates", "", "delete=" . $row["id"]), $GLOBALS['I18N']->get('delete'))); # $imgcount = Sql_Fetch_Row_query(sprintf('select count(*) from %s where template = %d', # $GLOBALS['tables']['templateimage'],$row['id'])); # $ls->addColumn($element,$GLOBALS['I18N']->get('# imgs'),$imgcount[0]); $ls->addColumn($element, $GLOBALS['I18N']->get('View'), PageLink2("viewtemplate", $GLOBALS['I18N']->get('View'), "id=" . $row["id"])); $ls->addColumn($element, $GLOBALS['I18N']->get('Default'), sprintf('<input type=radio name="defaulttemplate" value="%d" %s onChange="document.templates.submit();">', $row['id'], $row['id'] == $defaulttemplate ? 'checked' : '')); } print $ls->display(); print '</form>'; print "<p>" . PageLink2("template", $GLOBALS['I18N']->get('Add new Template')) . "</p>";
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']; }
echo formStart('action=""'); ?> <input type="hidden" name="id" value="<?php echo $listid; ?> "> <?php echo $GLOBALS['I18N']->get('Find an admin'); ?> : <input type=text name="find" value="<?php echo htmlspecialchars($find); ?> " size="40"><input type="submit" value="<?php echo $GLOBALS['I18N']->get('Go'); ?> "> </form></td></tr></table> <?php $ls = new WebblerListing($GLOBALS['I18N']->get('Administrators')); $ls->usePanel($paging); while ($admin = Sql_fetch_array($result)) { $delete_url = sprintf("<a href=\"javascript:deleteRec('%s');\">" . $GLOBALS['I18N']->get('del') . "</a>", PageURL2("admins", "Delete", "start={$start}&delete=" . $admin["id"])); $ls->addElement($admin["loginname"], PageUrl2("admin", $GLOBALS['I18N']->get('Show'), "start={$start}&id=" . $admin["id"] . $remember_find)); if (!$external && $admin['id'] != $_SESSION['logindetails']['id']) { $ls->addColumn($admin["loginname"], $GLOBALS['I18N']->get('Del'), $delete_url); } } print $ls->display(); print '<br/><hr/>'; print PageLinkButton("admin", $GLOBALS['I18N']->get('Add a new administrator'), "start={$start}" . $remember_find); print '<p class="button">' . PageLink2("importadmin", $GLOBALS['I18N']->get('Import list of admins')) . '</p>';
} $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&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(); print $ls->tabDelimited(); } else {
$content = ''; if (isset($_POST["usercheck"])) { $lsexist = new WebblerListing(s("Existing subscribers")); $lsnonexist = new WebblerListing(s("Non existing subscribers ")); $users = explode("\n", $_POST["usercheck"]); foreach ($users as $user) { $user = trim($user); if (isset($_POST['check']) && $_POST["check"] == "foreignkey") { $exists = Sql_Query(sprintf('select id,foreignkey,email from %s where foreignkey = "%s"', $tables["user"], sql_escape($user))); } else { $exists = Sql_Query(sprintf('select id,foreignkey,email from %s where email = "%s"', $tables["user"], sql_escape($user))); } if (Sql_Num_Rows($exists)) { $id = Sql_Fetch_Array($exists); $element = strip_tags($user); $lsexist->addElement($element, PageUrl2("user&id=" . $id["id"])); $lsexist->addColumn($element, $GLOBALS["I18N"]->get('email'), $id['email']); $lsexist->addColumn($element, $GLOBALS["I18N"]->get('key'), $id['foreignkey']); } else { $lsnonexist->addElement(strip_tags($user)); } } print $lsexist->display(); print $lsnonexist->display(); } else { $_POST['usercheck'] = ''; } /* print $GLOBALS["I18N"]->get("Page to check the existence of users in the database"); */ $content .= '<form method="post" action="">';