backoffice/html/mailing/admin/eventlog.php
2011-06-21 13:28:10 +00:00

120 lines
4.6 KiB
PHP

<script language="Javascript" src="js/jslib.js" type="text/javascript"></script>
<?php
require_once 'accesscheck.php';
$find_url = '';
$where = '';
$filter = '';
$exclude = '';
$s = 0;
if (isset($_GET['s'])) {
$s = sprintf('%d',$_GET['s']);
}
$start = !empty($_GET['start']) ? sprintf('%d',$_GET['start']) : 0;
if (isset($_GET['filter'])) {
$filter = removeXss($_GET['filter']);
if (isset($_GET['exclude'])) {
$exclude = $_GET['exclude'];
$where = ' where page not like "%'.$filter.'%" and entry not like "%'.$filter.'%"';
$exclude_url = '&exclude='.sprintf('%d',$_GET["exclude"]);
} else {
$where = ' where page like "%'.$filter.'%" or entry like "%'.$filter.'%"';
$exclude_url = '';
}
$find_url = '&filter='.urlencode($filter).$exclude_url;
}
$order = ' order by entered desc, id desc';
if (isset($_GET['delete']) && $_GET['delete']) {
# delete the index in delete
$delete = sprintf('%d',$_GET['delete']);
print $GLOBALS['I18N']->get('Deleting') . ' ' . $delete . "..\n";
if ($require_login && !isSuperUser()) {
} else {
Sql_query(sprintf('delete from %s where id = %d',$tables['eventlog'],$delete));
}
print '..' . $GLOBALS['I18N']->get('Done') . "<br /><hr><br />\n";
}
if (isset($_GET['action']) && $_GET['action']) {
switch($_GET['action']) {
case 'deleteprocessed':
Sql_Query(sprintf('delete from %s where date_add(entered,interval 2 month) < now()',$tables["eventlog"]));
break;
case 'deleteall':
Sql_Query(sprintf('delete from %s %s',$tables["eventlog"],$where));
break;
}
}
# view events
$count = Sql_Query("select count(*) from {$tables['eventlog']} $where");
$totalres = Sql_fetch_Row($count);
$total = $totalres[0];
print $total . ' ' . $GLOBALS['I18N']->get('events') . '<br/>';
if ($total > MAX_USER_PP) {
if (isset($start) && $start) {
$listing = $GLOBALS['I18N']->get('Listing') . ' ' . $start . ' '.$GLOBALS['I18N']->get('to') . ' ' . ($start + MAX_USER_PP);
$limit = "limit $start," . MAX_USER_PP;
} else {
$listing = $GLOBALS['I18N']->get('Listing 1 to 50');
$limit = "limit 0,50";
$start = 0;
}
printf ('<table border="1"><tr><td colspan="4" align="center">%s</td></tr><tr><td>%s</td><td>%s</td><td>
%s</td><td>%s</td></tr></table><p><hr>',
$listing,
PageLink2("eventlog","&lt;&lt;","start=0".$find_url),
PageLink2("eventlog","&lt;",sprintf('start=%d',max(0,$start-MAX_USER_PP)).$find_url),
PageLink2("eventlog","&gt;",sprintf('start=%d',min($total,$start+MAX_USER_PP)).$find_url),
PageLink2("eventlog","&gt;&gt;",sprintf('start=%d',$total-MAX_USER_PP).$find_url));
$result = Sql_query(sprintf('select * from %s %s order by entered desc,id desc %s',$tables["eventlog"],$where,$limit));
} else {
$result = Sql_Query(sprintf('select * from %s %s order by entered desc, id desc',$tables["eventlog"],$where));
}
printf("[ <a href=\"javascript:deleteRec2('%s','%s');\">%s</a> |
<a href=\"javascript:deleteRec2('%s','%s');\">%s</a> ] ",
$GLOBALS['I18N']->get('Are you sure you want to delete all events older than 2 months?'),
PageURL2("eventlog","Delete","start=$start&action=deleteprocessed"),
$GLOBALS['I18N']->get('Delete all (&gt; 2 months old)'),
$GLOBALS['I18N']->get('Are you sure you want to delete all events matching this filter?'),
PageURL2("eventlog","Delete","start=$start&action=deleteall$find_url"),
$GLOBALS['I18N']->get('Delete all'));
if (!Sql_Affected_Rows()) {
print '<p>' . $GLOBALS['I18N']->get('No events available') . '</p>';
}
print '<br/><br/>';
printf('<form method="get">
<input type="hidden" name="page" value="eventlog">
<input type="hidden" name="start" value="%d">
%s: <input type=text name="filter" value="%s"> %s <input type="checkbox" name="exclude" value="1" %s>
</form><br/>',$start,
$GLOBALS['I18N']->get('Filter'),
htmlspecialchars(stripslashes($filter)),
$GLOBALS['I18N']->get('Exclude filter'),
$exclude == 1 ? 'checked':'');
$ls = new WebblerListing($GLOBALS['I18N']->get('events'));
# @@@@ Looks like there are a few del, page, date, message which may not be i18nable.
while ($event = Sql_fetch_array($result)) {
$ls->addElement($event["id"]);
$ls->addColumn($event["id"],$GLOBALS['I18N']->get('del'),
sprintf('<a href="javascript:deleteRec(\'%s\');">%s</a>',
PageURL2("eventlog","delete","start=$start&delete=".$event["id"]),$GLOBALS['I18N']->get('del')));
$ls->addColumn($event["id"],$GLOBALS['I18N']->get('page'),$event["page"]);
$ls->addColumn($event["id"],$GLOBALS['I18N']->get('date'),$event["entered"]);
$ls->addColumn($event["id"],$GLOBALS['I18N']->get('message'),$event["entry"]);
}
print $ls->display();
?>