관리-도구
편집 파일: eventlog.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","<<","start=0".$find_url), PageLink2("eventlog","<",sprintf('start=%d',max(0,$start-MAX_USER_PP)).$find_url), PageLink2("eventlog",">",sprintf('start=%d',min($total,$start+MAX_USER_PP)).$find_url), PageLink2("eventlog",">>",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 (> 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(); ?>