diff --git a/src/Content/Feature.php b/src/Content/Feature.php index f97a030118..b9b9d2e0e6 100644 --- a/src/Content/Feature.php +++ b/src/Content/Feature.php @@ -102,7 +102,7 @@ class Feature // Post composition 'composition' => [ DI::l10n()->t('Post Composition Features'), - ['aclautomention', DI::l10n()->t('Auto-mention Forums'), DI::l10n()->t('Add/remove mention when a forum page is selected/deselected in ACL window.'), false, DI::config()->get('feature_lock', 'aclautomention', false)], + ['aclautomention', DI::l10n()->t('Auto-mention Groups'), DI::l10n()->t('Add/remove mention when a group page is selected/deselected in ACL window.'), false, DI::config()->get('feature_lock', 'aclautomention', false)], ['explicit_mentions', DI::l10n()->t('Explicit Mentions'), DI::l10n()->t('Add explicit mentions to comment box for manual control over who gets mentioned in replies.'), false, DI::config()->get('feature_lock', 'explicit_mentions', false)], ['add_abstract', DI::l10n()->t('Add an abstract from ActivityPub content warnings'), DI::l10n()->t('Add an abstract when commenting on ActivityPub posts with a content warning. Abstracts are displayed as content warning on systems like Mastodon or Pleroma.'), false, DI::config()->get('feature_lock', 'add_abstract', false)], ], @@ -116,7 +116,7 @@ class Feature // Advanced Profile Settings 'advanced_profile' => [ DI::l10n()->t('Advanced Profile Settings'), - ['forumlist_profile', DI::l10n()->t('List Forums'), DI::l10n()->t('Show visitors public community forums at the Advanced Profile Page'), false, DI::config()->get('feature_lock', 'forumlist_profile', false)], + ['forumlist_profile', DI::l10n()->t('List Groups'), DI::l10n()->t('Show visitors public groups at the Advanced Profile Page'), false, DI::config()->get('feature_lock', 'forumlist_profile', false)], ['tagadelic', DI::l10n()->t('Tag Cloud'), DI::l10n()->t('Provide a personal tag cloud on your profile page'), false, DI::config()->get('feature_lock', 'tagadelic', false)], ['profile_membersince', DI::l10n()->t('Display Membership Date'), DI::l10n()->t('Display membership date in profile'), false, DI::config()->get('feature_lock', 'profile_membersince', false)], ], diff --git a/src/Content/ForumManager.php b/src/Content/GroupManager.php similarity index 81% rename from src/Content/ForumManager.php rename to src/Content/GroupManager.php index 5decaac141..9377ea32e9 100644 --- a/src/Content/ForumManager.php +++ b/src/Content/GroupManager.php @@ -29,21 +29,21 @@ use Friendica\DI; use Friendica\Model\Contact; /** - * This class handles methods related to the forum functionality + * This class handles methods related to the group functionality */ -class ForumManager +class GroupManager { /** - * Function to list all forums a user is connected with + * Function to list all groups a user is connected with * * @param int $uid of the profile owner * @param boolean $lastitem Sort by lastitem - * @param boolean $showhidden Show forums which are not hidden + * @param boolean $showhidden Show groups which are not hidden * @param boolean $showprivate Show private groups * * @return array - * 'url' => forum url - * 'name' => forum name + * 'url' => group url + * 'name' => group name * 'id' => number of the key from the array * 'micro' => contact photo in format micro * 'thumb' => contact photo in format thumb @@ -76,16 +76,16 @@ class ForumManager $condition = DBA::mergeConditions($condition, ['hidden' => false]); } - $forumlist = []; + $groupList = []; $fields = ['id', 'url', 'name', 'micro', 'thumb', 'avatar', 'network', 'uid']; $contacts = DBA::select('account-user-view', $fields, $condition, $params); if (!$contacts) { - return($forumlist); + return $groupList; } while ($contact = DBA::fetch($contacts)) { - $forumlist[] = [ + $groupList[] = [ 'url' => $contact['url'], 'name' => $contact['name'], 'id' => $contact['id'], @@ -95,19 +95,19 @@ class ForumManager } DBA::close($contacts); - return($forumlist); + return($groupList); } /** - * Forumlist widget + * Group list widget * - * Sidebar widget to show subscribed friendica forums. If activated - * in the settings, it appears at the notwork page sidebar + * Sidebar widget to show subscribed Friendica groups. If activated + * in the settings, it appears in the network page sidebar * * @param string $baseurl Base module path * @param int $uid The ID of the User - * @param int $cid The contact id which is used to mark a forum as "selected" + * @param int $cid The contact id which is used to mark a group as "selected" * @return string * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException @@ -121,7 +121,7 @@ class ForumManager $contacts = self::getList($uid, $lastitem, true, true); $total = count($contacts); - $visible_forums = 10; + $visibleGroups = 10; if (DBA::isResult($contacts)) { $id = 0; @@ -129,7 +129,7 @@ class ForumManager $entries = []; foreach ($contacts as $contact) { - $selected = (($cid == $contact['id']) ? ' forum-selected' : ''); + $selected = (($cid == $contact['id']) ? ' group-selected' : ''); $entry = [ 'url' => $baseurl . '/' . $contact['id'], @@ -143,16 +143,16 @@ class ForumManager $entries[] = $entry; } - $tpl = Renderer::getMarkupTemplate('widget_forumlist.tpl'); + $tpl = Renderer::getMarkupTemplate('widget/group_list.tpl'); $o .= Renderer::replaceMacros( $tpl, [ - '$title' => DI::l10n()->t('Forums'), - '$forums' => $entries, - '$link_desc' => DI::l10n()->t('External link to forum'), + '$title' => DI::l10n()->t('Groups'), + '$groups' => $entries, + '$link_desc' => DI::l10n()->t('External link to group'), '$total' => $total, - '$visible_forums' => $visible_forums, + '$visible_groups' => $visibleGroups, '$showless' => DI::l10n()->t('show less'), '$showmore' => DI::l10n()->t('show more')] ); @@ -162,9 +162,9 @@ class ForumManager } /** - * Format forumlist as contact block + * Format group list as contact block * - * This function is used to show the forumlist in + * This function is used to show the group list in * the advanced profile. * * @param int $uid The ID of the User @@ -181,7 +181,7 @@ class ForumManager $o = ''; - // place holder in case somebody wants configurability + // placeholder in case somebody wants configurability $show_total = 9999; //don't sort by last updated item @@ -191,7 +191,7 @@ class ForumManager $total_shown = 0; foreach ($contacts as $contact) { - $o .= HTML::micropro($contact, true, 'forumlist-profile-advanced'); + $o .= HTML::micropro($contact, true, 'grouplist-profile-advanced'); $total_shown++; if ($total_shown == $show_total) { break; @@ -202,14 +202,14 @@ class ForumManager } /** - * count unread forum items + * count unread group items * - * Count unread items of connected forums and private groups + * Count unread items of connected groups and private groups * * @return array * 'id' => contact id - * 'name' => contact/forum name - * 'count' => counted unseen forum items + * 'name' => contact/group name + * 'count' => counted unseen group items * @throws \Exception */ public static function countUnseenItems() diff --git a/src/Content/Item.php b/src/Content/Item.php index ede78a2173..3981978f4e 100644 --- a/src/Content/Item.php +++ b/src/Content/Item.php @@ -484,16 +484,16 @@ class Item { // Look for any tags and linkify them $item['inform'] = ''; - $private_forum = false; + $private_group = false; $private_id = null; - $only_to_forum = false; - $forum_contact = []; + $only_to_group = false; + $group_contact = []; $receivers = []; // Convert mentions in the body to a unified format $item['body'] = BBCode::setMentions($item['body'], $item['uid'], $item['network']); - // Search for forum mentions + // Search for group mentions foreach (Tag::getFromBody($item['body'], Tag::TAG_CHARACTER[Tag::MENTION] . Tag::TAG_CHARACTER[Tag::EXCLUSIVE_MENTION]) as $tag) { $contact = Contact::getByURLForUser($tag[2], $item['uid']); if (empty($contact)) { @@ -512,37 +512,37 @@ class Item } if (!empty($contact['prv']) || ($tag[1] == Tag::TAG_CHARACTER[Tag::EXCLUSIVE_MENTION])) { - $private_forum = $contact['prv']; - $only_to_forum = ($tag[1] == Tag::TAG_CHARACTER[Tag::EXCLUSIVE_MENTION]); + $private_group = $contact['prv']; + $only_to_group = ($tag[1] == Tag::TAG_CHARACTER[Tag::EXCLUSIVE_MENTION]); $private_id = $contact['id']; - $forum_contact = $contact; - Logger::info('Private forum or exclusive mention', ['url' => $tag[2], 'mention' => $tag[1]]); + $group_contact = $contact; + Logger::info('Private group or exclusive mention', ['url' => $tag[2], 'mention' => $tag[1]]); } elseif ($item['allow_cid'] == '<' . $contact['id'] . '>') { - $private_forum = false; - $only_to_forum = true; + $private_group = false; + $only_to_group = true; $private_id = $contact['id']; - $forum_contact = $contact; - Logger::info('Public forum', ['url' => $tag[2], 'mention' => $tag[1]]); + $group_contact = $contact; + Logger::info('Public group', ['url' => $tag[2], 'mention' => $tag[1]]); } else { - Logger::info('Post with forum mention will not be converted to a forum post', ['url' => $tag[2], 'mention' => $tag[1]]); + Logger::info('Post with group mention will not be converted to a group post', ['url' => $tag[2], 'mention' => $tag[1]]); } } Logger::info('Got inform', ['inform' => $item['inform']]); - if (($item['gravity'] == ItemModel::GRAVITY_PARENT) && !empty($forum_contact) && ($private_forum || $only_to_forum)) { - // we tagged a forum in a top level post. Now we change the post - $item['private'] = $private_forum ? ItemModel::PRIVATE : ItemModel::UNLISTED; + if (($item['gravity'] == ItemModel::GRAVITY_PARENT) && !empty($group_contact) && ($private_group || $only_to_group)) { + // we tagged a group in a top level post. Now we change the post + $item['private'] = $private_group ? ItemModel::PRIVATE : ItemModel::UNLISTED; - if ($only_to_forum) { + if ($only_to_group) { $item['postopts'] = ''; } $item['deny_cid'] = ''; $item['deny_gid'] = ''; - if ($private_forum) { + if ($private_group) { $item['allow_cid'] = '<' . $private_id . '>'; - $item['allow_gid'] = '<' . Circle::getIdForForum($forum_contact['id']) . '>'; + $item['allow_gid'] = '<' . Circle::getIdForGroup($group_contact['id']) . '>'; } else { $item['allow_cid'] = ''; $item['allow_gid'] = ''; @@ -1011,7 +1011,7 @@ class Item $post['body'] = $this->bbCodeVideo->transform($post['body']); $post = $this->setObjectType($post); - // Personal notes must never be altered to a forum post. + // Personal notes must never be altered to a group post. if ($post['post-type'] != ItemModel::PT_PERSONAL_NOTE) { // Look for any tags and linkify them $post = $this->expandTags($post); diff --git a/src/Content/Nav.php b/src/Content/Nav.php index 470882b075..c6634a95c4 100644 --- a/src/Content/Nav.php +++ b/src/Content/Nav.php @@ -123,7 +123,7 @@ class Nav '$apps' => $this->getAppMenu(), '$home' => $this->l10n->t('Go back'), '$clear_notifs' => $this->l10n->t('Clear notifications'), - '$search_hint' => $this->l10n->t('@name, !forum, #tags, content') + '$search_hint' => $this->l10n->t('@name, !group, #tags, content') ]); Hook::callAll('page_header', $nav); @@ -273,7 +273,7 @@ class Nav ]; if ($this->config->get('system', 'poco_local_search')) { - $nav['searchoption'][] = $this->l10n->t('Forums'); + $nav['searchoption'][] = $this->l10n->t('Groups'); } } diff --git a/src/Content/Text/HTML.php b/src/Content/Text/HTML.php index d17f75f759..01151a6a52 100644 --- a/src/Content/Text/HTML.php +++ b/src/Content/Text/HTML.php @@ -861,7 +861,7 @@ class HTML '$id' => $id, '$search_label' => DI::l10n()->t('Search'), '$save_label' => $save_label, - '$search_hint' => DI::l10n()->t('@name, !forum, #tags, content'), + '$search_hint' => DI::l10n()->t('@name, !group, #tags, content'), '$mode' => $mode, '$return_url' => urlencode(Search::getSearchPath($s)), ]; @@ -874,7 +874,7 @@ class HTML ]; if (DI::config()->get('system', 'poco_local_search')) { - $values['$searchoption']['forums'] = DI::l10n()->t('Forums'); + $values['$searchoption']['groups'] = DI::l10n()->t('Groups'); } } diff --git a/src/Content/Widget.php b/src/Content/Widget.php index c74cd3ec31..ae3a950132 100644 --- a/src/Content/Widget.php +++ b/src/Content/Widget.php @@ -530,7 +530,7 @@ class Widget ['ref' => 'person', 'name' => DI::l10n()->t('Persons')], ['ref' => 'organisation', 'name' => DI::l10n()->t('Organisations')], ['ref' => 'news', 'name' => DI::l10n()->t('News')], - ['ref' => 'community', 'name' => DI::l10n()->t('Forums')], + ['ref' => 'community', 'name' => DI::l10n()->t('Groups')], ]; return self::filter('accounttype', DI::l10n()->t('Account Types'), '', diff --git a/src/Core/ACL.php b/src/Core/ACL.php index be32670b7c..1bf8ef03ee 100644 --- a/src/Core/ACL.php +++ b/src/Core/ACL.php @@ -167,12 +167,12 @@ class ACL $acl_contacts[] = $acl_yourself; - $acl_forums = Contact::selectToArray($fields, + $acl_groups = Contact::selectToArray($fields, ['uid' => $user_id, 'self' => false, 'blocked' => false, 'archive' => false, 'deleted' => false, 'network' => Protocol::FEDERATED, 'pending' => false, 'contact-type' => Contact::TYPE_COMMUNITY], $params ); - $acl_contacts = array_merge($acl_forums, $acl_contacts); + $acl_contacts = array_merge($acl_groups, $acl_contacts); array_walk($acl_contacts, function (&$value) { $value['type'] = 'contact'; diff --git a/src/Core/Search.php b/src/Core/Search.php index 4b3bb1c7cf..98517361ea 100644 --- a/src/Core/Search.php +++ b/src/Core/Search.php @@ -42,7 +42,7 @@ class Search const DEFAULT_DIRECTORY = 'https://dir.friendica.social'; const TYPE_PEOPLE = 0; - const TYPE_FORUM = 1; + const TYPE_GROUP = 1; const TYPE_ALL = 2; /** @@ -55,7 +55,7 @@ class Search * @throws HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function getContactsFromProbe(string $user, $only_forum = false): ResultList + public static function getContactsFromProbe(string $user, $only_group = false): ResultList { $emptyResultList = new ResultList(); @@ -68,7 +68,7 @@ class Search return $emptyResultList; } - if ($only_forum && ($user_data['contact-type'] != Contact::TYPE_COMMUNITY)) { + if ($only_group && ($user_data['contact-type'] != Contact::TYPE_COMMUNITY)) { return $emptyResultList; } @@ -112,8 +112,8 @@ class Search $searchUrl = $server . '/search'; switch ($type) { - case self::TYPE_FORUM: - $searchUrl .= '/forum'; + case self::TYPE_GROUP: + $searchUrl .= '/group'; break; case self::TYPE_PEOPLE: $searchUrl .= '/people'; @@ -174,7 +174,7 @@ class Search { Logger::info('Searching', ['search' => $search, 'type' => $type, 'start' => $start, 'itempage' => $itemPage]); - $contacts = Contact::searchByName($search, $type == self::TYPE_FORUM ? 'community' : '', true); + $contacts = Contact::searchByName($search, $type == self::TYPE_GROUP ? 'community' : '', true); $resultList = new ResultList($start, count($contacts), $itemPage); @@ -240,7 +240,9 @@ class Search $return = array_map(function ($result) { static $contactType = [ 'People' => Contact::TYPE_PERSON, + // Kept for backward compatibility 'Forum' => Contact::TYPE_COMMUNITY, + 'Group' => Contact::TYPE_COMMUNITY, 'Organization' => Contact::TYPE_ORGANISATION, 'News' => Contact::TYPE_NEWS, ]; diff --git a/src/Model/Circle.php b/src/Model/Circle.php index e1ef4ad330..89453a0e8c 100644 --- a/src/Model/Circle.php +++ b/src/Model/Circle.php @@ -615,9 +615,9 @@ class Circle * @param integer $id Contact ID * @return integer Circle ID */ - public static function getIdForForum(int $id): int + public static function getIdForGroup(int $id): int { - Logger::info('Get id for forum id', ['id' => $id]); + Logger::info('Get id for group id', ['id' => $id]); $contact = Contact::getById($id, ['uid', 'name', 'contact-type', 'manually-approve']); if (empty($contact) || ($contact['contact-type'] != Contact::TYPE_COMMUNITY) || !$contact['manually-approve']) { return 0; @@ -645,9 +645,9 @@ class Circle * @param integer $id Contact ID * @return void */ - public static function updateMembersForForum(int $id) + public static function updateMembersForGroup(int $id) { - Logger::info('Update forum members', ['id' => $id]); + Logger::info('Update group members', ['id' => $id]); $contact = Contact::getById($id, ['uid', 'url']); if (empty($contact)) { @@ -659,7 +659,7 @@ class Circle return; } - $gid = self::getIdForForum($id); + $gid = self::getIdForGroup($id); if (empty($gid)) { return; } @@ -682,6 +682,6 @@ class Circle } DBA::delete('group_member', ['gid' => $gid, 'contact-id' => $current]); - Logger::info('Updated forum members', ['id' => $id, 'count' => DBA::count('group_member', ['gid' => $gid])]); + Logger::info('Updated group members', ['id' => $id, 'count' => DBA::count('group_member', ['gid' => $gid])]); } } diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 19bb97761c..3f830c29a4 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -79,7 +79,7 @@ class Contact * TYPE_NEWS - the account is a news reflector * Associated page type: PAGE_SOAPBOX * - * TYPE_COMMUNITY - the account is community forum + * TYPE_COMMUNITY - the account is community group * Associated page types: PAGE_COMMUNITY, PAGE_PRVGROUP * * TYPE_RELAY - the account is a relay @@ -1652,7 +1652,7 @@ class Contact break; case self::TYPE_COMMUNITY: - $account_type = DI::l10n()->t("Forum"); + $account_type = DI::l10n()->t("Group"); break; default: @@ -3472,13 +3472,13 @@ class Contact } /** - * Is the contact a forum? + * Is the contact a group? * * @param integer $contactid ID of the contact * - * @return boolean "true" if it is a forum + * @return boolean "true" if it is a group */ - public static function isForum(int $contactid): bool + public static function isGroup(int $contactid): bool { $fields = ['contact-type']; $condition = ['id' => $contactid]; @@ -3487,7 +3487,7 @@ class Contact return false; } - // Is it a forum? + // Is it a group? return ($contact['contact-type'] == self::TYPE_COMMUNITY); } diff --git a/src/Model/Item.php b/src/Model/Item.php index 60e88757e0..fad8ffeff4 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -1004,7 +1004,7 @@ class Item $item['deleted'] = $toplevel_parent['deleted']; $item['wall'] = $toplevel_parent['wall']; - // Reshares have to keep their permissions to allow forums to work + // Reshares have to keep their permissions to allow groups to work if (!$defined_permissions && (!$item['origin'] || ($item['verb'] != Activity::ANNOUNCE))) { $item['allow_cid'] = $toplevel_parent['allow_cid']; $item['allow_gid'] = $toplevel_parent['allow_gid']; @@ -1307,7 +1307,7 @@ class Item Post::update($fields, ['uri-id' => $posted_item['parent-uri-id'], 'uid' => $posted_item['uid']]); - // In that function we check if this is a forum post. Additionally we delete the item under certain circumstances + // In that function we check if this is a group post. Additionally we delete the item under certain circumstances if (self::tagDeliver($posted_item['uid'], $post_user_id)) { // Get the user information for the logging $user = User::getById($uid); @@ -1418,11 +1418,11 @@ class Item } /** - * Change the owner of a parent item if it had been shared by a forum + * Change the owner of a parent item if it had been shared by a group * - * (public) forum posts in the new format consist of the regular post by the author - * followed by an announce message sent from the forum account. - * Changing the owner helps in grouping forum posts. + * (public) group posts in the new format consist of the regular post by the author + * followed by an announce message sent from the group account. + * Changing the owner helps in grouping group posts. * * @param array $item * @return void @@ -1458,7 +1458,7 @@ class Item } if (Contact::isSharing($parent['owner-id'], $item['uid'])) { - Logger::info('The resharer is no forum: quit', ['resharer' => $item['author-id'], 'owner' => $parent['owner-id'], 'author' => $parent['author-id'], 'uid' => $item['uid']]); + Logger::info('The resharer is no group: quit', ['resharer' => $item['author-id'], 'owner' => $parent['owner-id'], 'author' => $parent['author-id'], 'uid' => $item['uid']]); return; } } @@ -1603,7 +1603,7 @@ class Item if (($uid != 0) && ($item['gravity'] == self::GRAVITY_PARENT)) { $owner = User::getOwnerDataById($uid); if (($owner['contact-type'] == User::ACCOUNT_TYPE_COMMUNITY) && !Tag::isMentioned($uri_id, $owner['url'])) { - Logger::info('Target user is a forum but is not mentioned here, thread will not be stored', ['uid' => $uid, 'uri-id' => $uri_id]); + Logger::info('Target user is a group but is not mentioned here, thread will not be stored', ['uid' => $uid, 'uri-id' => $uri_id]); return 0; } } @@ -1709,7 +1709,7 @@ class Item return 0; } - // When the post belongs to a a forum then all forum users are allowed to access it + // When the post belongs to a a group then all group users are allowed to access it foreach (Tag::getByURIId($uriid, [Tag::MENTION, Tag::EXCLUSIVE_MENTION]) as $tag) { if (DBA::exists('contact', ['uid' => $uid, 'nurl' => Strings::normaliseLink($tag['url']), 'contact-type' => Contact::TYPE_COMMUNITY])) { $target_uid = User::getIdForURL($tag['url']); @@ -2104,7 +2104,7 @@ class Item /// @todo On private posts we could obfuscate the date $update = ($arr['private'] != self::PRIVATE) || in_array($arr['network'], Protocol::FEDERATED); - // Is it a forum? Then we don't care about the rules from above + // Is it a group? Then we don't care about the rules from above if (!$update && in_array($arr["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN]) && ($arr["parent-uri-id"] === $arr["uri-id"])) { if (DBA::exists('contact', ['id' => $arr['contact-id'], 'forum' => true])) { $update = true; @@ -2200,7 +2200,7 @@ class Item } /** - * look for mention tags and setup a second delivery chain for forum/community posts if appropriate + * look for mention tags and setup a second delivery chain for group/community posts if appropriate * * @param int $uid * @param int $item_id @@ -3663,13 +3663,13 @@ class Item } /** - * Does the given uri-id belongs to a post that is sent as starting post to a forum? + * Does the given uri-id belongs to a post that is sent as starting post to a group? * * @param int $uri_id * - * @return boolean "true" when it is a forum post + * @return boolean "true" when it is a group post */ - public static function isForumPost(int $uri_id): bool + public static function isGroupPost(int $uri_id): bool { foreach (Tag::getByURIId($uri_id, [Tag::EXCLUSIVE_MENTION]) as $tag) { if (DBA::exists('contact', ['uid' => 0, 'nurl' => Strings::normaliseLink($tag['url']), 'contact-type' => Contact::TYPE_COMMUNITY])) { diff --git a/src/Model/Notification/Type.php b/src/Model/Notification/Type.php index c823545fbf..3476a2ca9b 100644 --- a/src/Model/Notification/Type.php +++ b/src/Model/Notification/Type.php @@ -42,7 +42,7 @@ class Type const TAG_SELF = 128; /** @var int Notification about getting poked/prodded/etc. (Obsolete) */ const POKE = 512; - /** @var int Notification about either a contact had posted something directly or the contact is a mentioned forum */ + /** @var int Notification about either a contact had posted something directly or the contact is a mentioned group */ const SHARE = 1024; /** @var int Global System notifications */ diff --git a/src/Model/Photo.php b/src/Model/Photo.php index 44ee6a6706..2235137be2 100644 --- a/src/Model/Photo.php +++ b/src/Model/Photo.php @@ -830,7 +830,7 @@ class Photo * Changes photo permissions that had been embedded in a post * * @todo This function currently does have some flaws: - * - Sharing a post with a forum will create a photo that only the forum can see. + * - Sharing a post with a group will create a photo that only the group can see. * - Sharing a photo again that been shared non public before doesn't alter the permissions. * * @return string @@ -877,7 +877,7 @@ class Photo /** * @todo Existing permissions need to be mixed with the new ones. * Otherwise this creates problems with sharing the same picture multiple times - * Also check if $str_contact_allow does contain a public forum. + * Also check if $str_contact_allow does contain a public group. * Then set the permissions to public. */ diff --git a/src/Model/Tag.php b/src/Model/Tag.php index 215d817133..9f0f8d29a6 100644 --- a/src/Model/Tag.php +++ b/src/Model/Tag.php @@ -50,7 +50,7 @@ class Tag */ const IMPLICIT_MENTION = 8; /** - * An exclusive mention transmits the post only to the target account without transmitting it to the followers, usually a forum. + * An exclusive mention transmits the post only to the target account without transmitting it to the followers, usually a group. */ const EXCLUSIVE_MENTION = 9; diff --git a/src/Model/User.php b/src/Model/User.php index ed63d67650..d6a72fbfe9 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -88,7 +88,7 @@ class User * ACCOUNT_TYPE_NEWS - the account is a news reflector * Associated page type: PAGE_FLAGS_SOAPBOX * - * ACCOUNT_TYPE_COMMUNITY - the account is community forum + * ACCOUNT_TYPE_COMMUNITY - the account is community group * Associated page types: PAGE_COMMUNITY, PAGE_FLAGS_PRVGROUP * * ACCOUNT_TYPE_RELAY - the account is a relay diff --git a/src/Module/BaseSearch.php b/src/Module/BaseSearch.php index 262ec94a20..4a25b71a56 100644 --- a/src/Module/BaseSearch.php +++ b/src/Module/BaseSearch.php @@ -71,8 +71,8 @@ class BaseSearch extends BaseModule $header = DI::l10n()->t('People Search - %s', $search); } elseif (strpos($search, '!') === 0) { $search = trim(substr($search, 1)); - $type = Search::TYPE_FORUM; - $header = DI::l10n()->t('Forum Search - %s', $search); + $type = Search::TYPE_GROUP; + $header = DI::l10n()->t('Group Search - %s', $search); } $search = Network::convertToIdn($search); @@ -98,7 +98,7 @@ class BaseSearch extends BaseModule } if (!$results->getTotal()) { - $results = Search::getContactsFromProbe(Network::convertToIdn($search), $type == Search::TYPE_FORUM); + $results = Search::getContactsFromProbe(Network::convertToIdn($search), $type == Search::TYPE_GROUP); } return self::printResult($results, $pager, $header); @@ -151,4 +151,4 @@ class BaseSearch extends BaseModule '$paginate' => $pager->renderFull($results->getTotal()), ]); } -} \ No newline at end of file +} diff --git a/src/Module/Conversation/Network.php b/src/Module/Conversation/Network.php index 72e541be4b..d4b766ae26 100644 --- a/src/Module/Conversation/Network.php +++ b/src/Module/Conversation/Network.php @@ -24,7 +24,7 @@ namespace Friendica\Module\Conversation; use Friendica\BaseModule; use Friendica\Content\BoundariesPager; use Friendica\Content\Conversation; -use Friendica\Content\ForumManager; +use Friendica\Content\GroupManager; use Friendica\Content\Nav; use Friendica\Content\Widget; use Friendica\Content\Text\HTML; @@ -52,7 +52,7 @@ class Network extends BaseModule /** @var int */ private static $circleId; /** @var int */ - private static $forumContactId; + private static $groupContactId; /** @var string */ private static $selectedTab; /** @var mixed */ @@ -90,9 +90,9 @@ class Network extends BaseModule DI::page()['aside'] .= Widget::accountTypes($module, self::$accountTypeString); DI::page()['aside'] .= Circle::sidebarWidget($module, $module . '/circle', 'standard', self::$circleId); - DI::page()['aside'] .= ForumManager::widget($module . '/forum', DI::userSession()->getLocalUserId(), self::$forumContactId); + DI::page()['aside'] .= GroupManager::widget($module . '/group', DI::userSession()->getLocalUserId(), self::$groupContactId); DI::page()['aside'] .= Widget::postedByYear($module . '/archive', DI::userSession()->getLocalUserId(), false); - DI::page()['aside'] .= Widget::networks($module, !self::$forumContactId ? self::$network : ''); + DI::page()['aside'] .= Widget::networks($module, !self::$groupContactId ? self::$network : ''); DI::page()['aside'] .= Widget\SavedSearches::getHTML(DI::args()->getQueryString()); DI::page()['aside'] .= Widget::fileAs('filed', ''); @@ -119,9 +119,9 @@ class Network extends BaseModule $content = ''; - if (self::$forumContactId) { - // If self::$forumContactId belongs to a community forum or a private group, add a mention to the status editor - $condition = ["`id` = ? AND `contact-type` = ?", self::$forumContactId, Contact::TYPE_COMMUNITY]; + if (self::$groupContactId) { + // If self::$groupContactId belongs to a community group or a private group, add a mention to the status editor + $condition = ["`id` = ? AND `contact-type` = ?", self::$groupContactId, Contact::TYPE_COMMUNITY]; $contact = DBA::selectFirst('contact', ['addr'], $condition); if (!empty($contact['addr'])) { $content = '!' . $contact['addr']; @@ -136,8 +136,8 @@ class Network extends BaseModule } $allowedCids = []; - if (self::$forumContactId) { - $allowedCids[] = (int) self::$forumContactId; + if (self::$groupContactId) { + $allowedCids[] = (int) self::$groupContactId; } elseif (self::$network) { $condition = [ 'uid' => DI::userSession()->getLocalUserId(), @@ -160,9 +160,9 @@ class Network extends BaseModule } $x = [ - 'lockstate' => self::$circleId || self::$forumContactId || self::$network || ACL::getLockstateForUserId($a->getLoggedInUserId()) ? 'lock' : 'unlock', + 'lockstate' => self::$circleId || self::$groupContactId || self::$network || ACL::getLockstateForUserId($a->getLoggedInUserId()) ? 'lock' : 'unlock', 'acl' => ACL::getFullSelectorHTML(DI::page(), $a->getLoggedInUserId(), true, $default_permissions), - 'bang' => ((self::$circleId || self::$forumContactId || self::$network) ? '!' : ''), + 'bang' => ((self::$circleId || self::$groupContactId || self::$network) ? '!' : ''), 'content' => $content, ]; @@ -178,8 +178,8 @@ class Network extends BaseModule $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('section_title.tpl'), [ '$title' => DI::l10n()->t('Circle: %s', $circle['name']) ]) . $o; - } elseif (self::$forumContactId) { - $contact = Contact::getById(self::$forumContactId); + } elseif (self::$groupContactId) { + $contact = Contact::getById(self::$groupContactId); if (DBA::isResult($contact)) { $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('contact/list.tpl'), [ 'contacts' => [ModuleContact::getContactTemplateVars($contact)], @@ -307,7 +307,7 @@ class Network extends BaseModule { self::$circleId = $this->parameters['circle_id'] ?? 0; - self::$forumContactId = $this->parameters['contact_id'] ?? 0; + self::$groupContactId = $this->parameters['contact_id'] ?? 0; self::$selectedTab = self::getTimelineOrderBySession(DI::userSession(), DI::pConfig()); @@ -413,10 +413,10 @@ class Network extends BaseModule if (self::$circleId) { $conditionStrings = DBA::mergeConditions($conditionStrings, ["`contact-id` IN (SELECT `contact-id` FROM `group_member` WHERE `gid` = ?)", self::$circleId]); - } elseif (self::$forumContactId) { + } elseif (self::$groupContactId) { $conditionStrings = DBA::mergeConditions($conditionStrings, ["((`contact-id` = ?) OR `uri-id` IN (SELECT `parent-uri-id` FROM `post-user-view` WHERE (`contact-id` = ? AND `gravity` = ? AND `vid` = ? AND `uid` = ?)))", - self::$forumContactId, self::$forumContactId, Item::GRAVITY_ACTIVITY, Verb::getID(Activity::ANNOUNCE), DI::userSession()->getLocalUserId()]); + self::$groupContactId, self::$groupContactId, Item::GRAVITY_ACTIVITY, Verb::getID(Activity::ANNOUNCE), DI::userSession()->getLocalUserId()]); } // Currently only the order modes "received" and "commented" are in use @@ -479,7 +479,7 @@ class Network extends BaseModule // We aren't going to try and figure out at the item, circle, and page // level which items you've seen and which you haven't. If you're looking // at the top level network page just mark everything seen. - if (!self::$circleId && !self::$forumContactId && !self::$star && !self::$mention) { + if (!self::$circleId && !self::$groupContactId && !self::$star && !self::$mention) { $condition = ['unseen' => true, 'uid' => DI::userSession()->getLocalUserId()]; self::setItemsSeenByCondition($condition); } elseif (!empty($parents)) { diff --git a/src/Module/Moderation/BaseUsers.php b/src/Module/Moderation/BaseUsers.php index cbcb625a86..2d352dbdc3 100644 --- a/src/Module/Moderation/BaseUsers.php +++ b/src/Module/Moderation/BaseUsers.php @@ -118,15 +118,15 @@ abstract class BaseUsers extends BaseModeration $page_types = [ User::PAGE_FLAGS_NORMAL => $this->t('Normal Account Page'), User::PAGE_FLAGS_SOAPBOX => $this->t('Soapbox Page'), - User::PAGE_FLAGS_COMMUNITY => $this->t('Public Forum'), + User::PAGE_FLAGS_COMMUNITY => $this->t('Public Group'), User::PAGE_FLAGS_FREELOVE => $this->t('Automatic Friend Page'), - User::PAGE_FLAGS_PRVGROUP => $this->t('Private Forum') + User::PAGE_FLAGS_PRVGROUP => $this->t('Private Group') ]; $account_types = [ User::ACCOUNT_TYPE_PERSON => $this->t('Personal Page'), User::ACCOUNT_TYPE_ORGANISATION => $this->t('Organisation Page'), User::ACCOUNT_TYPE_NEWS => $this->t('News Page'), - User::ACCOUNT_TYPE_COMMUNITY => $this->t('Community Forum'), + User::ACCOUNT_TYPE_COMMUNITY => $this->t('Community Group'), User::ACCOUNT_TYPE_RELAY => $this->t('Relay'), ]; diff --git a/src/Module/Moderation/Summary.php b/src/Module/Moderation/Summary.php index 3d7c007a4e..849eb284f5 100644 --- a/src/Module/Moderation/Summary.php +++ b/src/Module/Moderation/Summary.php @@ -52,10 +52,10 @@ class Summary extends BaseModeration $accounts = [ [$this->t('Normal Account'), 0], [$this->t('Automatic Follower Account'), 0], - [$this->t('Public Forum Account'), 0], + [$this->t('Public Group Account'), 0], [$this->t('Automatic Friend Account'), 0], [$this->t('Blog Account'), 0], - [$this->t('Private Forum Account'), 0] + [$this->t('Private Group Account'), 0] ]; $users = 0; diff --git a/src/Module/Notifications/Ping.php b/src/Module/Notifications/Ping.php index dd9e8cccde..120035d557 100644 --- a/src/Module/Notifications/Ping.php +++ b/src/Module/Notifications/Ping.php @@ -24,7 +24,7 @@ namespace Friendica\Module\Notifications; use Friendica\App; use Friendica\BaseModule; use Friendica\Contact\Introduction\Repository\Introduction; -use Friendica\Content\ForumManager; +use Friendica\Content\GroupManager; use Friendica\Core\Cache\Capability\ICanCache; use Friendica\Core\Cache\Enum\Duration; use Friendica\Core\Config\Capability\IManageConfigValues; @@ -109,14 +109,14 @@ class Ping extends BaseModule $register_count = 0; $sysnotify_count = 0; $circles_unseen = []; - $forums_unseen = []; + $groups_unseen = []; $event_count = 0; $today_event_count = 0; $birthday_count = 0; $today_birthday_count = 0; - // Suppress notification display for forum accounts + // Suppress notification display for group accounts if ($this->session->getLocalUserId() && $this->session->get('page_flags', '') != User::PAGE_FLAGS_COMMUNITY) { if ($this->pconfig->get($this->session->getLocalUserId(), 'system', 'detailed_notif')) { $notifications = $this->notificationRepo->selectDetailedForUser($this->session->getLocalUserId()); @@ -160,9 +160,9 @@ class Ping extends BaseModule } } - foreach (ForumManager::countUnseenItems() as $forum_count) { - if ($forum_count['count'] > 0) { - $forums_unseen[] = $forum_count; + foreach (GroupManager::countUnseenItems() as $group_count) { + if ($group_count['count'] > 0) { + $groups_unseen[] = $group_count; } } } @@ -290,7 +290,7 @@ class Ping extends BaseModule $data['birthdays'] = $birthday_count; $data['birthdays-today'] = $today_birthday_count; $data['circles'] = $circles_unseen; - $data['forums'] = $forums_unseen; + $data['groups'] = $groups_unseen; $data['notification'] = ($notification_count < 50) ? $notification_count : '49+'; $data['notifications'] = $navNotifications; diff --git a/src/Module/Profile/Conversations.php b/src/Module/Profile/Conversations.php index edd99e418f..9d5fea0a6e 100644 --- a/src/Module/Profile/Conversations.php +++ b/src/Module/Profile/Conversations.php @@ -188,7 +188,7 @@ class Conversations extends BaseProfile $condition = DBA::mergeConditions($condition, ["`received` >= ?", DateTimeFormat::convert($datequery2, 'UTC', $this->app->getTimeZone())]); } - // Does the profile page belong to a forum? + // Does the profile page belong to a group? // If not then we can improve the performance with an additional condition if ($profile['account-type'] != User::ACCOUNT_TYPE_COMMUNITY) { $condition = DBA::mergeConditions($condition, ['contact-id' => $profile['id']]); diff --git a/src/Module/Profile/Profile.php b/src/Module/Profile/Profile.php index d753cd762e..5e5028cb86 100644 --- a/src/Module/Profile/Profile.php +++ b/src/Module/Profile/Profile.php @@ -23,7 +23,7 @@ namespace Friendica\Module\Profile; use Friendica\App; use Friendica\Content\Feature; -use Friendica\Content\ForumManager; +use Friendica\Content\GroupManager; use Friendica\Content\Nav; use Friendica\Content\Text\BBCode; use Friendica\Core\Config\Capability\IManageConfigValues; @@ -254,12 +254,12 @@ class Profile extends BaseProfile ); } - //show subscribed forum if it is enabled in the usersettings + //show subscribed group if it is enabled in the usersettings if (Feature::isEnabled($profile['uid'], 'forumlist_profile')) { $custom_fields += self::buildField( - 'forumlist', - $this->t('Forums:'), - ForumManager::profileAdvanced($profile['uid']) + 'group_list', + $this->t('Groups:'), + GroupManager::profileAdvanced($profile['uid']) ); } diff --git a/src/Module/Search/Acl.php b/src/Module/Search/Acl.php index 4aa8922153..66e371dd17 100644 --- a/src/Module/Search/Acl.php +++ b/src/Module/Search/Acl.php @@ -50,7 +50,7 @@ class Acl extends BaseModule const TYPE_MENTION_CONTACT = 'c'; const TYPE_MENTION_CIRCLE = 'g'; const TYPE_MENTION_CONTACT_CIRCLE = ''; - const TYPE_MENTION_FORUM = 'f'; + const TYPE_MENTION_GROUP = 'f'; const TYPE_PRIVATE_MESSAGE = 'm'; const TYPE_ANY_CONTACT = 'a'; @@ -100,7 +100,7 @@ class Acl extends BaseModule 'nick' => $contact['addr'] ?: $contact['url'], 'network' => $contact['network'], 'link' => $contact['url'], - 'forum' => $contact['contact-type'] == Contact::TYPE_COMMUNITY, + 'group' => $contact['contact-type'] == Contact::TYPE_COMMUNITY, ]; } @@ -161,7 +161,7 @@ class Acl extends BaseModule ]); break; - case self::TYPE_MENTION_FORUM: + case self::TYPE_MENTION_GROUP: $condition = DBA::mergeConditions($condition, ["NOT `self` AND NOT `blocked` AND `notify` != ? AND `contact-type` = ?", '', Contact::TYPE_COMMUNITY ]); @@ -205,7 +205,7 @@ class Acl extends BaseModule 'id' => intval($circle['id']), 'uids' => array_map('intval', explode(',', $circle['uids'])), 'link' => '', - 'forum' => '0' + 'group' => '0' ]; } if ((count($resultCircles) > 0) && ($search == '')) { @@ -218,7 +218,7 @@ class Acl extends BaseModule $contacts = Contact::selectToArray([], $condition, ['order' => ['name']]); } - $forums = []; + $groups = []; foreach ($contacts as $contact) { $entry = [ 'type' => self::TYPE_MENTION_CONTACT, @@ -229,21 +229,21 @@ class Acl extends BaseModule 'link' => $contact['url'], 'nick' => htmlentities(($contact['attag'] ?? '') ?: $contact['nick']), 'addr' => htmlentities(($contact['addr'] ?? '') ?: $contact['url']), - 'forum' => $contact['contact-type'] == Contact::TYPE_COMMUNITY, + 'group' => $contact['contact-type'] == Contact::TYPE_COMMUNITY, ]; - if ($entry['forum']) { - $forums[] = $entry; + if ($entry['group']) { + $groups[] = $entry; } else { $resultContacts[] = $entry; } } - if ($forums) { + if ($groups) { if ($search == '') { - $forums[] = ['separator' => true]; + $groups[] = ['separator' => true]; } - $resultContacts = array_merge($forums, $resultContacts); + $resultContacts = array_merge($groups, $resultContacts); } $resultItems = array_merge($resultCircles, $resultContacts); @@ -285,7 +285,7 @@ class Acl extends BaseModule 'link' => $contact['url'], 'nick' => htmlentities(($contact['nick'] ?? '') ?: $contact['addr']), 'addr' => htmlentities(($contact['addr'] ?? '') ?: $contact['url']), - 'forum' => $contact['forum'] + 'group' => $contact['forum'] ]; } } diff --git a/src/Module/Search/Index.php b/src/Module/Search/Index.php index 1673896842..b08857a739 100644 --- a/src/Module/Search/Index.php +++ b/src/Module/Search/Index.php @@ -139,7 +139,7 @@ class Index extends BaseSearch break; case 'contacts': return self::performContactSearch($search, '@'); - case 'forums': + case 'groups': return self::performContactSearch($search, '!'); } } diff --git a/src/Module/Settings/Account.php b/src/Module/Settings/Account.php index c2b227c859..fe8e5e626c 100644 --- a/src/Module/Settings/Account.php +++ b/src/Module/Settings/Account.php @@ -452,7 +452,7 @@ class Account extends BaseSettings $pagetype = Renderer::replaceMacros($pageset_tpl, [ '$account_types' => DI::l10n()->t("Account Types"), '$user' => DI::l10n()->t("Personal Page Subtypes"), - '$community' => DI::l10n()->t("Community Forum Subtypes"), + '$community' => DI::l10n()->t("Community Group Subtypes"), '$account_type' => $user['account-type'], '$type_person' => User::ACCOUNT_TYPE_PERSON, '$type_organisation' => User::ACCOUNT_TYPE_ORGANISATION, @@ -481,7 +481,7 @@ class Account extends BaseSettings ], '$account_community' => [ 'account-type', - DI::l10n()->t('Community Forum'), + DI::l10n()->t('Community Group'), User::ACCOUNT_TYPE_COMMUNITY, DI::l10n()->t('Account for community discussions.'), $user['account-type'] == User::ACCOUNT_TYPE_COMMUNITY @@ -502,7 +502,7 @@ class Account extends BaseSettings ], '$page_community' => [ 'page-flags', - DI::l10n()->t('Public Forum'), + DI::l10n()->t('Public Group'), User::PAGE_FLAGS_COMMUNITY, DI::l10n()->t('Automatically approves all contact requests.'), $user['page-flags'] == User::PAGE_FLAGS_COMMUNITY @@ -516,7 +516,7 @@ class Account extends BaseSettings ], '$page_prvgroup' => [ 'page-flags', - DI::l10n()->t('Private Forum [Experimental]'), + DI::l10n()->t('Private Group [Experimental]'), User::PAGE_FLAGS_PRVGROUP, DI::l10n()->t('Requires manual approval of contact requests.'), $user['page-flags'] == User::PAGE_FLAGS_PRVGROUP diff --git a/src/Navigation/Notifications/Repository/Notify.php b/src/Navigation/Notifications/Repository/Notify.php index 6c38685240..2cacaa728f 100644 --- a/src/Navigation/Notifications/Repository/Notify.php +++ b/src/Navigation/Notifications/Repository/Notify.php @@ -242,7 +242,7 @@ class Notify extends BaseRepository return false; } - // There is no need to create notifications for forum accounts + // There is no need to create notifications for group accounts if ($user['account-type'] == Model\User::ACCOUNT_TYPE_COMMUNITY) { return false; } diff --git a/src/Object/Post.php b/src/Object/Post.php index 0f5e98aed9..1fa7588b41 100644 --- a/src/Object/Post.php +++ b/src/Object/Post.php @@ -925,7 +925,7 @@ class Post if ($conv) { // This will allow us to comment on wall-to-wall items owned by our friends - // and community forums even if somebody else wrote the post. + // and community groups even if somebody else wrote the post. // bug #517 - this fixes for conversation owner if ($conv->getMode() == 'profile' && $conv->getProfileOwner() == DI::userSession()->getLocalUserId()) { return true; diff --git a/src/Protocol/ActivityPub.php b/src/Protocol/ActivityPub.php index d1177e0b07..eaf34669ba 100644 --- a/src/Protocol/ActivityPub.php +++ b/src/Protocol/ActivityPub.php @@ -52,8 +52,8 @@ use Friendica\Util\JsonLD; * - Polling the outboxes for missing content? * * Missing parts from DFRN: - * - Public Forum - * - Private Forum + * - Public Group + * - Private Group * - Relocation */ class ActivityPub diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index b8d4005a61..453525454a 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -415,7 +415,7 @@ class Processor $item['post-type'] = Item::PT_NOTE; } - $item['isForum'] = false; + $item['isGroup'] = false; if (!empty($activity['thread-completion'])) { if ($activity['thread-completion'] != $item['owner-id']) { @@ -434,7 +434,7 @@ class Processor $item['owner-id'] = $item['author-id']; } else { $actor = APContact::getByURL($item['owner-link'], false); - $item['isForum'] = ($actor['type'] ?? 'Person') == 'Group'; + $item['isGroup'] = ($actor['type'] ?? 'Person') == 'Group'; } $item['uri'] = $activity['id']; @@ -1059,7 +1059,7 @@ class Processor $item['causer-id'] = ($item['gravity'] == Item::GRAVITY_PARENT) ? $item['owner-id'] : $item['author-id']; } - if ($item['isForum'] ?? false) { + if ($item['isGroup'] ?? false) { $item['contact-id'] = Contact::getIdForURL($activity['actor'], $receiver); } else { $item['contact-id'] = Contact::getIdForURL($activity['author'], $receiver); @@ -1075,7 +1075,7 @@ class Processor } if (($receiver != 0) && ($item['gravity'] == Item::GRAVITY_PARENT) && !in_array($item['post-reason'], [Item::PR_FOLLOWER, Item::PR_TAG, item::PR_TO, Item::PR_CC, Item::PR_AUDIENCE])) { - if (!($item['isForum'] ?? false)) { + if (!($item['isGroup'] ?? false)) { if ($item['post-reason'] == Item::PR_BCC) { Logger::info('Top level post via BCC from a non sharer, ignoring', ['uid' => $receiver, 'contact' => $item['contact-id'], 'url' => $item['uri']]); continue; @@ -1089,16 +1089,16 @@ class Processor } } - $is_forum = false; + $isGroup = false; $user = User::getById($receiver, ['account-type']); if (!empty($user['account-type'])) { - $is_forum = ($user['account-type'] == User::ACCOUNT_TYPE_COMMUNITY); + $isGroup = ($user['account-type'] == User::ACCOUNT_TYPE_COMMUNITY); } if ((DI::pConfig()->get($receiver, 'system', 'accept_only_sharer') == Item::COMPLETION_NONE) - && ((!$is_forum && !($item['isForum'] ?? false) && ($activity['type'] != 'as:Announce')) + && ((!$isGroup && !($item['isGroup'] ?? false) && ($activity['type'] != 'as:Announce')) || !Contact::isSharingByURL($activity['actor'], $receiver))) { - Logger::info('Actor is a non sharer, is no forum or it is no announce', ['uid' => $receiver, 'actor' => $activity['actor'], 'url' => $item['uri'], 'type' => $activity['type']]); + Logger::info('Actor is a non sharer, is no group or it is no announce', ['uid' => $receiver, 'actor' => $activity['actor'], 'url' => $item['uri'], 'type' => $activity['type']]); continue; } @@ -1141,7 +1141,7 @@ class Processor // Store send a follow request for every reshare - but only when the item had been stored if ($stored && ($item['private'] != Item::PRIVATE) && ($item['gravity'] == Item::GRAVITY_PARENT) && !empty($item['author-link']) && ($item['author-link'] != $item['owner-link'])) { $author = APContact::getByURL($item['owner-link'], false); - // We send automatic follow requests for reshared messages. (We don't need though for forum posts) + // We send automatic follow requests for reshared messages. (We don't need though for group posts) if ($author['type'] != 'Group') { Logger::info('Send follow request', ['uri' => $item['uri'], 'stored' => $stored, 'to' => $item['author-link']]); ActivityPub\Transmitter::sendFollowObject($item['uri'], $item['author-link']); diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index cf2485186a..b272c31dd3 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -1098,7 +1098,7 @@ class Receiver if (!empty($actor)) { $profile = APContact::getByURL($actor); $followers = $profile['followers'] ?? ''; - $is_forum = ($profile['type'] ?? '') == 'Group'; + $isGroup = ($profile['type'] ?? '') == 'Group'; if ($push) { Contact::updateByUrlIfNeeded($actor); } @@ -1106,7 +1106,7 @@ class Receiver } else { Logger::info('Empty actor', ['activity' => $activity]); $followers = ''; - $is_forum = false; + $isGroup = false; } // We have to prevent false follower assumptions upon thread completions @@ -1129,7 +1129,7 @@ class Receiver } // Fetch the receivers for the public and the followers collection - if ((($receiver == $followers) || (($receiver == self::PUBLIC_COLLECTION) && !$is_forum)) && !empty($actor)) { + if ((($receiver == $followers) || (($receiver == self::PUBLIC_COLLECTION) && !$isGroup)) && !empty($actor)) { $receivers = self::getReceiverForActor($actor, $tags, $receivers, $follower_target, $profile); continue; } @@ -1148,7 +1148,7 @@ class Receiver $condition = ['nurl' => Strings::normaliseLink($actor), 'rel' => [Contact::SHARING, Contact::FRIEND], 'network' => $networks, 'archive' => false, 'pending' => false, 'uid' => $contact['uid']]; - // Forum posts are only accepted from forum contacts + // Group posts are only accepted from group contacts if ($contact['contact-type'] == Contact::TYPE_COMMUNITY) { $condition['rel'] = [Contact::SHARING, Contact::FRIEND, Contact::FOLLOWER]; } diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 3d945180a5..e817198ec6 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -492,13 +492,13 @@ class Transmitter * Returns an array with permissions of the thread parent of the given item array * * @param array $item - * @param bool $is_forum_thread + * @param bool $is_group_thread * * @return array with permissions * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - private static function fetchPermissionBlockFromThreadParent(array $item, bool $is_forum_thread): array + private static function fetchPermissionBlockFromThreadParent(array $item, bool $is_group_thread): array { if (empty($item['thr-parent-id'])) { return []; @@ -528,7 +528,7 @@ class Transmitter $type = [Tag::TO => 'to', Tag::CC => 'cc', Tag::BTO => 'bto', Tag::BCC => 'bcc']; foreach (Tag::getByURIId($item['thr-parent-id'], [Tag::TO, Tag::CC, Tag::BTO, Tag::BCC]) as $receiver) { if (!empty($parent_profile['followers']) && $receiver['url'] == $parent_profile['followers'] && !empty($item_profile['followers'])) { - if (!$is_forum_thread) { + if (!$is_group_thread) { $permissions[$type[$receiver['type']]][] = $item_profile['followers']; } } elseif (!in_array($receiver['url'], $exclude)) { @@ -573,7 +573,7 @@ class Transmitter } $always_bcc = false; - $is_forum = false; + $is_group = false; $follower = ''; // Check if we should always deliver our stuff via BCC @@ -581,7 +581,7 @@ class Transmitter $owner = User::getOwnerDataById($item['uid']); if (!empty($owner)) { $always_bcc = $owner['hide-friends']; - $is_forum = ($owner['account-type'] == User::ACCOUNT_TYPE_COMMUNITY) && $owner['manually-approve']; + $is_group = ($owner['account-type'] == User::ACCOUNT_TYPE_COMMUNITY) && $owner['manually-approve']; $profile = APContact::getByURL($owner['url'], false); $follower = $profile['followers'] ?? ''; @@ -595,9 +595,9 @@ class Transmitter $parent = Post::selectFirst(['causer-link', 'post-reason'], ['id' => $item['parent']]); if (!empty($parent) && ($parent['post-reason'] == Item::PR_ANNOUNCEMENT) && !empty($parent['causer-link'])) { $profile = APContact::getByURL($parent['causer-link'], false); - $is_forum_thread = isset($profile['type']) && $profile['type'] == 'Group'; + $is_group_thread = isset($profile['type']) && $profile['type'] == 'Group'; } else { - $is_forum_thread = false; + $is_group_thread = false; } if (self::isAnnounce($item) || self::isAPPost($last_id)) { @@ -619,7 +619,7 @@ class Transmitter $exclusive = false; $mention = false; - if ($is_forum_thread) { + if ($is_group_thread) { foreach (Tag::getByURIId($item['parent-uri-id'], [Tag::MENTION, Tag::EXCLUSIVE_MENTION]) as $term) { $profile = APContact::getByURL($term['url'], false); if (!empty($profile) && ($profile['type'] == 'Group')) { @@ -644,7 +644,7 @@ class Transmitter $data['cc'][] = $announce['actor']['url']; } - $data = array_merge($data, self::fetchPermissionBlockFromThreadParent($item, $is_forum_thread)); + $data = array_merge($data, self::fetchPermissionBlockFromThreadParent($item, $is_group_thread)); // Check if the item is completely public or unlisted if ($item['private'] == Item::PUBLIC) { @@ -702,7 +702,7 @@ class Transmitter $exclusive = false; } - if ($is_forum && !$exclusive && !empty($follower)) { + if ($is_group && !$exclusive && !empty($follower)) { $data['cc'][] = $follower; } elseif (!$exclusive) { foreach ($receiver_list as $receiver) { @@ -739,19 +739,19 @@ class Transmitter $profile = APContact::getByURL($parent['owner-link'], false); if (!empty($profile)) { if ($item['gravity'] != Item::GRAVITY_PARENT) { - // Comments to forums are directed to the forum - // But comments to forums aren't directed to the followers collection - // This rule is only valid when the actor isn't the forum. - // The forum needs to transmit their content to their followers. + // Comments to groups are directed to the group + // But comments to groups aren't directed to the followers collection + // This rule is only valid when the actor isn't the group. + // The group needs to transmit their content to their followers. if (($profile['type'] == 'Group') && ($profile['url'] != ($actor_profile['url'] ?? ''))) { $data['to'][] = $profile['url']; } else { $data['cc'][] = $profile['url']; - if (($item['private'] != Item::PRIVATE) && !empty($actor_profile['followers']) && (!$exclusive || !$is_forum_thread)) { + if (($item['private'] != Item::PRIVATE) && !empty($actor_profile['followers']) && (!$exclusive || !$is_group_thread)) { $data['cc'][] = $actor_profile['followers']; } } - } elseif (!$exclusive && !$is_forum_thread) { + } elseif (!$exclusive && !$is_group_thread) { // Public thread parent post always are directed to the followers. if ($item['private'] != Item::PRIVATE) { $data['cc'][] = $actor_profile['followers']; @@ -885,12 +885,11 @@ class Transmitter { $inboxes = []; - $isforum = false; - + $isGroup = false; if (!empty($item['uid'])) { $profile = User::getOwnerDataById($item['uid']); if (!empty($profile)) { - $isforum = $profile['account-type'] == User::ACCOUNT_TYPE_COMMUNITY; + $isGroup = $profile['account-type'] == User::ACCOUNT_TYPE_COMMUNITY; } } @@ -920,7 +919,7 @@ class Transmitter continue; } - if ($isforum && ($contact['network'] == Protocol::DFRN)) { + if ($isGroup && ($contact['network'] == Protocol::DFRN)) { continue; } diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index b29a3676ad..1fcaaba7f7 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -2220,8 +2220,8 @@ class DFRN GServer::setProtocol($importer['gsid'], Post\DeliveryData::DFRN); } - // is it a public forum? Private forums aren't exposed with this method - $forum = intval(XML::getFirstNodeValue($xpath, '/atom:feed/dfrn:community/text()')); + // is it a public group? Private groups aren't exposed with this method + $group = intval(XML::getFirstNodeValue($xpath, '/atom:feed/dfrn:community/text()')); // The account type is new since 3.5.1 if ($xpath->query('/atom:feed/dfrn:account_type')->length > 0) { @@ -2235,17 +2235,17 @@ class DFRN // Updating the public contact as well Contact::update(['contact-type' => $accounttype], ['uid' => 0, 'nurl' => $importer['nurl']]); } - // A forum contact can either have set "forum" or "prv" - but not both + // A group contact can either have set "forum" or "prv" - but not both if ($accounttype == User::ACCOUNT_TYPE_COMMUNITY) { - // It's a forum, so either set the public or private forum flag - $condition = ['(`forum` != ? OR `prv` != ?) AND `id` = ?', $forum, !$forum, $importer['id']]; - Contact::update(['forum' => $forum, 'prv' => !$forum], $condition); + // It's a group, so either set the public or private forum flag + $condition = ['(`forum` != ? OR `prv` != ?) AND `id` = ?', $group, !$group, $importer['id']]; + Contact::update(['forum' => $group, 'prv' => !$group], $condition); // Updating the public contact as well - $condition = ['(`forum` != ? OR `prv` != ?) AND `uid` = 0 AND `nurl` = ?', $forum, !$forum, $importer['nurl']]; - Contact::update(['forum' => $forum, 'prv' => !$forum], $condition); + $condition = ['(`forum` != ? OR `prv` != ?) AND `uid` = 0 AND `nurl` = ?', $group, !$group, $importer['nurl']]; + Contact::update(['forum' => $group, 'prv' => !$group], $condition); } else { - // It's not a forum, so remove the flags + // It's not a group, so remove the flags $condition = ['(`forum` OR `prv`) AND `id` = ?', $importer['id']]; Contact::update(['forum' => false, 'prv' => false], $condition); @@ -2253,13 +2253,13 @@ class DFRN $condition = ['(`forum` OR `prv`) AND `uid` = 0 AND `nurl` = ?', $importer['nurl']]; Contact::update(['forum' => false, 'prv' => false], $condition); } - } elseif ($forum != $importer['forum']) { // Deprecated since 3.5.1 - $condition = ['`forum` != ? AND `id` = ?', $forum, $importer['id']]; - Contact::update(['forum' => $forum], $condition); + } elseif ($group != $importer['forum']) { // Deprecated since 3.5.1 + $condition = ['`forum` != ? AND `id` = ?', $group, $importer['id']]; + Contact::update(['forum' => $group], $condition); // Updating the public contact as well - $condition = ['`forum` != ? AND `uid` = 0 AND `nurl` = ?', $forum, $importer['nurl']]; - Contact::update(['forum' => $forum], $condition); + $condition = ['`forum` != ? AND `uid` = 0 AND `nurl` = ?', $group, $importer['nurl']]; + Contact::update(['forum' => $group], $condition); } diff --git a/src/Protocol/Delivery.php b/src/Protocol/Delivery.php index c8039344ed..9f8174e2d4 100644 --- a/src/Protocol/Delivery.php +++ b/src/Protocol/Delivery.php @@ -404,7 +404,7 @@ class Delivery */ private static function deliverDiaspora(string $cmd, array $contact, array $owner, array $items, array $target_item, bool $public_message, bool $top_level, bool $followup): bool { - // We don't treat Forum posts as "wall-to-wall" to be able to post them via Diaspora + // We don't treat group posts as "wall-to-wall" to be able to post them via Diaspora $walltowall = $top_level && ($owner['id'] != $items[0]['contact-id']) & ($owner['account-type'] != User::ACCOUNT_TYPE_COMMUNITY); if ($public_message) { diff --git a/src/Worker/ExpireAndRemoveUsers.php b/src/Worker/ExpireAndRemoveUsers.php index f29934596a..c04741462d 100644 --- a/src/Worker/ExpireAndRemoveUsers.php +++ b/src/Worker/ExpireAndRemoveUsers.php @@ -36,7 +36,7 @@ class ExpireAndRemoveUsers { public static function execute() { - // expire any expired regular accounts. Don't expire forums. + // expire any expired regular accounts. Don't expire groups. $condition = ["NOT `account_expired` AND `account_expires_on` > ? AND `account_expires_on` < ? AND `page-flags` = ? AND `uid` != ?", DBA::NULL_DATETIME, DateTimeFormat::utcNow(), User::PAGE_FLAGS_NORMAL, 0]; DBA::update('user', ['account_expired' => true], $condition); diff --git a/src/Worker/Notifier.php b/src/Worker/Notifier.php index 6eb653dec1..e87a587f59 100644 --- a/src/Worker/Notifier.php +++ b/src/Worker/Notifier.php @@ -167,8 +167,8 @@ class Notifier // Do a PuSH $push_notify = false; - // Deliver directly to a forum, don't PuSH - $direct_forum_delivery = false; + // Deliver directly to a group, don't PuSH + $direct_group_delivery = false; $only_ap_delivery = false; @@ -249,15 +249,15 @@ class Notifier $relay_to_owner = false; } - // Special treatment for forum posts - if (Item::isForumPost($target_item['uri-id'])) { + // Special treatment for group posts + if (Item::isGroupPost($target_item['uri-id'])) { $relay_to_owner = true; - $direct_forum_delivery = true; + $direct_group_delivery = true; } - // Avoid that comments in a forum thread are sent to OStatus - if (Item::isForumPost($parent['uri-id'])) { - $direct_forum_delivery = true; + // Avoid that comments in a group thread are sent to OStatus + if (Item::isGroupPost($parent['uri-id'])) { + $direct_group_delivery = true; } $exclusive_delivery = false; @@ -303,7 +303,7 @@ class Notifier } } - if ($direct_forum_delivery) { + if ($direct_group_delivery) { $push_notify = false; } @@ -793,11 +793,11 @@ class Notifier $uid = $target_item['contact-uid'] ?: $target_item['uid']; - // Update the locally stored follower list when we deliver to a forum + // Update the locally stored follower list when we deliver to a group foreach (Tag::getByURIId($target_item['uri-id'], [Tag::MENTION, Tag::EXCLUSIVE_MENTION]) as $tag) { $target_contact = Contact::getByURL(Strings::normaliseLink($tag['url']), null, [], $uid); if ($target_contact && $target_contact['contact-type'] == Contact::TYPE_COMMUNITY && $target_contact['manually-approve']) { - Circle::updateMembersForForum($target_contact['id']); + Circle::updateMembersForGroup($target_contact['id']); } } diff --git a/static/defaults.config.php b/static/defaults.config.php index 6a0a619a35..2730953157 100644 --- a/static/defaults.config.php +++ b/static/defaults.config.php @@ -633,7 +633,7 @@ return [ 'throttle_limit_month' => 0, // transmit_pending_events (Boolean) - // Transmit pending events upon accepted contact request for forums + // Transmit pending events upon accepted contact request for groups 'transmit_pending_events' => false, // update_active_contacts (Boolean) diff --git a/static/routes.config.php b/static/routes.config.php index 8b4b1a9674..7409c408d4 100644 --- a/static/routes.config.php +++ b/static/routes.config.php @@ -667,7 +667,7 @@ return [ '/network' => [ '[/]' => [Module\Conversation\Network::class, [R::GET]], '/archive/{from:\d\d\d\d-\d\d-\d\d}[/{to:\d\d\d\d-\d\d-\d\d}]' => [Module\Conversation\Network::class, [R::GET]], - '/forum/{contact_id:\d+}' => [Module\Conversation\Network::class, [R::GET]], + '/group/{contact_id:\d+}' => [Module\Conversation\Network::class, [R::GET]], '/circle/{circle_id:\d+}' => [Module\Conversation\Network::class, [R::GET]], ], @@ -687,7 +687,7 @@ return [ '/update_network' => [ '[/]' => [Module\Update\Network::class, [R::GET]], '/archive/{from:\d\d\d\d-\d\d-\d\d}[/{to:\d\d\d\d-\d\d-\d\d}]' => [Module\Update\Network::class, [R::GET]], - '/forum/{contact_id:\d+}' => [Module\Update\Network::class, [R::GET]], + '/group/{contact_id:\d+}' => [Module\Update\Network::class, [R::GET]], '/circle/{circle_id:\d+}' => [Module\Update\Network::class, [R::GET]], ], diff --git a/view/global.css b/view/global.css index 5b701654ad..455174e213 100644 --- a/view/global.css +++ b/view/global.css @@ -452,14 +452,14 @@ td.federation-data { max-height: 80px; } -/* forumlist widget */ -.forumlist-img { +/* group list widget */ +.grouplist-img { height: 20px; width: 20px; vertical-align: middle; } -#forum-widget-collapse { +#group-widget-collapse { opacity: 0.3; } @@ -479,7 +479,7 @@ aside .help-aside-wrapper h1 { color: #ffffff; } -#forum-widget-collapse:hover { +#group-widget-collapse:hover { opacity: 1.0; } diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js index 6d4e88382e..dc649084af 100644 --- a/view/js/autocomplete.js +++ b/view/js/autocomplete.js @@ -25,7 +25,7 @@ function contact_search(term, callback, backend_url, type, mode) { if(lterm.indexOf(t) >= 0) { // A more broad search has been performed already, so use those results // Filter old results locally var matching = contact_search.cache[bt][t].filter(function (x) { return (x.name.toLowerCase().indexOf(lterm) >= 0 || (typeof x.nick !== 'undefined' && x.nick.toLowerCase().indexOf(lterm) >= 0)); }); // Need to check that nick exists because circles don't have one - matching.unshift({forum:false, text: term, replace: term}); + matching.unshift({group: false, text: term, replace: term}); setTimeout(function() { callback(matching); } , 1); // Use "pseudo-thread" to avoid some problems return; } @@ -69,10 +69,10 @@ function contact_format(item) { // Show contact information if not explicitly told to show something else if(typeof item.text === 'undefined') { var desc = ((item.label) ? item.nick + ' ' + item.label : item.nick); - var forum = ((item.forum) ? 'forum' : ''); + var group = ((item.group) ? 'group' : ''); if(typeof desc === 'undefined') desc = ''; if(desc) desc = ' ('+desc+')'; - return "