* Copyright (c) 2004 Platon SDG, http://platon.sk/ * Licensed under terms of GNU General Public License. * All rights reserved. * * Changelog: * 2004-06-19 - created * */ /* $Platon$ */ require_once 'DB.php'; class User { function getList() /* {{{ */ { global $cfg, $dbh; $query = sprintf('SELECT * FROM %s', $cfg['tables']['users']); return $dbh->getAll($query); } /* }}} */ function getListExtended() /* {{{ */ { global $cfg, $dbh; $ret_ar = User::getList(); $query_total = sprintf('SELECT user_id, COUNT(DISTINCT project_id), COUNT(*)' .' FROM %s GROUP BY user_id', $cfg['tables']['tasks']); $query_opened = sprintf('SELECT user_id, COUNT(DISTINCT project_id), COUNT(*)' .' FROM %s WHERE state != "done" AND state != "abandoned"' .' GROUP BY user_id', $cfg['tables']['tasks']); $counts_total = $dbh->getAssoc($query_total, false, array(), DB_FETCHMODE_ORDERED); $counts_opened = $dbh->getAssoc($query_opened, false, array(), DB_FETCHMODE_ORDERED); $counts_total_keys = array_keys($counts_total); $counts_opened_keys = array_keys($counts_opened); foreach ($ret_ar as $key => $val) { if (in_array($val['id'], $counts_total_keys)) { $ret_ar[$key]['projects_total'] = $counts_total[$val['id']][0]; $ret_ar[$key]['tasks_total'] = $counts_total[$val['id']][1]; } else { $ret_ar[$key]['projects_total'] = 0; $ret_ar[$key]['tasks_total'] = 0; } if (in_array($val['id'], $counts_opened_keys)) { $ret_ar[$key]['projects_opened'] = $counts_opened[$val['id']][0]; $ret_ar[$key]['tasks_opened'] = $counts_opened[$val['id']][1]; } else { $ret_ar[$key]['projects_opened'] = 0; $ret_ar[$key]['tasks_opened'] = 0; } } return $ret_ar; } /* }}} */ } /* Modeline for ViM {{{ * vim: set ts=4: * vim600: fdm=marker fdl=0 fdc=0: * }}} */ ?>