X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2FModel%2FGroup.php;h=0af10995b4a70e698105993a58ad8b9678930834;hb=5ea033db33c62562dcd27dd70447a35b3d14326e;hp=a23b417cc933dd5ff9004d654f3e1c1c95c20b79;hpb=2978b1eef0ef47809bbbce5e04e8336d6260255a;p=friendica.git
diff --git a/src/Model/Group.php b/src/Model/Group.php
index a23b417cc9..0af10995b4 100644
--- a/src/Model/Group.php
+++ b/src/Model/Group.php
@@ -1,18 +1,15 @@
$gid], ['limit' => 1]);
- if (DBM::is_result($group) && $group['deleted']) {
- dba::update('group', ['deleted' => 0], ['gid' => $gid]);
- notice(t('A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name.') . EOL);
+ $group = DBA::selectFirst('group', ['deleted'], ['id' => $gid]);
+ if (DBA::isResult($group) && $group['deleted']) {
+ DBA::update('group', ['deleted' => 0], ['id' => $gid]);
+ notice(L10n::t('A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name.') . EOL);
}
return true;
}
- $return = dba::insert('group', ['uid' => $uid, 'name' => $name]);
+ $return = DBA::insert('group', ['uid' => $uid, 'name' => $name]);
if ($return) {
- $return = dba::lastInsertId();
+ $return = DBA::lastInsertId();
}
}
return $return;
}
+ /**
+ * Update group information.
+ *
+ * @param int $id Group ID
+ * @param string $name Group name
+ *
+ * @return bool Was the update successful?
+ * @throws \Exception
+ */
+ public static function update($id, $name)
+ {
+ return DBA::update('group', ['name' => $name], ['id' => $id]);
+ }
+
/**
* @brief Get a list of group ids a contact belongs to
*
* @param int $cid
* @return array
+ * @throws \Exception
*/
- private static function getIdsByContactId($cid)
+ public static function getIdsByContactId($cid)
{
$condition = ['contact-id' => $cid];
- $stmt = dba::select('group_member', ['gid'], $condition);
+ $stmt = DBA::select('group_member', ['gid'], $condition);
$return = [];
- while ($group = dba::fetch($stmt)) {
+ while ($group = DBA::fetch($stmt)) {
$return[] = $group['gid'];
}
@@ -81,13 +94,14 @@ class Group extends BaseObject
* Count unread items of each groups of the local user
*
* @return array
- * 'id' => group id
- * 'name' => group name
- * 'count' => counted unseen group items
+ * 'id' => group id
+ * 'name' => group name
+ * 'count' => counted unseen group items
+ * @throws \Exception
*/
public static function countUnseen()
{
- $stmt = dba::p("SELECT `group`.`id`, `group`.`name`,
+ $stmt = DBA::p("SELECT `group`.`id`, `group`.`name`,
(SELECT COUNT(*) FROM `item` FORCE INDEX (`uid_unseen_contactid`)
WHERE `uid` = ?
AND `unseen`
@@ -102,7 +116,7 @@ class Group extends BaseObject
local_user()
);
- return dba::inArray($stmt);
+ return DBA::toArray($stmt);
}
/**
@@ -110,9 +124,10 @@ class Group extends BaseObject
*
* Returns false if no group has been found.
*
- * @param int $uid
+ * @param int $uid
* @param string $name
* @return int|boolean
+ * @throws \Exception
*/
public static function getIdByName($uid, $name)
{
@@ -120,8 +135,8 @@ class Group extends BaseObject
return false;
}
- $group = dba::select('group', ['id'], ['uid' => $uid, 'name' => $name], ['limit' => 1]);
- if (DBM::is_result($group)) {
+ $group = DBA::selectFirst('group', ['id'], ['uid' => $uid, 'name' => $name]);
+ if (DBA::isResult($group)) {
return $group['id'];
}
@@ -133,20 +148,21 @@ class Group extends BaseObject
*
* @param int $gid
* @return boolean
+ * @throws \Exception
*/
public static function remove($gid) {
if (! $gid) {
return false;
}
- $group = dba::select('group', ['uid'], ['gid' => $gid], ['limit' => 1]);
- if (!DBM::is_result($group)) {
+ $group = DBA::selectFirst('group', ['uid'], ['id' => $gid]);
+ if (!DBA::isResult($group)) {
return false;
}
// remove group from default posting lists
- $user = dba::select('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $group['uid']], ['limit' => 1]);
- if (DBM::is_result($user)) {
+ $user = DBA::selectFirst('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $group['uid']]);
+ if (DBA::isResult($user)) {
$change = false;
if ($user['def_gid'] == $gid) {
@@ -163,31 +179,32 @@ class Group extends BaseObject
}
if ($change) {
- dba::update('user', $user, ['uid' => $group['uid']]);
+ DBA::update('user', $user, ['uid' => $group['uid']]);
}
}
// remove all members
- dba::delete('group_member', ['gid' => $gid]);
+ DBA::delete('group_member', ['gid' => $gid]);
// remove group
- $return = dba::update('group', ['deleted' => 1], ['id' => $gid]);
+ $return = DBA::update('group', ['deleted' => 1], ['id' => $gid]);
return $return;
}
/**
- * @brief Mark a group as deleted based on its name
+ * @brief Mark a group as deleted based on its name
*
* @deprecated Use Group::remove instead
*
- * @param int $uid
+ * @param int $uid
* @param string $name
* @return bool
+ * @throws \Exception
*/
public static function removeByName($uid, $name) {
$return = false;
- if (x($uid) && x($name)) {
+ if (!empty($uid) && !empty($name)) {
$gid = self::getIdByName($uid, $name);
$return = self::remove($gid);
@@ -202,6 +219,7 @@ class Group extends BaseObject
* @param int $gid
* @param int $cid
* @return boolean
+ * @throws \Exception
*/
public static function addMember($gid, $cid)
{
@@ -209,12 +227,12 @@ class Group extends BaseObject
return false;
}
- $row_exists = dba::exists('group_member', ['gid' => $gid, 'contact-id' => $cid]);
+ $row_exists = DBA::exists('group_member', ['gid' => $gid, 'contact-id' => $cid]);
if ($row_exists) {
// Row already existing, nothing to do
$return = true;
} else {
- $return = dba::insert('group_member', ['gid' => $gid, 'contact-id' => $cid]);
+ $return = DBA::insert('group_member', ['gid' => $gid, 'contact-id' => $cid]);
}
return $return;
@@ -226,6 +244,7 @@ class Group extends BaseObject
* @param int $gid
* @param int $cid
* @return boolean
+ * @throws \Exception
*/
public static function removeMember($gid, $cid)
{
@@ -233,20 +252,21 @@ class Group extends BaseObject
return false;
}
- $return = dba::delete('group_member', ['gid' => $gid, 'contact-id' => $cid]);
+ $return = DBA::delete('group_member', ['gid' => $gid, 'contact-id' => $cid]);
return $return;
}
/**
- * @brief Removes a contact from a group based on its name
+ * @brief Removes a contact from a group based on its name
*
* @deprecated Use Group::removeMember instead
*
- * @param int $uid
+ * @param int $uid
* @param string $name
- * @param int $cid
+ * @param int $cid
* @return boolean
+ * @throws \Exception
*/
public static function removeMemberByName($uid, $name, $cid)
{
@@ -260,55 +280,43 @@ class Group extends BaseObject
/**
* @brief Returns the combined list of contact ids from a group id list
*
- * @param array $group_ids
+ * @param array $group_ids
* @param boolean $check_dead
- * @param boolean $use_gcontact
* @return array
+ * @throws \Exception
*/
- public static function expand($group_ids, $check_dead = false, $use_gcontact = false)
+ public static function expand($group_ids, $check_dead = false)
{
if (!is_array($group_ids) || !count($group_ids)) {
return [];
}
- $condition = '`gid` IN (' . substr(str_repeat("?, ", count($group_ids)), 0, -2) . ')';
- if ($use_gcontact) {
- $sql = 'SELECT `gcontact`.`id` AS `contact-id` FROM `group_member`
- INNER JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id`
- INNER JOIN `gcontact` ON `gcontact`.`nurl` = `contact`.`nurl`
- WHERE ' . $condition;
- $param_arr = array_merge([$sql], $group_ids);
- $stmt = call_user_func_array('dba::p', $param_arr);
- } else {
- $condition_array = array_merge([$condition], $group_ids);
- $stmt = dba::select('group_member', ['contact-id'], $condition_array);
- }
+ $stmt = DBA::select('group_member', ['contact-id'], ['gid' => $group_ids]);
$return = [];
- while($group_member = dba::fetch($stmt)) {
+ while($group_member = DBA::fetch($stmt)) {
$return[] = $group_member['contact-id'];
}
- if ($check_dead && !$use_gcontact) {
- require_once 'include/acl_selectors.php';
- $return = prune_deadguys($return);
+ if ($check_dead) {
+ Contact::pruneUnavailable($return);
}
+
return $return;
}
/**
* @brief Returns a templated group selection list
*
- * @param int $uid
- * @param int $gid An optional pre-selected group
+ * @param int $uid
+ * @param int $gid An optional pre-selected group
* @param string $label An optional label of the list
* @return string
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function displayGroupSelection($uid, $gid = 0, $label = '')
{
- $o = '';
-
- $stmt = dba::select('group', [], ['deleted' => 0, 'uid' => $uid], ['order' => ['name']]);
+ $stmt = DBA::select('group', [], ['deleted' => 0, 'uid' => $uid], ['order' => ['name']]);
$display_groups = [
[
@@ -317,23 +325,23 @@ class Group extends BaseObject
'selected' => ''
]
];
- while ($group = dba::fetch($stmt)) {
+ while ($group = DBA::fetch($stmt)) {
$display_groups[] = [
'name' => $group['name'],
'id' => $group['id'],
'selected' => $gid == $group['id'] ? 'true' : ''
];
}
- logger('groups: ' . print_r($display_groups, true));
+ Logger::log('groups: ' . print_r($display_groups, true));
if ($label == '') {
- $label = t('Default privacy group for new contacts');
+ $label = L10n::t('Default privacy group for new contacts');
}
- $o = replace_macros(get_markup_template('group_selection.tpl'), array(
+ $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('group_selection.tpl'), [
'$label' => $label,
'$groups' => $display_groups
- ));
+ ]);
return $o;
}
@@ -343,44 +351,43 @@ class Group extends BaseObject
* @param string $every
* @param string $each
* @param string $editmode
- * 'standard' => include link 'Edit groups'
- * 'extended' => include link 'Create new group'
- * 'full' => include link 'Create new group' and provide for each group a link to edit this group
- * @param int $group_id
- * @param int $cid
+ * 'standard' => include link 'Edit groups'
+ * 'extended' => include link 'Create new group'
+ * 'full' => include link 'Create new group' and provide for each group a link to edit this group
+ * @param string $group_id
+ * @param int $cid
* @return string
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- public static function sidebarWidget($every = 'contacts', $each = 'group', $editmode = 'standard', $group_id = 0, $cid = 0)
+ public static function sidebarWidget($every = 'contact', $each = 'group', $editmode = 'standard', $group_id = '', $cid = 0)
{
- $o = '';
-
if (!local_user()) {
return '';
}
$display_groups = [
[
- 'text' => t('Everybody'),
+ 'text' => L10n::t('Everybody'),
'id' => 0,
- 'selected' => (($group_id == 0) ? 'group-selected' : ''),
+ 'selected' => (($group_id === 'everyone') ? 'group-selected' : ''),
'href' => $every,
]
];
- $stmt = dba::select('group', [], ['deleted' => 0, 'uid' => local_user()], ['order' => ['name']]);
+ $stmt = DBA::select('group', [], ['deleted' => 0, 'uid' => local_user()], ['order' => ['name']]);
- $member_of = array();
+ $member_of = [];
if ($cid) {
$member_of = self::getIdsByContactId($cid);
}
- while ($group = dba::fetch($stmt)) {
+ while ($group = DBA::fetch($stmt)) {
$selected = (($group_id == $group['id']) ? ' group-selected' : '');
if ($editmode == 'full') {
$groupedit = [
'href' => 'group/' . $group['id'],
- 'title' => t('edit'),
+ 'title' => L10n::t('edit'),
];
} else {
$groupedit = null;
@@ -397,19 +404,25 @@ class Group extends BaseObject
];
}
- $tpl = get_markup_template('group_side.tpl');
- $o = replace_macros($tpl, [
- '$add' => t('add'),
- '$title' => t('Groups'),
+ // Don't show the groups on the network page when there is only one
+ if ((count($display_groups) <= 2) && ($each == 'network')) {
+ return '';
+ }
+
+ $tpl = Renderer::getMarkupTemplate('group_side.tpl');
+ $o = Renderer::replaceMacros($tpl, [
+ '$add' => L10n::t('add'),
+ '$title' => L10n::t('Groups'),
'$groups' => $display_groups,
'newgroup' => $editmode == 'extended' || $editmode == 'full' ? 1 : '',
'grouppage' => 'group/',
- '$edittext' => t('Edit group'),
- '$ungrouped' => $every === 'contacts' ? t('Contacts not in any group') : '',
- '$createtext' => t('Create a new group'),
- '$creategroup' => t('Group Name: '),
- '$editgroupstext' => t('Edit groups'),
- '$form_security_token' => get_form_security_token('group_edit'),
+ '$edittext' => L10n::t('Edit group'),
+ '$ungrouped' => $every === 'contact' ? L10n::t('Contacts not in any group') : '',
+ '$ungrouped_selected' => (($group_id === 'none') ? 'group-selected' : ''),
+ '$createtext' => L10n::t('Create a new group'),
+ '$creategroup' => L10n::t('Group Name: '),
+ '$editgroupstext' => L10n::t('Edit groups'),
+ '$form_security_token' => BaseModule::getFormSecurityToken('group_edit'),
]);