= ?"; $params[] = time() - ((int)$days * 86400); } if ($target !== '') { $where[] = "`target` = ?"; $params[] = $target; } elseif ($q !== '') { $like = '%' . $q . '%'; $where[] = "(`target` LIKE ? OR `admin_name` LIKE ? OR `action` LIKE ? OR `details` LIKE ?)"; $params[] = $like; $params[] = $like; $params[] = $like; $params[] = $like; } if ($action !== '') { $where[] = "`action` = ?"; $params[] = $action; } } $whereSql = $where ? ('WHERE ' . implode(' AND ', $where)) : ''; $total = $hasTable ? acp_count("SELECT COUNT(*) AS `c` FROM `znote_admin_log` {$whereSql};", $params) : 0; $totalPages = max(1, (int)ceil($total / $perPage)); $page = min($page, $totalPages); $offset = ($page - 1) * $perPage; $rows = array(); if ($hasTable) { $rows = db()->fetchAll(" SELECT `id`, `admin_id`, `admin_name`, `action`, `target`, `details`, `ip`, `created` FROM `znote_admin_log` {$whereSql} ORDER BY `id` DESC LIMIT {$offset}, {$perPage}; ", $params); $rows = is_array($rows) ? $rows : array(); } $actionOptions = array(); if ($hasTable) { $actionRows = db()->fetchAll("SELECT DISTINCT `action` FROM `znote_admin_log` ORDER BY `action` ASC;"); if (is_array($actionRows)) { foreach ($actionRows as $row) { $actionOptions[] = (string)$row['action']; } } } $eventsToday = $hasTable ? acp_count("SELECT COUNT(*) AS `c` FROM `znote_admin_log` WHERE `created` >= ?;", [time() - 86400]) : 0; $eventsAll = $hasTable ? acp_count("SELECT COUNT(*) AS `c` FROM `znote_admin_log`;") : 0; $adminsActive = $hasTable ? acp_count("SELECT COUNT(DISTINCT `admin_id`) AS `c` FROM `znote_admin_log` WHERE `created` >= ?;", [time() - 30 * 86400]) : 0; function acp_log_query(array $overrides = array()): array { global $q, $action, $days; return array_filter(array_merge( array('q' => $q, 'action' => $action, 'days' => $days === 'all' ? null : $days), $overrides ), static fn($v) => $v !== null && $v !== ''); } ?>
znote_admin_log',
'file' => 'SQL/migrations/2.0.0_admin_log.sql',
]) ?>
= t('acp.log.sub') ?>
| = t('acp.log.col_date') ?> | = t('acp.log.col_admin') ?> | = t('acp.log.col_action') ?> | = t('acp.log.col_target') ?> | = t('acp.log.col_details') ?> | = t('acp.log.col_ip') ?> |
|---|---|---|---|---|---|
| = h(getClock((int)$row['created'], true, true)) ?> | 0): ?> = h((string)$row['admin_name']) ?> = h((string)$row['admin_name'] !== '' ? (string)$row['admin_name'] : '—') ?> | = h(acp_log_action_label((string)$row['action'])) ?> | = $row['target'] !== '' ? '' . h((string)$row['target']) . '' : '—' ?> |
$v) {
if (is_array($v)) {
$v = implode(', ', array_map('strval', $v));
}
$pairs[] = '' . h((string)$k) . ': ' . h((string)$v);
}
echo implode('', $pairs); ?> — |
= h((string)$row['ip']) ?> |