# HG changeset patch
# User Dan
# Date 1188703773 14400
# Node ID b348ace50bc7637206de2a6bd3374a4c00e74e50
# Parent 68e030f8dfa600ffd27d92bdd2974b2c96c8fda5
Added registration date column to members list
diff -r 68e030f8dfa6 -r b348ace50bc7 plugins/SpecialUserFuncs.php
--- a/plugins/SpecialUserFuncs.php Thu Aug 30 20:46:57 2007 -0400
+++ b/plugins/SpecialUserFuncs.php Sat Sep 01 23:29:33 2007 -0400
@@ -1099,7 +1099,8 @@
$sortkeys = array(
'uid' => 'u.user_id',
'username' => 'u.username',
- 'email' => 'u.email'
+ 'email' => 'u.email',
+ 'regist' => 'u.reg_time'
);
$sortby = ( isset($_GET['sort']) && isset($sortkeys[$_GET['sort']]) ) ? $_GET['sort'] : 'username';
@@ -1133,7 +1134,8 @@
$formatters = array(
'username' => array($formatter, 'username'),
'user_level' => array($formatter, 'user_level'),
- 'email' => array($formatter, 'email')
+ 'email' => array($formatter, 'email'),
+ 'reg_time' => array($formatter, 'reg_time')
);
// User search
@@ -1164,8 +1166,14 @@
Username
+ Title
+ |
+
E-mail
|
+
+ Registered
+ |
';
// determine number of rows
@@ -1183,7 +1191,7 @@
}
// main selector
- $q = $db->sql_unbuffered_query('SELECT u.user_id, u.username, u.reg_time, u.email, u.user_level, x.email_public FROM '.table_prefix.'users AS u
+ $q = $db->sql_unbuffered_query('SELECT u.user_id, u.username, u.reg_time, u.email, u.user_level, u.reg_time, x.email_public FROM '.table_prefix.'users AS u
LEFT JOIN '.table_prefix.'users_extra AS x
ON ( u.user_id = x.user_id )
WHERE ' . $username_where . ' AND u.username != "Anonymous"
@@ -1195,8 +1203,10 @@
$q, // MySQL result resource
'
{user_id} |
- {username} {user_level} |
+ {username} |
+ {user_level} |
{email} |
+ {reg_time} |
', // TPL code for rows
$num_rows, // Number of results
@@ -1283,6 +1293,59 @@
return '<Non-public>';
}
}
+ /**
+ * Format a time as a reference to a day, with user-friendly "X days ago"/"Today"/"Yesterday" returned when relevant.
+ * @param int UNIX timestamp
+ * @return string
+ */
+
+ function format_date($time)
+ {
+ // Our formattting string to pass to date()
+ // This should not include minute/second info, only today's date in whatever format suits your fancy
+ $formatstring = 'F j, Y';
+ // Today's date
+ $today = date($formatstring);
+ // Yesterday's date
+ $yesterday = date($formatstring, (time() - (24*60*60)));
+ // Date on the input
+ $then = date($formatstring, $time);
+ // "X days ago" logic
+ for ( $i = 2; $i <= 6; $i++ )
+ {
+ // hours_in_day * minutes_in_hour * seconds_in_minute * num_days
+ $offset = 24 * 60 * 60 * $i;
+ $days_ago = date($formatstring, (time() - $offset));
+ // so does the input timestamp match the date from $i days ago?
+ if ( $then == $days_ago )
+ {
+ // yes, return $i
+ return "$i days ago";
+ }
+ }
+ // either yesterday, today, or before 6 days ago
+ switch($then)
+ {
+ case $today:
+ return 'Today';
+ case $yesterday:
+ return 'Yesterday';
+ default:
+ return $then;
+ }
+ // .--.
+ // |o_o |
+ // |!_/ |
+ // // \ \
+ // (| | )
+ // /'\_ _/`\
+ // \___)=(___/
+ return 'Linux rocks!';
+ }
+ function reg_time($time, $row)
+ {
+ return $this->format_date($time);
+ }
}
?>
\ No newline at end of file