X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FGroup.php;h=feff4661ab6f8856fb916d7b12ffe0eacd7a2099;hb=6c68b8359dfc7d5c4d87a7d7dc4397778f911f80;hp=71f794118940f2032bdf59fac3e1cb44c2c7043b;hpb=9b5bef6deaf75514cb967f51f56ec357a8b53b2b;p=friendica.git diff --git a/src/Model/Group.php b/src/Model/Group.php index 71f7941189..feff4661ab 100644 --- a/src/Model/Group.php +++ b/src/Model/Group.php @@ -4,32 +4,52 @@ */ namespace Friendica\Model; +use Friendica\BaseModule; use Friendica\BaseObject; use Friendica\Core\L10n; +use Friendica\Core\Logger; +use Friendica\Core\Renderer; use Friendica\Database\DBA; -require_once 'boot.php'; -require_once 'include/dba.php'; -require_once 'include/text.php'; - /** * @brief functions for interacting with the group database table */ class Group extends BaseObject { + /** + * + * + * @param int $group_id + * @return bool + * @throws \Exception + */ + public static function exists($group_id, $uid = null) + { + $condition = ['id' => $group_id, 'deleted' => false]; + + if (isset($uid)) { + $condition = [ + 'uid' => $uid + ]; + } + + return DBA::exists('group', $condition); + } + /** * @brief Create a new contact group * * Note: If we found a deleted group with the same name, we restore it * - * @param int $uid + * @param int $uid * @param string $name * @return boolean + * @throws \Exception */ public static function create($uid, $name) { $return = false; - if (x($uid) && x($name)) { + if (!empty($uid) && !empty($name)) { $gid = self::getIdByName($uid, $name); // check for dupes if ($gid !== false) { // This could be a problem. @@ -56,10 +76,11 @@ class Group extends BaseObject /** * Update group information. * - * @param int $id Group ID + * @param int $id Group ID * @param string $name Group name * * @return bool Was the update successful? + * @throws \Exception */ public static function update($id, $name) { @@ -71,6 +92,7 @@ class Group extends BaseObject * * @param int $cid * @return array + * @throws \Exception */ public static function getIdsByContactId($cid) { @@ -92,9 +114,10 @@ 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() { @@ -121,9 +144,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) { @@ -144,6 +168,7 @@ class Group extends BaseObject * * @param int $gid * @return boolean + * @throws \Exception */ public static function remove($gid) { if (! $gid) { @@ -188,17 +213,18 @@ class Group extends BaseObject } /** - * @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); @@ -213,6 +239,7 @@ class Group extends BaseObject * @param int $gid * @param int $cid * @return boolean + * @throws \Exception */ public static function addMember($gid, $cid) { @@ -237,6 +264,7 @@ class Group extends BaseObject * @param int $gid * @param int $cid * @return boolean + * @throws \Exception */ public static function removeMember($gid, $cid) { @@ -250,14 +278,15 @@ class Group extends BaseObject } /** - * @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) { @@ -271,9 +300,10 @@ 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 * @return array + * @throws \Exception */ public static function expand($group_ids, $check_dead = false) { @@ -298,15 +328,14 @@ class Group extends BaseObject /** * @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']]); $display_groups = [ @@ -323,13 +352,13 @@ class Group extends BaseObject 'selected' => $gid == $group['id'] ? 'true' : '' ]; } - logger('groups: ' . print_r($display_groups, true)); + Logger::log('groups: ' . print_r($display_groups, true)); if ($label == '') { $label = L10n::t('Default privacy group for new contacts'); } - $o = replace_macros(get_markup_template('group_selection.tpl'), [ + $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('group_selection.tpl'), [ '$label' => $label, '$groups' => $display_groups ]); @@ -342,17 +371,16 @@ 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 = '', $cid = 0) + public static function sidebarWidget($every = 'contact', $each = 'group', $editmode = 'standard', $group_id = '', $cid = 0) { - $o = ''; - if (!local_user()) { return ''; } @@ -396,20 +424,25 @@ class Group extends BaseObject ]; } - $tpl = get_markup_template('group_side.tpl'); - $o = replace_macros($tpl, [ + // 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' => L10n::t('Edit group'), - '$ungrouped' => $every === 'contacts' ? L10n::t('Contacts not in any 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' => get_form_security_token('group_edit'), + '$form_security_token' => BaseModule::getFormSecurityToken('group_edit'), ]);