From: Hypolite Petovan Date: Tue, 30 May 2023 13:15:17 +0000 (-0400) Subject: Replace "forum" by "group" in the rest of the code X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=3385147f25969ba06f7b8efaace41d294c6cae2d;p=friendica.git Replace "forum" by "group" in the rest of the code --- 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/ForumManager.php deleted file mode 100644 index 5decaac141..0000000000 --- a/src/Content/ForumManager.php +++ /dev/null @@ -1,231 +0,0 @@ -. - * - */ - -namespace Friendica\Content; - -use Friendica\Content\Text\HTML; -use Friendica\Core\Protocol; -use Friendica\Core\Renderer; -use Friendica\Database\DBA; -use Friendica\DI; -use Friendica\Model\Contact; - -/** - * This class handles methods related to the forum functionality - */ -class ForumManager -{ - /** - * Function to list all forums 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 $showprivate Show private groups - * - * @return array - * 'url' => forum url - * 'name' => forum name - * 'id' => number of the key from the array - * 'micro' => contact photo in format micro - * 'thumb' => contact photo in format thumb - * @throws \Exception - */ - public static function getList($uid, $lastitem, $showhidden = true, $showprivate = false) - { - if ($lastitem) { - $params = ['order' => ['last-item' => true]]; - } else { - $params = ['order' => ['name']]; - } - - $condition = [ - 'contact-type' => Contact::TYPE_COMMUNITY, - 'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB], - 'uid' => $uid, - 'blocked' => false, - 'pending' => false, - 'archive' => false, - ]; - - $condition = DBA::mergeConditions($condition, ["`platform` != ?", 'peertube']); - - if (!$showprivate) { - $condition = DBA::mergeConditions($condition, ['manually-approve' => false]); - } - - if (!$showhidden) { - $condition = DBA::mergeConditions($condition, ['hidden' => false]); - } - - $forumlist = []; - - $fields = ['id', 'url', 'name', 'micro', 'thumb', 'avatar', 'network', 'uid']; - $contacts = DBA::select('account-user-view', $fields, $condition, $params); - if (!$contacts) { - return($forumlist); - } - - while ($contact = DBA::fetch($contacts)) { - $forumlist[] = [ - 'url' => $contact['url'], - 'name' => $contact['name'], - 'id' => $contact['id'], - 'micro' => $contact['micro'], - 'thumb' => $contact['thumb'], - ]; - } - DBA::close($contacts); - - return($forumlist); - } - - - /** - * Forumlist widget - * - * Sidebar widget to show subscribed friendica forums. If activated - * in the settings, it appears at the notwork 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" - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - * @throws \ImagickException - */ - public static function widget(string $baseurl, int $uid, int $cid = 0) - { - $o = ''; - - //sort by last updated item - $lastitem = true; - - $contacts = self::getList($uid, $lastitem, true, true); - $total = count($contacts); - $visible_forums = 10; - - if (DBA::isResult($contacts)) { - $id = 0; - - $entries = []; - - foreach ($contacts as $contact) { - $selected = (($cid == $contact['id']) ? ' forum-selected' : ''); - - $entry = [ - 'url' => $baseurl . '/' . $contact['id'], - 'external_url' => Contact::magicLinkByContact($contact), - 'name' => $contact['name'], - 'cid' => $contact['id'], - 'selected' => $selected, - 'micro' => DI::baseUrl()->remove(Contact::getMicro($contact)), - 'id' => ++$id, - ]; - $entries[] = $entry; - } - - $tpl = Renderer::getMarkupTemplate('widget_forumlist.tpl'); - - $o .= Renderer::replaceMacros( - $tpl, - [ - '$title' => DI::l10n()->t('Forums'), - '$forums' => $entries, - '$link_desc' => DI::l10n()->t('External link to forum'), - '$total' => $total, - '$visible_forums' => $visible_forums, - '$showless' => DI::l10n()->t('show less'), - '$showmore' => DI::l10n()->t('show more')] - ); - } - - return $o; - } - - /** - * Format forumlist as contact block - * - * This function is used to show the forumlist in - * the advanced profile. - * - * @param int $uid The ID of the User - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - * @throws \ImagickException - */ - public static function profileAdvanced($uid) - { - $profile = intval(Feature::isEnabled($uid, 'forumlist_profile')); - if (!$profile) { - return ''; - } - - $o = ''; - - // place holder in case somebody wants configurability - $show_total = 9999; - - //don't sort by last updated item - $lastitem = false; - - $contacts = self::getList($uid, $lastitem, false, false); - - $total_shown = 0; - foreach ($contacts as $contact) { - $o .= HTML::micropro($contact, true, 'forumlist-profile-advanced'); - $total_shown++; - if ($total_shown == $show_total) { - break; - } - } - - return $o; - } - - /** - * count unread forum items - * - * Count unread items of connected forums and private groups - * - * @return array - * 'id' => contact id - * 'name' => contact/forum name - * 'count' => counted unseen forum items - * @throws \Exception - */ - public static function countUnseenItems() - { - $stmtContacts = DBA::p( - "SELECT `contact`.`id`, `contact`.`name`, COUNT(*) AS `count` FROM `post-user-view` - INNER JOIN `contact` ON `post-user-view`.`contact-id` = `contact`.`id` - WHERE `post-user-view`.`uid` = ? AND `post-user-view`.`visible` AND NOT `post-user-view`.`deleted` AND `post-user-view`.`unseen` - AND `contact`.`network` IN (?, ?) AND `contact`.`contact-type` = ? - AND NOT `contact`.`blocked` AND NOT `contact`.`hidden` - AND NOT `contact`.`pending` AND NOT `contact`.`archive` - AND `contact`.`uid` = ? - GROUP BY `contact`.`id`", - DI::userSession()->getLocalUserId(), Protocol::DFRN, Protocol::ACTIVITYPUB, Contact::TYPE_COMMUNITY, DI::userSession()->getLocalUserId() - ); - - return DBA::toArray($stmtContacts); - } -} diff --git a/src/Content/GroupManager.php b/src/Content/GroupManager.php new file mode 100644 index 0000000000..9377ea32e9 --- /dev/null +++ b/src/Content/GroupManager.php @@ -0,0 +1,231 @@ +. + * + */ + +namespace Friendica\Content; + +use Friendica\Content\Text\HTML; +use Friendica\Core\Protocol; +use Friendica\Core\Renderer; +use Friendica\Database\DBA; +use Friendica\DI; +use Friendica\Model\Contact; + +/** + * This class handles methods related to the group functionality + */ +class GroupManager +{ + /** + * 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 groups which are not hidden + * @param boolean $showprivate Show private groups + * + * @return array + * '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 + * @throws \Exception + */ + public static function getList($uid, $lastitem, $showhidden = true, $showprivate = false) + { + if ($lastitem) { + $params = ['order' => ['last-item' => true]]; + } else { + $params = ['order' => ['name']]; + } + + $condition = [ + 'contact-type' => Contact::TYPE_COMMUNITY, + 'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB], + 'uid' => $uid, + 'blocked' => false, + 'pending' => false, + 'archive' => false, + ]; + + $condition = DBA::mergeConditions($condition, ["`platform` != ?", 'peertube']); + + if (!$showprivate) { + $condition = DBA::mergeConditions($condition, ['manually-approve' => false]); + } + + if (!$showhidden) { + $condition = DBA::mergeConditions($condition, ['hidden' => false]); + } + + $groupList = []; + + $fields = ['id', 'url', 'name', 'micro', 'thumb', 'avatar', 'network', 'uid']; + $contacts = DBA::select('account-user-view', $fields, $condition, $params); + if (!$contacts) { + return $groupList; + } + + while ($contact = DBA::fetch($contacts)) { + $groupList[] = [ + 'url' => $contact['url'], + 'name' => $contact['name'], + 'id' => $contact['id'], + 'micro' => $contact['micro'], + 'thumb' => $contact['thumb'], + ]; + } + DBA::close($contacts); + + return($groupList); + } + + + /** + * Group list widget + * + * 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 group as "selected" + * @return string + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @throws \ImagickException + */ + public static function widget(string $baseurl, int $uid, int $cid = 0) + { + $o = ''; + + //sort by last updated item + $lastitem = true; + + $contacts = self::getList($uid, $lastitem, true, true); + $total = count($contacts); + $visibleGroups = 10; + + if (DBA::isResult($contacts)) { + $id = 0; + + $entries = []; + + foreach ($contacts as $contact) { + $selected = (($cid == $contact['id']) ? ' group-selected' : ''); + + $entry = [ + 'url' => $baseurl . '/' . $contact['id'], + 'external_url' => Contact::magicLinkByContact($contact), + 'name' => $contact['name'], + 'cid' => $contact['id'], + 'selected' => $selected, + 'micro' => DI::baseUrl()->remove(Contact::getMicro($contact)), + 'id' => ++$id, + ]; + $entries[] = $entry; + } + + $tpl = Renderer::getMarkupTemplate('widget/group_list.tpl'); + + $o .= Renderer::replaceMacros( + $tpl, + [ + '$title' => DI::l10n()->t('Groups'), + '$groups' => $entries, + '$link_desc' => DI::l10n()->t('External link to group'), + '$total' => $total, + '$visible_groups' => $visibleGroups, + '$showless' => DI::l10n()->t('show less'), + '$showmore' => DI::l10n()->t('show more')] + ); + } + + return $o; + } + + /** + * Format group list as contact block + * + * This function is used to show the group list in + * the advanced profile. + * + * @param int $uid The ID of the User + * @return string + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @throws \ImagickException + */ + public static function profileAdvanced($uid) + { + $profile = intval(Feature::isEnabled($uid, 'forumlist_profile')); + if (!$profile) { + return ''; + } + + $o = ''; + + // placeholder in case somebody wants configurability + $show_total = 9999; + + //don't sort by last updated item + $lastitem = false; + + $contacts = self::getList($uid, $lastitem, false, false); + + $total_shown = 0; + foreach ($contacts as $contact) { + $o .= HTML::micropro($contact, true, 'grouplist-profile-advanced'); + $total_shown++; + if ($total_shown == $show_total) { + break; + } + } + + return $o; + } + + /** + * count unread group items + * + * Count unread items of connected groups and private groups + * + * @return array + * 'id' => contact id + * 'name' => contact/group name + * 'count' => counted unseen group items + * @throws \Exception + */ + public static function countUnseenItems() + { + $stmtContacts = DBA::p( + "SELECT `contact`.`id`, `contact`.`name`, COUNT(*) AS `count` FROM `post-user-view` + INNER JOIN `contact` ON `post-user-view`.`contact-id` = `contact`.`id` + WHERE `post-user-view`.`uid` = ? AND `post-user-view`.`visible` AND NOT `post-user-view`.`deleted` AND `post-user-view`.`unseen` + AND `contact`.`network` IN (?, ?) AND `contact`.`contact-type` = ? + AND NOT `contact`.`blocked` AND NOT `contact`.`hidden` + AND NOT `contact`.`pending` AND NOT `contact`.`archive` + AND `contact`.`uid` = ? + GROUP BY `contact`.`id`", + DI::userSession()->getLocalUserId(), Protocol::DFRN, Protocol::ACTIVITYPUB, Contact::TYPE_COMMUNITY, DI::userSession()->getLocalUserId() + ); + + return DBA::toArray($stmtContacts); + } +} 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 "
{2}{3}
".format(forum, item.photo, item.name, desc, item.link); + return "
{2}{3}
".format(group, item.photo, item.name, desc, item.link); } else return "
" + item.text + "
"; @@ -258,8 +258,8 @@ function string2bb(element) { template: contact_format, }; - // Autocomplete forums - forums = { + // Autocomplete groups + groups = { match: /(^|\s)(!\!*)([^ \n]+)$/, index: 3, search: function(term, callback) { contact_search(term, callback, backend_url, 'f'); }, @@ -294,7 +294,7 @@ function string2bb(element) { }; this.attr('autocomplete','off'); - this.textcomplete([contacts, forums, smilies, tags], {dropdown: {className:'acpopup'}}); + this.textcomplete([contacts, groups, smilies, tags], {dropdown: {className:'acpopup'}}); this.fixTextcompleteEscape(); return this; @@ -310,7 +310,7 @@ function string2bb(element) { template: contact_format, }; - // Autocomplete forum accounts + // Autocomplete group accounts community = { match: /(^!)([^\n]{2,})$/, index: 2, diff --git a/view/js/main.js b/view/js/main.js index a761f44fc8..3e0f8307a2 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -296,11 +296,11 @@ $(function() { $(".circle-"+gid+" .notify").addClass("show").text(gcount); }); - $(".forum-widget-entry .notify").removeClass("show"); - $(data.forums).each(function(key, forum) { - var fid = forum.id; - var fcount = forum.count; - $(".forum-"+fid+" .notify").addClass("show").text(fcount); + $(".group-widget-entry .notify").removeClass("show"); + $(data.groups).each(function(key, group) { + var fid = group.id; + var fcount = group.count; + $(".group-"+fid+" .notify").addClass("show").text(fcount); }); if (data.notifications.length == 0) { diff --git a/view/templates/widget/group_list.tpl b/view/templates/widget/group_list.tpl new file mode 100644 index 0000000000..fd71a8e9dc --- /dev/null +++ b/view/templates/widget/group_list.tpl @@ -0,0 +1,53 @@ + + + +

{{$title}}

+
+
+ +

{{$title}}

+
+ +
+
+ diff --git a/view/templates/widget_forumlist.tpl b/view/templates/widget_forumlist.tpl deleted file mode 100644 index 7d250a01ac..0000000000 --- a/view/templates/widget_forumlist.tpl +++ /dev/null @@ -1,53 +0,0 @@ - - - -

{{$title}}

-
-
- -

{{$title}}

-
- -
-
- diff --git a/view/theme/duepuntozero/deriv/slackr.css b/view/theme/duepuntozero/deriv/slackr.css index 8f6351bcf7..179b6259ce 100644 --- a/view/theme/duepuntozero/deriv/slackr.css +++ b/view/theme/duepuntozero/deriv/slackr.css @@ -90,7 +90,7 @@ nav #site-location { box-shadow: 4px 4px 3px 0 #444444; } -.forumlist-img { +.group-list-img { border-radius: 3px; -moz-border-radius: 3px; box-shadow: 4px 4px 3px 0 #444444; diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index 8b5ffeea65..802aaf16ff 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -386,7 +386,7 @@ div.wall-item-content-wrapper.shiny { margin-bottom: 10px; } -.widget .selected, .circle-selected, .forum-selected { +.widget .selected, .circle-selected, .group-selected { padding: 3px; -moz-border-radius: 3px; border-radius: 3px; @@ -1859,7 +1859,7 @@ a.mail-list-link { #sidebar-circle-list ul { list-style-type: none; } -.sidebar-circle-li .notify, .forum-widget-entry .notify { +.sidebar-circle-li .notify, .group-widget-entry .notify { display: none; font-size: 9px; border: 1px solid rgb(221, 221, 221); @@ -1867,7 +1867,7 @@ a.mail-list-link { float: right; background-color: #BABDB6; } -.sidebar-circle-li .notify.show, .forum-widget-entry .notify.show { +.sidebar-circle-li .notify.show, .group-widget-entry .notify.show { display: block; } @@ -1881,7 +1881,7 @@ a.mail-list-link { margin-top: 10px; } -#forumlist-sidebar ul { +#group-list-sidebar ul { list-style: none; } diff --git a/view/theme/frio/README.md b/view/theme/frio/README.md index 4bf5300075..db739a0aa9 100644 --- a/view/theme/frio/README.md +++ b/view/theme/frio/README.md @@ -20,7 +20,7 @@ This theme should be the start of a discussion in the friendica community (users What frameworks do we want to use? How should default friendica look like? And how do we want to use friendica? What do we need in the core code (At the present time some stuff this is done with ugly javascript hacks and own php code)? Coding a theme is much work but you will get a really good insight of the limitations of friendica and can start a discussion about doing things differently. -So join the discussion at the friendica forums ;-) +So join the discussion at the friendica groups ;-) If anyone wants to contribute to this theme he/she is welcome to do this. diff --git a/view/theme/frio/css/style.css b/view/theme/frio/css/style.css index 82e47331d6..f9e0e5ee71 100644 --- a/view/theme/frio/css/style.css +++ b/view/theme/frio/css/style.css @@ -367,7 +367,7 @@ btn-eventnav:hover { aside .badge { opacity: 0.7; } -.forum-widget-entry .badge, +.group-widget-entry .badge, .sidebar-circle-li .badge { margin-top: 6px; } @@ -1102,7 +1102,7 @@ aside .widget li a:hover { color: $font_color_darker; } -/* forumlist widget */ +/* group-list widget */ aside > #datebrowse-sidebar li.posted-date-selector-months { margin-bottom: 10px; padding: 0; @@ -1122,7 +1122,7 @@ aside > #datebrowse-sidebar .posted-date-selector-months > ul > li:hover { padding-left: 27px; } -.forumlist-img { +.group-list-img { -webkit-filter: grayscale(100%); filter: grayscale(100%); opacity: 0.5; @@ -1133,7 +1133,7 @@ aside > #datebrowse-sidebar .posted-date-selector-months > ul > li:hover { -ms-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } -#forumlist-sidebar-ul li:hover a > .forumlist-img { +#group-list-sidebar-ul li:hover a > .group-list-img { -webkit-filter: unset; filter: unset; opacity: unset; @@ -2192,7 +2192,7 @@ nav .acpopup { border-left: 3px solid $link_color; padding-left: 17px !important; } -.textcomplete-item a .forum { +.textcomplete-item a .group { color: $link_color; } img.acpopup-img { @@ -2494,7 +2494,7 @@ body.mod-login .navbar #nav-login { margin-top: 20px; margin-bottom: 20px; } -.contact-block-div.forumlist-profile-advanced { +.contact-block-div.group-list-profile-advanced { float: left; } diff --git a/view/theme/frio/js/theme.js b/view/theme/frio/js/theme.js index 3ad81f5c05..ef71b8c1d0 100644 --- a/view/theme/frio/js/theme.js +++ b/view/theme/frio/js/theme.js @@ -41,9 +41,9 @@ $(document).ready(function () { $("#sidebar-circle-ul li a.circle-selected").parent("li").addClass("selected"); } - // add the class "selected" to forums widgets li if li > a does have the class forum-selected - if ($("#forumlist-sidebar-ul li a").hasClass("forum-selected")) { - $("#forumlist-sidebar-ul li a.forum-selected").parent("li").addClass("selected"); + // add the class "selected" to groups widgets li if li > a does have the class group-selected + if ($("#group-list-sidebar-ul li a").hasClass("group-selected")) { + $("#group-list-sidebar-ul li a.group-selected").parent("li").addClass("selected"); } // add the class "active" to tabmenuli if li > a does have the class active @@ -206,7 +206,7 @@ $(document).ready(function () { }); } - // move the forum contact information of the network page into the second navbar + // move the group contact information of the network page into the second navbar if ($(".network-content-wrapper > #viewcontact_wrapper-network").length) { // get the contact-wrapper element and append it to the second nav bar // Note: We need the first() element with this class since at the present time we diff --git a/view/theme/frio/templates/contact/entry.tpl b/view/theme/frio/templates/contact/entry.tpl index a5fc6d773a..75f0d6d9e5 100644 --- a/view/theme/frio/templates/contact/entry.tpl +++ b/view/theme/frio/templates/contact/entry.tpl @@ -91,7 +91,7 @@

{{$contact.name}} {{if $contact.account_type}} ({{$contact.account_type}}){{/if}} - {{if $contact.account_type == 'Forum'}}{{/if}} + {{if $contact.account_type == 'Group'}}{{/if}} {{* @todo this needs some changing in core because $contact.account_type contains a translated string which may not be the same in every language *}}

diff --git a/view/theme/frio/templates/jot-header.tpl b/view/theme/frio/templates/jot-header.tpl index 643c1d94a9..c5c3576c7e 100644 --- a/view/theme/frio/templates/jot-header.tpl +++ b/view/theme/frio/templates/jot-header.tpl @@ -50,9 +50,9 @@ $("#profile-jot-text").focus(enableOnUser); $("#profile-jot-text").click(enableOnUser); - // When clicking on a forum in acl we should remove the profile jot textarea - // default value before inserting the forum mention - $("body").on('click', '#jot-modal .acl-list-item.forum', function(){ + // When clicking on a group in acl we should remove the profile jot textarea + // default value before inserting the group mention + $("body").on('click', '#jot-modal .acl-list-item.group', function(){ jotTextOpenUI(document.getElementById("profile-jot-text")); }); diff --git a/view/theme/frio/templates/wall_thread.tpl b/view/theme/frio/templates/wall_thread.tpl index ecf4261036..3e9d19e02d 100644 --- a/view/theme/frio/templates/wall_thread.tpl +++ b/view/theme/frio/templates/wall_thread.tpl @@ -80,7 +80,7 @@ as the value of $top_child_total (this is done at the end of this file) - {{* The little overlay avatar picture if someone is posting directly to a wall or a forum *}} + {{* The little overlay avatar picture if someone is posting directly to a wall or a group *}} {{if $item.owner_url}}