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