use dba;
require_once 'boot.php';
+require_once 'include/dba.php';
require_once 'include/text.php';
/**
}
$return = dba::insert('group', ['uid' => $uid, 'name' => $name]);
+ if ($return) {
+ $return = dba::lastInsertId();
+ }
}
return $return;
}
/**
* @brief Get a list of group ids a contact belongs to
*
- * @todo Get rid of $uid, the contact id already bears the information
- *
- * @param int $uid
* @param int $cid
* @return array
*/
- private static function getByContactIdForUserId($uid, $cid)
+ public static function getIdsByContactId($cid)
{
- $stmt = dba::p('SELECT `id`
- FROM `group`
- INNER JOIN `group_member`
- ON `group_member`.`gid` = `group`.`id`
- WHERE `group`.`uid` = ?
- AND `group_member`.`contact-id` = ?',
- $uid,
- $cid
- );
+ $condition = ['contact-id' => $cid];
+ $stmt = dba::select('group_member', ['gid'], $condition);
$return = [];
- if (DBM::is_result($stmt)) {
- while($group = dba::fetch($stmt)) {
- $return[] = $group['id'];
- }
+
+ while ($group = dba::fetch($stmt)) {
+ $return[] = $group['gid'];
}
return $return;
AND `contact-id` IN
(SELECT `contact-id`
FROM `group_member`
- WHERE `group_member`.`gid` = `group`.`id`
- AND `group_member`.`uid` = ?)
+ WHERE `group_member`.`gid` = `group`.`id`)
) AS `count`
FROM `group`
WHERE `group`.`uid` = ?;",
local_user(),
- local_user(),
local_user()
);
/**
* @brief Mark a group as deleted
*
- * @param type $gid
+ * @param int $gid
* @return boolean
*/
public static function remove($gid) {
return false;
}
+ $group = dba::select('group', ['uid'], ['gid' => $gid], ['limit' => 1]);
+ if (!DBM::is_result($group)) {
+ return false;
+ }
+
// remove group from default posting lists
- $user = dba::select('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $uid], ['limit' => 1]);
+ $user = dba::select('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $group['uid']], ['limit' => 1]);
if (DBM::is_result($user)) {
$change = false;
}
if ($change) {
- dba::update('user', $user, ['uid' => $uid]);
+ dba::update('user', $user, ['uid' => $group['uid']]);
}
}
*
* @deprecated Use Group::remove instead
*
- * @param type $uid
- * @param type $name
- * @return type
+ * @param int $uid
+ * @param string $name
+ * @return bool
*/
public static function removeByName($uid, $name) {
$return = false;
{
$o = '';
- $stmt = dba::select('group', [], ['deleted' => 0, 'uid' => $uid], ['order' => ['name' => 'ASC']]);
+ $stmt = dba::select('group', [], ['deleted' => 0, 'uid' => $uid], ['order' => ['name']]);
$display_groups = [
[
]
];
- $stmt = dba::select('group', [], ['deleted' => 0, 'uid' => local_user()], ['order' => ['name' => 'ASC']]);
+ $stmt = dba::select('group', [], ['deleted' => 0, 'uid' => local_user()], ['order' => ['name']]);
$member_of = array();
if ($cid) {
- $member_of = self::getByContactIdForUserId(local_user(), $cid);
+ $member_of = self::getIdsByContactId($cid);
}
while ($group = dba::fetch($stmt)) {