Minahito
minah****@users*****
2005年 12月 25日 (日) 16:01:27 JST
Index: xoops2jp/html/kernel/member.php diff -u xoops2jp/html/kernel/member.php:1.2.8.2 xoops2jp/html/kernel/member.php:1.2.8.3 --- xoops2jp/html/kernel/member.php:1.2.8.2 Wed Oct 26 01:46:32 2005 +++ xoops2jp/html/kernel/member.php Sun Dec 25 16:01:27 2005 @@ -1,5 +1,5 @@ <?php -// $Id: member.php,v 1.2.8.2 2005/10/25 16:46:32 minahito Exp $ +// $Id: member.php,v 1.2.8.3 2005/12/25 07:01:27 minahito Exp $ // ------------------------------------------------------------------------ // // XOOPS - PHP Content Management System // // Copyright (c) 2000 XOOPS.org // @@ -145,6 +145,20 @@ } /** + * Delete function. This function is virtual overload function. + * @param $object XoopsUser or XoopsGroup + */ + function delete(&$object) + { + if (is_a($object, "XoopsUser")) { + return $this->deleteUser($object); + } + elseif (is_a($object, "XoopsGroup")) { + return $this->deleteGroup($object); + } + } + + /** * delete a group * * @param object $group reference to the group to delete @@ -313,6 +327,27 @@ } /** + * @see getUsersByGroup + */ + function getUsersByNoGroup($group_id, $asobject = false, $limit = 0, $start = 0) + { + $user_ids =& $this->_mHandler->getUsersByNoGroup($group_id, $limit, $start); + if (!$asobject) { + return $user_ids; + } else { + $ret = array(); + foreach ($user_ids as $u_id) { + $user =& $this->getUser($u_id); + if (is_object($user)) { + $ret[] =& $user; + } + unset($user); + } + return $ret; + } + } + + /** * get a list of groups that a user is member of * * @param int $user_id ID of the user @@ -391,6 +426,37 @@ } /** + * @see getUserCountByGroup + * @return int + */ + function getUserCountByNoGroup($group_id) + { + $ret = array(); + + $groupid = intval($group_id); + $usersTable = $this->_mHandler->db->prefix('users'); + $linkTable = $this->_mHandler->db->prefix('groups_users_link'); + + $sql = "SELECT count(u.*) FROM ${usersTable} u LEFT JOIN ${linkTable} g ON u.uid=g.uid," . + "${usersTable} u2 LEFT JOIN ${linkTable} g2 ON u2.uid=g2.uid AND g2.groupid=${groupid} " . + "WHERE (g.groupid != ${groupid} OR g.groupid IS NULL) " . + "AND (g2.groupid = ${groupid} OR g2.groupid IS NULL) " . + "AND u.uid = u2.uid AND g2.uid IS NULL GROUP BY u.uid"; + + $result = $this->_mHandler->db->query($sql); + if (!$result) { + return $ret; + } + if (!$result) { + return 0; + } + + list($count) = $this->_mHandler->db->fetchRow($result); + + return $count; + } + + /** * updates a single field in a users record * * @param object $user reference to the {@link XoopsUser} object