function area_prefs() { global $page, $user, $fs; $page->assign('groups', Flyspray::ListGroups()); $page->assign('all_groups', Flyspray::listallGroups($user->id)); $page->assign('theuser', $user); $page->setTitle($fs->prefs['page_title'] . L('editmydetails')); }
function show() { global $db, $page, $fs; // Some possibly interesting information about the user $sql = $db->x->GetOne('SELECT count(*) FROM {comments} WHERE user_id = ?', null, $this->user->id); $page->assign('comments', $sql); $sql = $db->x->GetOne('SELECT count(*) FROM {tasks} WHERE opened_by = ?', null, $this->user->id); $page->assign('tasks', $sql); $sql = $db->x->GetOne('SELECT count(*) FROM {assigned} WHERE user_id = ?', null, $this->user->id); $page->assign('groups', Flyspray::listallGroups($this->user->id)); $page->assign('assigned', $sql); $page->assign('theuser', $this->user); $page->setTitle($fs->prefs['page_title'] . L('viewprofile')); $page->pushTpl('profile.tpl'); }
/** * area_users * * @access public * @return void */ function area_users() { global $fs, $db, $proj, $user, $page; // Prepare the sorting $order_keys = array('username' => 'user_name', 'realname' => 'real_name', 'email' => 'email_address', 'jabber' => 'jabber_id', 'regdate' => 'register_date', 'status' => 'account_enabled'); $order_column[0] = $order_keys[Filters::enum(Get::val('order', 'username'), array_keys($order_keys))]; $order_column[1] = $order_keys[Filters::enum(Get::val('order2', 'username'), array_keys($order_keys))]; $sortorder = sprintf('%s %s, %s %s, u.user_id ASC', $order_column[0], Filters::enum(Get::val('sort', 'desc'), array('asc', 'desc')), $order_column[1], Filters::enum(Get::val('sort2', 'desc'), array('asc', 'desc'))); // Search options $search_keys = array('user_name', 'real_name', 'email_address', 'jabber_id'); $where = 'WHERE 1=1 '; $args = array(); foreach ($search_keys as $key) { if (Get::val($key) != '') { $where .= sprintf(' AND %s LIKE ? ', $key); $args[] = '%' . Get::val($key) . '%'; } } // Search for users in a specific group $groups = Get::val('group_id'); if (is_array($groups) && count($groups) && !in_array(0, $groups)) { $where = ' LEFT JOIN {users_in_groups} uig ON u.user_id = uig.user_id ' . $where; $where .= ' AND (' . substr(str_repeat(' uig.group_id = ? OR ', count($groups)), 0, -3) . ' ) '; $args = array_merge($args, $groups); } $sql = $db->x->getAll('SELECT u.user_id, u.user_name, u.real_name, u.register_date, u.jabber_id, u.email_address, u.account_enabled FROM {users} u ' . $where . 'ORDER BY ' . $sortorder, null, $args); $users = GroupBy($sql, 'user_id'); $page->assign('user_count', count($users)); // Offset and limit $user_list = array(); $offset = max(Get::num('pagenum') - 1, 0) * 50; for ($i = $offset; $i < $offset + 50 && $i < count($users); $i++) { $user_list[] = $users[$i]; } // Get the user groups in a separate query because groups may be hidden // because of search options which are disregarded here if (count($user_list)) { $in = implode(',', array_map(create_function('$x', 'return reset($x);'), $user_list)); $sql = $db->x->getAll('SELECT user_id, g.group_id, g.group_name, g.project_id FROM {groups} g LEFT JOIN {users_in_groups} uig ON uig.group_id = g.group_id WHERE user_id IN (' . $in . ')'); $user_groups = GroupBy($sql, 'user_id', array('group_id', 'group_name', 'project_id'), !REINDEX); $page->assign('user_groups', $user_groups); } $page->assign('all_groups', Flyspray::listallGroups()); $page->assign('user_list', $user_list); }