From f4a1820110e6c85f91c7a3dbdada35f76be83f36 Mon Sep 17 00:00:00 2001
From: Fabio Comuni <fabrix.xm@gmail.com>
Date: Wed, 29 Jun 2011 16:06:32 +0200
Subject: [PATCH] re-added last item date in admin user page. relative_date
 return 'never' if null is passed

---
 include/datetime.php |  2 +-
 mod/admin.php        | 20 ++++++++++++++------
 view/admin_users.tpl |  1 +
 3 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/include/datetime.php b/include/datetime.php
index 8c30cf4b75..a056eaa60e 100644
--- a/include/datetime.php
+++ b/include/datetime.php
@@ -177,7 +177,7 @@ function relative_date($posted_date) {
 
 	$abs = strtotime($localtime);
     
-    if ($posted_date === '0000-00-00 00:00:00' || $abs === False) {
+    if (is_null($posted_date) || $posted_date === '0000-00-00 00:00:00' || $abs === False) {
 		 return t('never');
 	}
 
diff --git a/mod/admin.php b/mod/admin.php
index 9a92f4e158..8f0b2c93d8 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -406,11 +406,18 @@ function admin_page_users(&$a){
 		$a->set_pager_itemspage(100);
 	}
 
-	$users = q("SELECT `user` . * , `contact`.`name` , `contact`.`url` , `contact`.`micro` 
-				FROM `user`
-				LEFT JOIN `contact` ON `user`.`uid` = `contact`.`uid`
-				WHERE `user`.`verified` =1
-				AND `contact`.`self` =1
+	$users = q("SELECT `user` . * , `contact`.`name` , `contact`.`url` , `contact`.`micro`, `lastitem`.`lastitem_date`
+				FROM
+					(SELECT MAX(`item`.`changed`) as `lastitem_date`, `item`.`uid`
+					FROM `item`
+					WHERE `item`.`type` = 'wall'
+					GROUP BY `item`.`uid`) AS `lastitem`
+						 RIGHT OUTER JOIN `user` ON `user`.`uid` = `lastitem`.`uid`,
+					   `contact`
+				WHERE
+					   `user`.`uid` = `contact`.`uid`
+						AND `user`.`verified` =1
+					AND `contact`.`self` =1
 				ORDER BY `contact`.`name` LIMIT %d, %d
 				",
 				intval($a->pager['start']),
@@ -427,6 +434,7 @@ function admin_page_users(&$a){
 		$e['page-flags'] = $accounts[$e['page-flags']];
 		$e['register_date'] = relative_date($e['register_date']);
 		$e['login_date'] = relative_date($e['login_date']);
+		$e['lastitem_date'] = relative_date($e['lastitem_date']);
 		return $e;
 	}
 	$users = array_map("_setup_users", $users);
@@ -448,7 +456,7 @@ function admin_page_users(&$a){
 		'$unblock' => t('Unblock'),
 		
 		'$h_users' => t('Users'),
-		'$th_users' => array( t('Name'), t('Email'), t('Register date'), t('Last login'),  t('Account') ),
+		'$th_users' => array( t('Name'), t('Email'), t('Register date'), t('Last login'), t('Last item'),  t('Account') ),
 
 		'$confirm_delete_multi' => t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'),
 		'$confirm_delete' => t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'),
diff --git a/view/admin_users.tpl b/view/admin_users.tpl
index 6e677f7dcc..bde7edb598 100644
--- a/view/admin_users.tpl
+++ b/view/admin_users.tpl
@@ -68,6 +68,7 @@
 						<td class='email'>$u.email</td>
 						<td class='register_date'>$u.register_date</td>
 						<td class='login_date'>$u.login_date</td>
+						<td class='lastitem_date'>$u.lastitem_date</td>
 						<td class='login_date'>$u.page-flags</td>
 						<td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_$u.uid" name="user[]" value="$u.uid"/></td>
 						<td class="tools">
-- 
2.39.5