+<?php
+/*
+ * Administrative functions and views
+ */
+
+function admin_userlist()
+{
+ $ret = '<h3>List of Users</h3>';
+
+ $order = 'nickname';
+ $query = "SELECT nickname,realname,email,register_date FROM users WHERE status = 1 ORDER BY $order";
+
+ $sth = db_query($query);
+
+ if ($sth === false || pg_num_rows ($sth) == 0)
+ $ret .= '<p>Keine Nutzerdaten vorhanden.</p>';
+ else {
+ $ret .= '<table class="font" width="100%" alt="">';
+ $ret .= '<tr><th>Login</th><th>Email</th><th>Since</th></tr>';
+ for ($n=0; $n < pg_num_rows ($sth); $n++) {
+ $row = pg_fetch_array ($sth, $n);
+ if (strlen($row['realname']))
+ $email = $row['email'] . '/' . $row['realname'];
+ else
+ $email = $row['email'];
+
+ $name = $row['realname'];
+ $register = explode(' ', $row['register_date']);
+ $register = $register[0];
+ $ret .= sprintf('<tr><td>%s</td><td>%s</td><td>%s</td></tr>',
+ $row['nickname'], $email, $register);
+ }
+
+ $ret .= '</table>';
+ }
+
+ return $ret;
+}
+
+function admin_hitlist()
+{
+ global $cfg;
+
+ $ret = '<h3>Globale Hitlist</h3>';
+
+ $query = "SELECT zeitung,name,sum(counter) as counter FROM hits " .
+ "INNER JOIN zeitungen ON id = zeitung " .
+ "WHERE deleted IS false " .
+ "GROUP BY zeitung,name ORDER BY counter DESC";
+
+ $sth = db_query($query);
+
+ if ($sth === false || pg_num_rows ($sth) == 0)
+ $ret .= '<p>Keint Hitliste vorhanden</p>';
+ else {
+ $ret .= '<table class="font" width="100%" alt="">';
+ $ret .= '<tr><th>Hits</th><th>Name</th></tr>';
+ for ($n=0; $n < pg_num_rows ($sth); $n++) {
+ $row = pg_fetch_array ($sth, $n);
+ $ret .= sprintf('<tr><td align="right">%d</td><td><a href="%szeitung/%d.html">%s</a></td></tr>',
+ $row['counter'], $cfg['basepath'], $row['zeitung'], $row['name']);
+ }
+
+ $ret .= '</table>';
+ }
+
+ return $ret;
+}
+
+function layout_admin()
+{
+ $ret = '<h2>Admin page</h2>';
+ $ret .= admin_userlist();
+ $ret .= admin_hitlist();
+ return $ret;
+}
+
+?>
\ No newline at end of file