Start of an admin section/page
authorJoey Schulze <joey@infodrom.org>
Fri, 8 Aug 2008 14:57:43 +0000 (14:57 +0000)
committerJoey Schulze <joey@infodrom.org>
Fri, 8 Aug 2008 14:57:43 +0000 (14:57 +0000)
lib/admin.inc [new file with mode: 0644]
lib/functions.inc
lib/layout.inc

diff --git a/lib/admin.inc b/lib/admin.inc
new file mode 100644 (file)
index 0000000..ad94a89
--- /dev/null
@@ -0,0 +1,78 @@
+<?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
index 7c07bc7..6f6badc 100644 (file)
@@ -36,6 +36,8 @@ $dirs = array('zeitung' => array('func' => 'layout_showpaper'),
              'archiv' => array('func' => 'layout_archive'),
              'tag' => array('func' => 'layout_showtag'),
              'topic' => array('func' => 'layout_topic'),
+             'admin' => array('lib' => 'admin.inc',
+                              'func' => 'layout_admin'),
              );
 
 
index 54e1f7c..da85a1d 100644 (file)
@@ -75,6 +75,8 @@ function pageheader()
   $ret .= '<div class="homestatus"><a href="'.$cfg['home'].'">Home</a>';
   if ($cfg['path'] != 'contact.html')
     $ret .= sprintf('&nbsp;&nbsp;&nbsp;<a href="%scontact.html">Kontakt</a>', $cfg['basepath']);
+  if (is_admin() && $cfg['path'] != 'admin.html')
+    $ret .= sprintf('&nbsp;&nbsp;&nbsp;<a href="%sadmin/index.html">Admin</a>', $cfg['basepath']);
   if (is_spider())
     $ret .= sprintf('&nbsp;&nbsp;&nbsp;<a href="%ssitemap.html">Sitemap</a>', $cfg['basepath']);
   $ret .= '</div>';