echo '<li><a href="#', $group, '_activity">', $group, ' activity</a></li>'; } echo '</ol></div>'; // sections foreach ($engine->groups as $group => $v) { // filter users $matching = array_filter($data, function ($r) use($group) { return !!$r["user_has_{$group}"]; }); // print header echo "<h2 id='{$group}_activity'>{$group}s</h2>"; if (!$matching) { echo "<div class='neutral'>No active {$group}s on this wiki.</div>"; continue; } // print table $show_log = !!$engine->groups[$group]; echo "<table class='pretty sortable' id='{$group}_metrics'><thead><tr><th>user</th><th>last edit</th>", $show_log ? "<th>last log action</th>" : "", "</tr></thead><tbody>"; foreach ($matching as $row) { $name = $row["user_name"]; $urlName = $backend->formatValue($name); $last_edit = $row["last_edit"]; $last_log = $row["last_{$group}"]; $domain = $engine->wiki->domain; echo "<tr>", "<td><a href='//{$domain}/wiki/User:{$name}' title='{$name}'s user page'>{$name}</a> <small>[<a href='", $backend->url('/crossactivity/' . $urlName), "' title='scan this user's activity on all wikis'>all wikis</a>]</small></td>", color_cell($last_edit), $show_log ? color_cell($last_log) : '', "</tr>"; } echo '</tbody></table>'; } $backend->profiler->stop('analyze and output'); } while (0); $backend->footer();
<th>last log <small>(sysop)</small></th> <th>Local groups</th> </tr> </thead> <tbody>'; foreach ($wikis as $wiki) { $dbname = $wiki->dbName; $domain = $wiki->domain; $family = $wiki->family; /* get data */ $db->Connect($dbname); $id = $db->Query('SELECT user_id FROM user WHERE user_name=? LIMIT 1', array($user))->fetchValue(); if ($id) { // groups $groups = $db->Query('SELECT GROUP_CONCAT(ug_group SEPARATOR ", ") FROM user_groups WHERE ug_user=?', array($id))->fetchValue(); // edits $last_edit = $db->Query('SELECT DATE_FORMAT(rev_timestamp, "%Y-%m-%d %H:%i") FROM revision_userindex WHERE rev_user=? ORDER BY rev_timestamp DESC LIMIT 1', array($id))->fetchValue(); // log actions $last_log_bur = $db->Query('SELECT DATE_FORMAT(log_timestamp, "%Y-%m-%d %H:%i") FROM logging_userindex WHERE log_user=? AND log_type IN ("makebot", "renameuser", "rights") ORDER BY log_timestamp DESC LIMIT 1', array($id))->fetchValue(); $last_log_sys = $db->Query('SELECT DATE_FORMAT(log_timestamp, "%Y-%m-%d %H:%i") FROM logging_userindex WHERE log_user=? AND log_type IN ("block", "delete", "protect") ORDER BY log_timestamp DESC LIMIT 1', array($id))->fetchValue(); // output if ($show_all || !empty($last_edit) || !empty($last_log_bur) || !empty($last_log_sys)) { echo '<tr>', '<td>', $family, '</td>', '<td>', link_domain($domain), '</td>', color_cell($last_edit), color_cell($last_log_bur), color_cell($last_log_sys), list_groups($groups), '</tr>'; } } $db->dispose(); } echo '</tbody></table>'; echo '</div>'; } while (0); $backend->footer();