diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 76009424b7..4ffdb9197c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,5 @@
# How to Contribute
-If you want to contribute to the project, you don’t need to have coding experience. There are a number of tasks listed in the issue tracker with the label “[Junior Jobs](https://github.com/friendica/friendica/issues?q=is%3Aopen+is%3Aissue+label%3A%22Junior+Jobs%22)” we think are good for new contributors. But you are by no means limited to these – if you find a solution to a problem (even a new one) please make a pull request at [github](https://github.com/friendica/friendica) or let us know in the [development forum](https://forum.friendi.ca/profile/developers).
+If you want to contribute to the project, you don’t need to have coding experience. There are a number of tasks listed in the issue tracker with the label “[Junior Jobs](https://github.com/friendica/friendica/issues?q=is%3Aopen+is%3Aissue+label%3A%22Junior+Jobs%22)” we think are good for new contributors. But you are by no means limited to these – if you find a solution to a problem (even a new one) please make a pull request at [github](https://github.com/friendica/friendica) or let us know in the [development group](https://forum.friendi.ca/profile/developers).
Contribution to Friendica is also not limited to coding. Any contribution to the [documentation](https://github.com/friendica/friendica/tree/develop/doc), the [translation](https://app.transifex.com/Friendica/friendica/dashboard/) or advertisement materials is welcome or reporting a problem. You don’t need to deal with Git(Hub) or Transifex if you don’t like to. Just [get in touch](https://forum.friendi.ca/profile/helpers) with us and we will get the materials to the appropriate places.
diff --git a/database.sql b/database.sql
index d61a3eda5a..2528b0145e 100644
--- a/database.sql
+++ b/database.sql
@@ -190,7 +190,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
`confirm` varbinary(383) COMMENT '',
`poco` varbinary(383) COMMENT '',
`writable` boolean NOT NULL DEFAULT '0' COMMENT '',
- `forum` boolean NOT NULL DEFAULT '0' COMMENT 'contact is a forum. Deprecated, use \'contact-type\' = \'community\' and \'manually-approve\' = false instead',
+ `forum` boolean NOT NULL DEFAULT '0' COMMENT 'contact is a group. Deprecated, use \'contact-type\' = \'community\' and \'manually-approve\' = false instead',
`prv` boolean NOT NULL DEFAULT '0' COMMENT 'contact is a private group. Deprecated, use \'contact-type\' = \'community\' and \'manually-approve\' = true instead',
`bdyear` varchar(4) NOT NULL DEFAULT '' COMMENT '',
`site-pubkey` text COMMENT 'Deprecated',
@@ -717,7 +717,7 @@ CREATE TABLE IF NOT EXISTS `group` (
`uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'Owner User id',
`visible` boolean NOT NULL DEFAULT '0' COMMENT '1 indicates the member list is not private',
`deleted` boolean NOT NULL DEFAULT '0' COMMENT '1 indicates the circle has been deleted',
- `cid` int unsigned COMMENT 'Contact id of forum. When this field is filled then the members are synced automatically.',
+ `cid` int unsigned COMMENT 'Contact id of group. When this field is filled then the members are synced automatically.',
`name` varchar(255) NOT NULL DEFAULT '' COMMENT 'human readable name of circle',
PRIMARY KEY(`id`),
INDEX `uid` (`uid`),
diff --git a/doc/Bugs-and-Issues.md b/doc/Bugs-and-Issues.md
index 405604c753..126f6af58e 100644
--- a/doc/Bugs-and-Issues.md
+++ b/doc/Bugs-and-Issues.md
@@ -6,7 +6,7 @@ Bugs and Issues
If your server has a support page, you should report any bugs/issues you encounter there first.
Reporting to your support page before reporting to the developers makes their job easier, as they don't have to deal with bug reports that might not have anything to do with them.
Reducing the workload in this way helps us get new features faster.
-You can also contact the [friendica support forum](https://forum.friendi.ca/profile/helpers) and report your problem there.
+You can also contact the [friendica support group](https://forum.friendi.ca/profile/helpers) and report your problem there.
Bugs are rarely limited to one person, and the chances are somebody from another node has encountered the problem too, and will be able to help you.
If you're a technical user, or your site doesn't have a support page, you'll need to use the [Bug Tracker](https://github.com/friendica/friendica/issues).
diff --git a/doc/Developers-Intro.md b/doc/Developers-Intro.md
index 329219925e..c500b27741 100644
--- a/doc/Developers-Intro.md
+++ b/doc/Developers-Intro.md
@@ -13,14 +13,14 @@ Whether you feel like an expert or like a newbie - join us with your ideas!
## Contact us
-The discussion of Friendica development takes place in the following Friendica forums:
+The discussion of Friendica development takes place in the following Friendica groups:
-* The main [forum for Friendica development](https://forum.friendi.ca/profile/developers)
+* The main [group for Friendica development](https://forum.friendi.ca/profile/developers)
## Help other users
Remember the questions you had when you first tried Friendica?
-A good place to start can be to help new people find their way around Friendica in the [general support forum](https://forum.friendi.ca/profile/helpers).
+A good place to start can be to help new people find their way around Friendica in the [general support group](https://forum.friendi.ca/profile/helpers).
Welcome them, answer their questions, point them to documentation or ping other helpers directly if you can't help but think you know who can.
## Translation
@@ -33,10 +33,10 @@ If you don't want to translate the UI, or it is already done to your satisfactio
Are you good at designing things?
If you have seen Friendica you probably have ideas to improve it, haven't you?
-* If you would like to work with us on enhancing the user interface, please join the [forum for Friendica development](https://forum.friendi.ca/profile/developers).
+* If you would like to work with us on enhancing the user interface, please join the [group for Friendica development](https://forum.friendi.ca/profile/developers).
* Make plans for a better Friendica interface design and share them with us.
* Tell us if you are able to realize your ideas or what kind of help you need.
- We can't promise we have the right skills in the group but we'll try.
+ We can't promise we have the right skills in the group, but we'll try.
* Choose a thing to start with, e.g. work on the icon set of your favorite theme
## Programming
@@ -72,7 +72,7 @@ just place it into `.git/hooks/post-merge` and make it executable.
### Coding standards
-For the sake of consistency between contribution and general code readability, Friendica follows the widespread [PSR-2 coding standards](http://www.php-fig.org/psr/psr-2/) to the exception of a few rules.
+For the sake of consistency between contribution and general code readability, Friendica follows the widespread [PSR-2 coding standards](http://www.php-fig.org/psr/psr-2/) excepted a few rules.
Here's a few primers if you are new to Friendica or to the PSR-2 coding standards:
* Indentation is tabs, period (not PSR-2).
@@ -88,7 +88,7 @@ Here's a few primers if you are new to Friendica or to the PSR-2 coding standard
Don't worry, you don't have to know by heart the PSR-2 coding standards to start contributing to Friendica.
There are a few tools you can use to check or fix your files before you commit.
-For documentation we use the standard of *one sentence per line* for the `md` files in the `/doc` and `/doc/$lng` subdirectories.
+For documentation, we use the standard of *one sentence per line* for the `md` files in the `/doc` and `/doc/$lng` subdirectories.
#### Check with [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer)
@@ -113,7 +113,7 @@ If the command-line tools `diff` and `patch` are unavailable for you, `phpcbf` c
### Code documentation
-If you are interested in having the documentation of the Friendica code outside of the code files, you can use [Doxygen](http://doxygen.org) to generate it.
+If you are interested in having the documentation of the Friendica code outside the code files, you can use [Doxygen](http://doxygen.org) to generate it.
The configuration file for Doxygen is located in the base directory of the project sources.
Run
@@ -126,7 +126,7 @@ If you find missing documentation, don't hesitate to contact us and write it dow
### Issues
-Have a look at our [issue tracker](https://github.com/friendica/friendica) on github!
+Have a look at our [issue tracker](https://github.com/friendica/friendica) on GitHub!
* Try to reproduce a bug that needs more inquiries and write down what you find out.
* If a bug looks fixed, ask the bug reporters for feedback to find out if the bug can be closed.
@@ -143,13 +143,13 @@ If you want to get involved here:
* Look at the first steps that were made (e.g. the clean theme).
Ask us to find out whom to talk to about their experiences.
* Talk to design people if you know any.
-* Let us know about your plans [in the dev forum](https://forum.friendi.ca/profile/developers)
+* Let us know about your plans [in the dev group](https://forum.friendi.ca/profile/developers)
Do not worry about cross-posting.
### Client software
As Friendica is using a [Twitter/GNU Social compatible API](help/api) any of the clients for those platforms should work with Friendica as well.
-Furthermore there are several client projects, especially for use with Friendica.
+Furthermore, there are several client projects, especially for use with Friendica.
If you are interested in improving those clients, please contact the developers of the clients directly.
* Android / LinageOS: **Friendiqa** [src](https://git.friendi.ca/lubuwest/Friendiqa)/[Google Play](https://play.google.com/store/apps/details?id=org.qtproject.friendiqa) developed by [Marco R](https://freunde.ma-nic.de/profile/marco)
diff --git a/doc/FAQ-admin.md b/doc/FAQ-admin.md
index 94cef1627b..e5f4f2a9f3 100644
--- a/doc/FAQ-admin.md
+++ b/doc/FAQ-admin.md
@@ -52,4 +52,4 @@ You can manually execute the structure update from the CLI in the base directory
bin/console dbstructure update
-if there occur any errors, please contact the [support forum](https://forum.friendi.ca/profile/helpers).
+if there occur any errors, please contact the [support group](https://forum.friendi.ca/profile/helpers).
diff --git a/doc/FAQ.md b/doc/FAQ.md
index 2a2af56885..ebb8c041b5 100644
--- a/doc/FAQ.md
+++ b/doc/FAQ.md
@@ -4,14 +4,14 @@ Frequently Asked Questions - FAQ
* [Home](help)
* **[Where I can find help?](help/FAQ#help)**
-* **[Why do I getting warnings about certificates?](help/FAQ#ssl)**
+* **[Why do I get warnings about certificates?](help/FAQ#ssl)**
* **[How can I upload images, files, links, videos and sound files to posts?](help/FAQ#upload)**
* **[Is it possible to have different avatars per profile?](help/FAQ#avatars)**
* **[How can I view Friendica in a certain language?](help/FAQ#language)**
* **[How do blocked, ignored, archived and hidden contacts behave?](help/FAQ#contacts)**
* **[What happens when an account is removed? Is it truly deleted?](help/FAQ#removed)**
* **[Can I subscribe to a hashtag?](help/FAQ#hashtag)**
-* **[How to create a RSS feed of the stream?](help/FAQ#rss)**
+* **[How to create an RSS feed of the stream?](help/FAQ#rss)**
* **[What friendica clients can I use?](help/FAQ#clients)**
@@ -21,7 +21,7 @@ Frequently Asked Questions - FAQ
If this FAQ does not answer your question you can always reach out to the community via the following options:
- * Friendica Support Forum: [@helpers@forum.friendi.ca](https://forum.friendi.ca/~helpers)
+ * Friendica Support Group: [@helpers@forum.friendi.ca](https://forum.friendi.ca/~helpers)
* Community chat rooms (the IRC, Matrix and XMPP rooms are bridged) these public chats are logged [from IRC](https://gnusociarg.nsupdate.info/2021/%23friendica/) and [Matrix](https://view.matrix.org/alias/%23friendi.ca:matrix.org/)
* XMPP: support(at)forum.friendi.ca
* IRC: #friendica at [libera.chat](https://web.libera.chat/?channels=#friendica)
@@ -66,7 +66,7 @@ If this doesn't work, try to add the link by typing: [url=http://example.com]*se
You can also add video and audio files to posts.
However, instead of a direct upload you have to use one of the following methods:
-1. Add the video or audio link of a hoster (Youtube, Vimeo, Soundcloud and anyone else with oembed/opengraph-support). Videos will be shown with a preview image you can click on to start. SoundCloud directly inserts a player to your post.
+1. Add the video or audio link of a hoster (YouTube, Vimeo, Soundcloud and anyone else with oembed/opengraph-support). Videos will be shown with a preview image you can click on to start. SoundCloud directly inserts a player to your post.
2. If you have your own server, you can upload multimedia files via FTP and insert the URL.
@@ -92,7 +92,7 @@ A question mark is required for the separation between url and parameters.
Example:
- https://social.example.com/profile/example
+ https://social.example.com/profile/example
in German:
@@ -107,48 +107,48 @@ When a certain language is forced, the language remains until session is closed.
Direct communication will be blocked.
Blocked contacts are not included in delivery, and their own posts to you are not imported.
-However their conversations with your friends will still be visible in your stream.
+However, their conversations with your friends will still be visible in your stream.
If you remove a contact completely, they can send you another friend request.
Blocked contacts cannot do this. They cannot communicate with you directly, only through friends.
##### Ignored
Ignored contacts are included in delivery and will receive your posts and private messages.
-However we do not import their posts or private messages to you.
-Like blocking you will still see this person's comments to posts made by your friends.
+However, we do not import their posts or private messages to you.
+Like blocking, you will still see this person's comments to posts made by your friends.
An addon called "blockem" can be installed to collapse/hide all posts from a particular person in your stream if you desire complete blocking of an individual, including their conversations with your other friends.
##### Archived
Communication is not possible and will not be attempted.
-However unlike blocking, existing posts this person made before being archived will be visible in your stream.
+However, unlike blocking, existing posts this person made before being archived will be visible in your stream.
##### Hidden
Contact not be displayed in your public friend list.
-However a hidden contact will appear normally in conversations and this may expose their hidden status to anybody who can see the conversation.
+However, a hidden contact will appear normally in conversations and this may expose their hidden status to anybody who can see the conversation.
### What happens when an account is removed?
-If you remove your account, it will be scheduled for permanent deletion in *seven days*.
-As soon as you activate the deletion process you won't be able to login any more.
+If you remove your account, it will be scheduled for permanent deletion in *seven days*.
+As soon as you activate the deletion process you won't be able to log in anymore.
Only the administrator of your node can halt this process prior to permanent deletion.
-After the elapsed time of seven days, all your posts, messages, photos, and personal information stored on your node will be deleted.
-Your node will also issue removal requests to all your contacts; this will also remove your profile from the global directory if you are listed.
+After the elapsed time of seven days, all your posts, messages, photos, and personal information stored on your node will be deleted.
+Your node will also issue removal requests to all your contacts; this will also remove your profile from the global directory if you are listed.
Your username cannot be reissued for future sign-ups for security reasons.
### Can I follow a hashtag?
-Yes. Simply add the hash tag to your saved searches.
+Yes. Simply add the hashtag to your saved searches.
The posts will appear on your network page.
For technical reasons, your answers to such posts won't appear on the "personal" tab in the network page and the whole thread isn't accessible via the API.
-### How to create a RSS feed of the stream?
+### How to create an RSS feed of the stream?
If you want to share your public page via rss you can use one of the following links:
@@ -191,10 +191,10 @@ The available features are client specific and may differ.
#### iOS
-* [Mastodon](https://joinmastodon.org/apps) ([AppStore](https://apps.apple.com/us/app/mastodon-for-iphone/id1571998974))
-* [Stella*](https://www.stella-app.net/) ([AppStore](https://apps.apple.com/us/app/stella-for-mastodon-twitter/id921372048))
-* [Tooot](https://github.com/tooot-app) ([AppStore](https://apps.apple.com/app/id1549772269)
-* [TwidereX](https://github.com/TwidereProject/TwidereX-iOS) ([AppStore](https://apps.apple.com/app/twidere-x/id1530314034))
+* [Mastodon](https://joinmastodon.org/apps) ([App Store](https://apps.apple.com/us/app/mastodon-for-iphone/id1571998974))
+* [Stella*](https://www.stella-app.net/) ([App Store](https://apps.apple.com/us/app/stella-for-mastodon-twitter/id921372048))
+* [Tooot](https://github.com/tooot-app) ([App Store](https://apps.apple.com/app/id1549772269)
+* [TwidereX](https://github.com/TwidereProject/TwidereX-iOS) ([App Store](https://apps.apple.com/app/twidere-x/id1530314034))
#### Linux
@@ -206,7 +206,7 @@ The available features are client specific and may differ.
#### macOS
* [TheDesk](https://thedesk.top/en/) ([GitHub](https://github.com/cutls/TheDesk))
-* [Whalebird](https://whalebird.social/en/desktop/contents) ([AppStore](https://apps.apple.com/de/app/whalebird/id1378283354), [GitHub](https://github.com/h3poteto/whalebird-desktop))
+* [Whalebird](https://whalebird.social/en/desktop/contents) ([App Store](https://apps.apple.com/de/app/whalebird/id1378283354), [GitHub](https://github.com/h3poteto/whalebird-desktop))
#### Windows
diff --git a/doc/Forums.md b/doc/Forums.md
deleted file mode 100644
index 6e768983eb..0000000000
--- a/doc/Forums.md
+++ /dev/null
@@ -1,66 +0,0 @@
-Forums
-=====
-
-* [Home](help)
-
-
-Friendica also lets you create community forums and other types of accounts that can function as discussion forums, celebrity accounts, announcement channels, news reflectors, or organization pages, depending on how you want to interact with others. Management of these pages can be delegated to other accounts, or a parent account can be designated to easily toggle multiple identities.
-
-Every page in Friendica has a nickname and these must all be unique. This applies to all forums, whether they are normal profiles or forum profiles.
-
-Managing Accounts
----
-
-To create a new linked account that can be used as a forum, log in to your normal account and go to Settings > Manage Accounts.
-Here you can register additional accounts with new nicknames that will be linked to your primary account.
-
-You may appoint a delegate to manage your new account (e.g. forum page).
-The Delegates section of Manage Accounts page will provide you with a list of contacts on this instance under "Potential Delegates".
-Selecting one or more persons will give them access to manage your forum.
-They will be able to edit contacts, profiles, and all content for this account/page.
-Please use this facility wisely.
-Delegated managers will not be able to alter basic account settings, such as passwords or page types, or remove the account.
-
-Additionally, this page is also where you can choose to designate an account as a parent user.
-If your primary account is designated as the parent user, you will be able to easily toggle identities and manage your forums or other types of accounts.
-
-Types of Accounts
----
-
-On the new account, visit the Settings > Account page.
-Towards the end of the page is a section for "Advanced account types".
-Typically you would use "Personal Page - Standard" for a normal personal account with manual approval of “friends” and “followers.”
-This is the default selection.
-On this page you can change the type of account if desired.
-
-The other subtypes of a Personal Page are “Soapbox” and “Love-all.”
-A Soapbox account is an announcement channel that automatically approvals follower requests.
-Everything posted by the account will go out to the followers, but there will be no opportunity for interaction.
-This setting would typically be used for announcements or corporate communications.
-“Love-all” automatically approves contacts as friends.
-
-In addition to Personal Page, there are options for Organization Page, News Page, and Community Forum.
-Organization and New Pages automatically approve contact requests as followers.
-
-Community Forum provide the ability for people to become friends/fans of the forum without requiring approval.
-This creates a forum page where all members can freely interact.
-
-Posting to Community forums
----
-
-If you are a member of a community forum, you may post to the forum by including an @-mention in the post mentioning the forum.
-For example @bicycle would send my post to all members of the group "bicycle" in addition to the normal recipients.
-If you mention a forum (you are a member of) in a new posting, the posting will be distributed to all members of the forum, regardless of your privacy settings for the posting.
-Also, if the forum is a public forum, your posting will be public for the all internet users.
-If your post is private you must also explicitly include the group in the post permissions (to allow the forum "contact" to see the post) **and** mention it in a tag (which redistributes the post to the forum members).
-Posting privately to a public forum, will result in your posting being displayed on the forum wall, but not on yours.
-
-Additionally it is possible to address a forum with the exclamation mark.
-In the example above this means that you can address the bicycle forum via !bicycle.
-The difference to the @ is that the post will only be sent to the addressed forum.
-This also means that you shouldn't address multiple forums in a single post in that way since it will only be distributed by one the forums.
-
-You may also post to a community forum by posting a "wall-to-wall" post using secure cross-site authentication.
-
-Comments which are relayed to community forums will be relayed back to the original post creator.
-Mentioning the forum with an @-mention in a comment does not relay the message, as distribution is controlled entirely by the original post creator.
diff --git a/doc/GitHub.md b/doc/GitHub.md
index 5fbc3788ee..24f2e6aa41 100644
--- a/doc/GitHub.md
+++ b/doc/GitHub.md
@@ -3,7 +3,7 @@ Friendica on GitHub
* [Home](help)
-Here is how you can work on the code with us. If you have any questions please write to the Friendica developers' forum.
+Here is how you can work on the code with us. If you have any questions please write to the Friendica developers' group.
Introduction to the workflow with our GitHub repository
-------------------------------------------------------
diff --git a/doc/Groups.md b/doc/Groups.md
new file mode 100644
index 0000000000..3c2e17929d
--- /dev/null
+++ b/doc/Groups.md
@@ -0,0 +1,68 @@
+Groups
+=====
+
+* [Home](help)
+
+
+Friendica also lets you create accounts that can function as discussion groups, celebrity accounts, announcement channels, news reflectors, or organization pages, depending on how you want to interact with others.
+Management of these accounts can be delegated to other accounts, or a parent account can be designated to easily toggle multiple identities.
+
+Every account in Friendica has a nickname and these must all be unique.
+This applies to all accounts, whether they are individual profiles or group profiles.
+
+Managing Accounts
+---
+
+To create a new linked account that can be used as a group, log in to your normal account and go to Settings > Manage Accounts.
+Here you can register additional accounts with new nicknames that will be linked to your primary account.
+
+You may appoint a delegate to manage your new account.
+The Delegates section of Manage Accounts page will provide you with a list of contacts on this instance under "Potential Delegates".
+Selecting one or more persons will give them access to manage your newly created account.
+They will be able to edit contacts, profiles, and all content for this account.
+Please use this facility wisely.
+Delegated managers will not be able to alter basic account settings, such as passwords or account types, or remove the account.
+
+Additionally, this page is also where you can choose to designate an account as a parent user.
+If your primary account is designated as the parent user, you will be able to easily toggle identities and manage your groups or other types of accounts.
+
+Types of Accounts
+---
+
+On the new account, visit the Settings > Account page.
+Towards the end of the page is a section for "Advanced account types".
+Typically, you would use "Personal Page - Standard" for a normal personal account with manual approval of “friends” and “followers.”
+This is the default selection.
+On this page you can change the type of account if desired.
+
+The other subtypes of a Personal Page are “Soapbox” and “Love-all.”
+A Soapbox account is an announcement channel that automatically approvals follower requests.
+Everything posted by the account will go out to the followers, but there will be no opportunity for interaction.
+This setting would typically be used for announcements or corporate communications.
+“Love-all” automatically approves contacts as friends.
+
+In addition to Personal Page, there are options for Organization Page, News Page, and Community Group.
+Organization and New Pages automatically approve contact requests as followers.
+
+Community Group provide the ability for people to join the group without requiring approval.
+This creates a group where all members can freely interact.
+
+Posting to Community groups
+---
+
+If you are a member of a community group, you may post to the group by including an @-mention in the post mentioning the group.
+For example @bicycle would send my post to all members of the group "bicycle" in addition to the normal recipients.
+If you mention a group (you are a member of) in a new posting, the posting will be distributed to all members of the group, regardless of your privacy settings for the posting.
+Also, if the group is public, your posting will be public for the all internet users.
+If your post is private you must also explicitly include the group in the post permissions (to allow the group "contact" to see the post) **and** mention it in a tag (which redistributes the post to the group members).
+Posting privately to a public group, will result in your posting being displayed on the group wall, but not on yours.
+
+Additionally, it is possible to address a group with the exclamation mark.
+In the example above this means that you can address the bicycle group via !bicycle.
+The difference with the @-mention is that the post will only be sent to the addressed group.
+This also means that you shouldn't address multiple groups in a single post in that way since it will only be distributed by one the groups.
+
+You may also post to a community group by posting a "wall-to-wall" post using secure cross-site authentication.
+
+Comments which are relayed to community groups will be relayed back to the original post creator.
+Mentioning the group with an @-mention in a comment does not relay the message, as distribution is controlled entirely by the original post creator.
diff --git a/doc/Home.md b/doc/Home.md
index 760c8bf563..9578e914a0 100644
--- a/doc/Home.md
+++ b/doc/Home.md
@@ -16,7 +16,7 @@ Friendica Documentation and Resources
* [Making Friends](help/Making-Friends)
* [Circles and Privacy](help/Circles-and-Privacy)
* [Tags and Mentions](help/Tags-and-Mentions)
- * [Community Forums](help/Forums)
+ * [Community Groups](help/Groups)
* [Chats](help/Chats)
* Further information
* [Move your account](help/Move-Account)
@@ -67,7 +67,7 @@ Friendica Documentation and Resources
* [Main Website](https://friendi.ca)
* Ways to get Support
- * Friendica Support Forum: [@helpers@forum.friendi.ca](https://forum.friendi.ca/~helpers)
+ * Friendica Support Group: [@helpers@forum.friendi.ca](https://forum.friendi.ca/~helpers)
* [Mailing List Archive](http://mailman.friendi.ca/mailman/listinfo/support-friendi.ca) you can subscribe to the list by sending an email to ``support-request(at)friendi.ca?subject=subscribe``
* Community chat rooms (the IRC, Matrix and XMPP rooms are bridged) these public chats are logged [from IRC](https://gnusociarg.nsupdate.info/2021/%23friendica/) and [Matrix](https://view.matrix.org/alias/%23friendi.ca:matrix.org/)
* XMPP/Jabber MUC: support(at)forum.friendi.ca
diff --git a/doc/Improve-Performance.md b/doc/Improve-Performance.md
index 1d0a859f1f..727fa104be 100644
--- a/doc/Improve-Performance.md
+++ b/doc/Improve-Performance.md
@@ -3,7 +3,7 @@ How to improve the performance of a Friendica site
* [Home](help)
-Feel free to ask in the [Friendica support forum](https://forum.friendi.ca/profile/helpers) if you need some clarification about the following instructions or if you need help in any other way.
+Feel free to ask in the [Friendica support group](https://forum.friendi.ca/profile/helpers) if you need some clarification about the following instructions or if you need help in any other way.
System configuration
--------
@@ -31,7 +31,7 @@ Active the following addons:
### rendertime
-This addon doesn't speed up your system.
+This addon doesn't speed up your system.
It helps to analyze your bottlenecks.
When enabled you see some values at the bottom of every page.
diff --git a/doc/Install.md b/doc/Install.md
index ddffe601c5..bf9dffb357 100644
--- a/doc/Install.md
+++ b/doc/Install.md
@@ -15,7 +15,7 @@ Many will.
But **please** review the [requirements](#Requirements) and confirm these with your hosting provider prior to installation.
## Support
-If you encounter installation issues, please let us know via the [helper](http://forum.friendi.ca/profile/helpers) or the [developer](https://forum.friendi.ca/profile/developers) forum or [file an issue](https://github.com/friendica/friendica/issues).
+If you encounter installation issues, please let us know via the [helper](http://forum.friendi.ca/profile/helpers) or the [developer](https://forum.friendi.ca/profile/developers) group or [file an issue](https://github.com/friendica/friendica/issues).
Please be as clear as you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future.
Due to the large variety of operating systems and PHP platforms in existence we may have only limited ability to debug your PHP installation or acquire any missing modules - but we will do our best to solve any general code issues.
@@ -23,7 +23,7 @@ Due to the large variety of operating systems and PHP platforms in existence we
## Prerequisites
* Choose a domain name or subdomain name for your server. Put some thought into this. While changing it after installation is supported, things still might break.
-* Setup HTTPS on your domain.
+* Setup HTTPS on your domain.
### Requirements
@@ -42,7 +42,7 @@ Due to the large variety of operating systems and PHP platforms in existence we
For alternative server configurations (such as Nginx server and MariaDB database engine), refer to the [Friendica wiki](https://github.com/friendica/friendica/wiki).
-### Optional
+### Optional
* PHP ImageMagick extension (php-imagick) for animated GIF support.
@@ -105,11 +105,11 @@ If you encounter a bug, please let us know.
### Create a database
-Create an empty database and note the access details (hostname, username, password, database name).
+Create an empty database and note the access details (hostname, username, password, database name).
Generate a strong password, then enter mysql with:
mysql
-
+
Then use the following script using the password you just generated:
CREATE DATABASE friendicadb;
@@ -148,7 +148,7 @@ You have the following options to automatically install Friendica:
- using environment variables (f.e. `MYSQL_HOST`)
- using options (f.e. `--dbhost `)
-You can combine environment variables and options, but be aware that options are prioritized over environment variables.
+You can combine environment variables and options, but be aware that options are prioritized over environment variables.
For more information during the installation, you can use this command line option
@@ -157,7 +157,7 @@ For more information during the installation, you can use this command line opti
If you wish to include all optional checks, use `-a` like this statement:
bin/console autoinstall -a
-
+
*If* the automatic installation fails for any reason, check the following:
* Does `config/local.config.php` already exist? If yes, the automatic installation won't start
@@ -171,7 +171,7 @@ You can use a prepared config file like [local-sample.config.php](/config/local-
Navigate to the main Friendica directory and execute the following command:
bin/console autoinstall -f
-
+
#### B.2: Environment variables
There are two types of environment variables.
@@ -194,7 +194,7 @@ if you don't use the option `--savedb` during installation, the DB credentials w
**Friendica settings**
This variables wont be used at normal Friendica runtime.
-Instead, they get saved into `config/local.config.php`.
+Instead, they get saved into `config/local.config.php`.
- `FRIENDICA_URL_PATH` The URL path of Friendica (f.e. '/friendica')
- `FRIENDICA_PHP_PATH` The path of the PHP binary
@@ -238,7 +238,7 @@ Example:
### Verify the "host-meta" page is working
Friendica should respond automatically to important addresses under the */.well-known/* rewrite path.
-One critical URL would look like, for example: https://example.com/.well-known/host-meta
+One critical URL would look like, for example: https://example.com/.well-known/host-meta
It must be visible to the public and must respond with an XML file that is automatically customized to your site.
If that URL is not working, it is possible that some other software is using the /.well-known/ path.
@@ -257,7 +257,7 @@ It may be necessary to chmod the /.well-known/.htaccess file if you were not giv
At this point visit your website again, and register your personal account with the same email as in the `config.admin_email` config value.
Registration errors should all be recoverable automatically.
-If you get any *critical* failure at this point, it generally indicates the database was not installed correctly.
+If you get any *critical* failure at this point, it generally indicates the database was not installed correctly.
You might wish to delete/rename `config/local.config.php` to another name and drop all the database tables so that you can start fresh.
## Post Install Configuration
@@ -295,7 +295,7 @@ Once started, you can check the daemon status using the following command:
cd /path/to/friendica; php bin/daemon.php status
-After a server restart or any other failure, the daemon needs to be restarted.
+After a server restart or any other failure, the daemon needs to be restarted.
This could be achieved by a cronjob.
### (RECOMMENDED) Logging & Log Rotation
@@ -408,7 +408,7 @@ provided by one of our members.
> On my server I use the php protection system Suhosin [http://www.hardened-php.net/suhosin/].
> One of the things it does is to block certain functions like proc_open, as
> configured in `/etc/php5/conf.d/suhosin.ini`:
->
+>
> suhosin.executor.func.blacklist = proc_open, ...
>
> For those sites like Friendica that really need these functions they can be
@@ -418,34 +418,34 @@ provided by one of our members.
> php_admin_value suhosin.executor.func.blacklist none
> php_admin_value suhosin.executor.eval.blacklist none
>
->
+>
> This enables every function for Friendica if accessed via browser, but not for
> the cronjob that is called via php command line. I attempted to enable it for
> cron by using something like:
->
+>
> */10 * * * * cd /var/www/friendica/friendica/ && sudo -u www-data /usr/bin/php \
> -d suhosin.executor.func.blacklist=none \
> -d suhosin.executor.eval.blacklist=none -f bin/worker.php
->
+>
> This worked well for simple test cases, but the friendica-cron still failed
> with a fatal error:
->
+>
> suhosin[22962]: ALERT - function within blacklist called: proc_open()
> (attacker 'REMOTE_ADDR not set', file '/var/www/friendica/friendica/boot.php',
> line 1341)
->
+>
> After a while I noticed, that `bin/worker.php` calls further PHP script via `proc_open`.
> These scripts themselves also use `proc_open` and fail, because they are NOT
> called with `-d suhosin.executor.func.blacklist=none`.
->
+>
> So the simple solution is to put the correct parameters into `config/local.config.php`:
->
+>
> 'config' => [
> //Location of PHP command line processor
> 'php_path' => '/usr/bin/php -d suhosin.executor.func.blacklist=none \
> -d suhosin.executor.eval.blacklist=none',
> ],
->
+>
> This is obvious as soon as you notice that the friendica-cron uses `proc_open`
> to execute PHP scripts that also use `proc_open`, but it took me quite some time to find that out.
> I hope this saves some time for other people using suhosin with function blocklists.
diff --git a/doc/Making-Friends.md b/doc/Making-Friends.md
index 7101df2a87..d928995865 100644
--- a/doc/Making-Friends.md
+++ b/doc/Making-Friends.md
@@ -20,15 +20,15 @@ You'll also see a link to a **Global Directory**.
There are several global directories across the globe that regularly exchange information with each other.
The specific global directory that you see usually depends on where your server is located.
If you click through to the global directory, you will be presented with a list of everybody who choses to be listed across all instances of Friendica.
-You will also see a "Show Community Forums" link, which will direct you to Circles, Forums and Fanpages.
-You connect to people, groups and forums in the same way, except groups and forums will automatically accept your introduction request, whereas a human will approve you manually.
+You will also see a "Show Community Groups" link, which will direct you to Groups.
+You connect to people and groups the same way, public groups will automatically accept your introduction, whereas private groups and some individual users will need to manually approve it.
Connect to other Friendica users
---
Visit their profile.
Just beneath their profile picture will be the word 'Connect' (we're assuming this is an English language profile).
-Click that 'Connect' button and it will take you to a 'Connect' form.
+Click that 'Connect' button, and it will take you to a 'Connect' form.
The form is going to ask you for your Identity Address.
This is necessary so that this person's website can find yours.
@@ -41,7 +41,7 @@ It's easy for people to remember.
You *could* also put in the URL of your "home" page, such as "http://demo.friendica.com/profile/bob" instead of the email-style address.
-When you've submitted the connection page, it will take you back to your own site where you must then login (if necessary) and verify the connection request on *your* site.
+When you've submitted the connection page, it will take you back to your own site where you must then log in (if necessary) and verify the connection request on *your* site.
Once you've done this, the two websites can communicate with each other to complete the process (after your new friend has approved the request).
If you already know somebody's Identity Address, you can enter it in the "connect" box on your "Contacts" page.
@@ -55,14 +55,14 @@ You can also use your Identity Address or other people's Identity Addresses to b
Currently, Friendica supports connections with people on diaspora*, Red, Hubzilla, GNU Social, StatusNet, Mastodon, Pleroma, socialhome, and ganggo platforms.
If you know (for instance) "alice" on gnusocial.net (a GNU Social site) you could put alice@gnusocial.net into your Contact page and become friends across networks.
-Likewise you can put in the URL to Alice's gnusocial.net page, if you wish.
+Likewise, you can put in the URL to Alice's gnusocial.net page, if you wish.
Note: Some versions of GNU Social software may require the full URL to your profile and may not work with the identity address.
People on these networks can also initiate contact with you, if they know your contact details.
### Other social media
If you server provides this functionality, you can also connect with people one
-Twitter or important feeds from Tumblr, Wordpress, and many more.
+Twitter or important feeds from Tumblr, WordPress, and many more.
To connect, enter their contact details in the "connect" box on your "Contacts" page.
diff --git a/doc/Quick-Start-andfinally.md b/doc/Quick-Start-andfinally.md
index 6151439cee..7ea3f5dc72 100644
--- a/doc/Quick-Start-andfinally.md
+++ b/doc/Quick-Start-andfinally.md
@@ -4,7 +4,7 @@ Here are some more things to help get you started:
**Groups**
-- Friendica Support - problems? This is the place to ask.
+- Friendica Support - problems? This is the place to ask.
**Documentation**
diff --git a/doc/Quick-Start-groupsandpages.md b/doc/Quick-Start-groupsandpages.md
index f64f3afcbe..c9a27c6f1c 100644
--- a/doc/Quick-Start-groupsandpages.md
+++ b/doc/Quick-Start-groupsandpages.md
@@ -1,9 +1,9 @@
This is the global directory.
If you get lost, you can click this link to bring yourself back here.
-On this page, you'll find a collection of groups, forums and celebrity pages.
+On this page, you'll find a collection of groups.
Groups are not real people.
-Connecting to them is similar to "liking" something on Facebook, or signing up for a new forum.
+Connecting to them is similar to "liking" something on Facebook, or signing up for a new group.
You don't have to feel awkward about introducing yourself to a new person, because they're not people!
When you connect to a group, all messages to that group will start appearing in your network tab.
@@ -15,6 +15,6 @@ Remember the link at the top of this page will bring you back here.
Once you've added some groups, move on to the next section.
-
+
diff --git a/doc/Tags-and-Mentions.md b/doc/Tags-and-Mentions.md
index 8d5ba9d8d1..8424b026cb 100644
--- a/doc/Tags-and-Mentions.md
+++ b/doc/Tags-and-Mentions.md
@@ -23,19 +23,19 @@ You can tag a person on a different network or one that is **not in your social
Unless their system blocks unsolicited "mentions", the person tagged will likely receive a "Mention" post/activity or become a direct participant in the conversation in the case of public posts.
Friendica blocks incoming “mentions” from people with no relationship to you.
-The exception is an ongoing conversation started from a contact of both you and the 3rd person or a conversation in a forum where you are a member of.
+The exception is an ongoing conversation started from a contact of both you and the 3rd person or a conversation in a group where you are a member of.
This is a spam prevention measure.
Remote mentions are delivered using the OStatus protocol.
This protocol is used by Friendica and GNU Social and several other systems like Mastodon, but is not currently implemented in Diaspora.
As the OStatus protocol allows this Friendica user can be @-mentioned by users from platforms using this protocol in conversations if the "Enable OStatus support" is activated on the Friendica node.
-These @-mentions wont be blocked, even if there is no relationship between the sender and the receiver of the message.
+These @-mentions won't be blocked, even if there is no relationship between the sender and the receiver of the message.
-Friendica makes no distinction between people and forums for the purpose of tagging.
-You can use @-mentions for forums like for other accounts to tag the forum.
-If you want to post something exclusively to a forum (e.g. the support forum) please use the bang-notation instead of the @tag.
-So !helpers will be an exclusive posting to the support forum if you are connected with the forum.
-If you select a forum from the ACL a !-mention will be added automatically to your posting.
+Friendica makes no distinction between people and groups for the purpose of tagging.
+You can use @-mentions for groups like for other accounts to tag the group.
+If you want to post something exclusively to a group (e.g. the support group) please use the !-mention instead of the @-mention.
+So !helpers will be an exclusive posting to the support group if you are connected with the group.
+If you select a group from the ACL a !-mention will be added automatically to your posting.
If you sort your contacts into circles, you cannot @-mention these circles.
But you can select the circle in the access control when creating a new posting, to allow (or disallow) a certain circle of people to see the posting.
@@ -43,7 +43,7 @@ See [Circles and Privacy](help/Circles-and-Privacy) for more details about group
**Topical Tags**
-Topical tags are indicated by preceding the tag name with the # character.
+Topical tags are indicated by preceding the tag name with the # character.
This will create a link in the post to a generalised site search for the term provided.
For example, #cars will provide a search link for all posts mentioning 'cars' on your site.
Topical tags are generally a minimum of three characters in length.
diff --git a/doc/database/db_contact.md b/doc/database/db_contact.md
index f8999054fd..496210067a 100644
--- a/doc/database/db_contact.md
+++ b/doc/database/db_contact.md
@@ -81,7 +81,7 @@ Fields
| confirm | | varbinary(383) | YES | | NULL | |
| poco | | varbinary(383) | YES | | NULL | |
| writable | | boolean | NO | | 0 | |
-| forum | contact is a forum. Deprecated, use 'contact-type' = 'community' and 'manually-approve' = false instead | boolean | NO | | 0 | |
+| forum | contact is a group. Deprecated, use 'contact-type' = 'community' and 'manually-approve' = false instead | boolean | NO | | 0 | |
| prv | contact is a private group. Deprecated, use 'contact-type' = 'community' and 'manually-approve' = true instead | boolean | NO | | 0 | |
| bdyear | | varchar(4) | NO | | | |
| site-pubkey | Deprecated | text | YES | | NULL | |
diff --git a/doc/database/db_group.md b/doc/database/db_group.md
index e94cf53ebf..f717247ad3 100644
--- a/doc/database/db_group.md
+++ b/doc/database/db_group.md
@@ -12,7 +12,7 @@ Fields
| uid | Owner User id | mediumint unsigned | NO | | 0 | |
| visible | 1 indicates the member list is not private | boolean | NO | | 0 | |
| deleted | 1 indicates the circle has been deleted | boolean | NO | | 0 | |
-| cid | Contact id of forum. When this field is filled then the members are synced automatically. | int unsigned | YES | | NULL | |
+| cid | Contact id of group. When this field is filled then the members are synced automatically. | int unsigned | YES | | NULL | |
| name | human readable name of circle | varchar(255) | NO | | | |
Indexes
diff --git a/doc/de/FAQ.md b/doc/de/FAQ.md
index 6a4e030b01..57d5569c15 100644
--- a/doc/de/FAQ.md
+++ b/doc/de/FAQ.md
@@ -108,7 +108,7 @@ Zwischen der URL und dem Parameter muss ein Fragezeichen als Trennzeichen verwen
Ein Beispiel:
- https://social.example.com/profile/example
+ https://social.example.com/profile/example
auf Deutsch:
diff --git a/doc/de/Forums.md b/doc/de/Groups.md
similarity index 98%
rename from doc/de/Forums.md
rename to doc/de/Groups.md
index 5da5adb25f..52455cfa7f 100644
--- a/doc/de/Forums.md
+++ b/doc/de/Groups.md
@@ -60,4 +60,4 @@ Dies bedeutet auch, dass es nicht sinnvoll ist, mehrere Gruppen per ! in einem B
Du kannst außerdem via "Wall zu Wall" einen Beitrag auf der Community-Seite bzw. in der Community-Gruppe erstellen.
Kommentare, die Du an eine Community-Gruppe schickst, werden dem Originalbeitrag hinzugefügt.
-Eine weitere Gruppe mit dem @-Erwähnung anzusprechen, leitet den Beitrag nicht an dieses weiter, da die Verteilung der Kommentare komplett vom Originalbeitrag bestimmt wird.
\ No newline at end of file
+Eine weitere Gruppe mit dem @-Erwähnung anzusprechen, leitet den Beitrag nicht an dieses weiter, da die Verteilung der Kommentare komplett vom Originalbeitrag bestimmt wird.
diff --git a/doc/de/Home.md b/doc/de/Home.md
index 8f6cfd92e2..91976bb282 100644
--- a/doc/de/Home.md
+++ b/doc/de/Home.md
@@ -16,7 +16,7 @@ Friendica - Dokumentation und Ressourcen
* [Freunde finden](help/Making-Friends)
* [Circles und Privatsphäre](help/Circles-and-Privacy)
* [Tags und Erwähnungen](help/Tags-and-Mentions)
- * [Community-Gruppen](help/Forums)
+ * [Community-Gruppen](help/Groups)
* [Chats](help/Chats)
* Weiterführende Informationen
* [Account umziehen](help/Move-Account)
diff --git a/doc/de/Install.md b/doc/de/Install.md
index b4cade3565..3040230131 100644
--- a/doc/de/Install.md
+++ b/doc/de/Install.md
@@ -182,7 +182,7 @@ Sie werden stattdessen direkt in `config/local.config.php` gespeichert.
Gehe im Anschluss in den Friendica-Hauptordner und führe den Kommandozeilen Befehl aus:
bin/console autoinstall [--savedb]
-
+
#### B.3: Optionen
Alle Optionen werden in `config/local.config.php` gespeichert und überschreiben etwaige, zugehörige Umgebungsvariablen.
diff --git a/doc/de/Making-Friends.md b/doc/de/Making-Friends.md
index e777ac9810..041365103c 100644
--- a/doc/de/Making-Friends.md
+++ b/doc/de/Making-Friends.md
@@ -3,21 +3,21 @@ Freunde finden
* [Zur Startseite der Hilfe](help)
-Freundschaft kann in Friendica viele verschiedene Bedeutungen annehmen.
-Aber lasst es uns einfach halten, du willst einfach mit jemandem befreundet sein.
+Freundschaft kann in Friendica viele verschiedene Bedeutungen annehmen.
+Aber lasst es uns einfach halten, du willst einfach mit jemandem befreundet sein.
Wie machst du das?
-Schau dir das Verzeichnis an.
-Das Verzeichnis ist in zwei Teile aufgeteilt.
-Wenn du auf den "Verzeichnis"-Button klickst, wirst du zunächst alle Mitglieder deines Servers sehen, die sich dazu entschlossen haben, angezeigt zu werden.
-Außerdem siehst du dort einen Link zum globalen Verzeichnis.
-Wenn du dich durch das globale Verzeichnis klickst, siehst du alle Nutzer weltweit auf allen Servern, die sich entschlossen haben, im Verzeichnis zu erscheinen.
-Du wirst außerdem den Link "Show Community Groups" sehen, welcher dich zu Gruppen und Fan-Seiten führt.
+Schau dir das Verzeichnis an.
+Das Verzeichnis ist in zwei Teile aufgeteilt.
+Wenn du auf den "Verzeichnis"-Button klickst, wirst du zunächst alle Mitglieder deines Servers sehen, die sich dazu entschlossen haben, angezeigt zu werden.
+Außerdem siehst du dort einen Link zum globalen Verzeichnis.
+Wenn du dich durch das globale Verzeichnis klickst, siehst du alle Nutzer weltweit auf allen Servern, die sich entschlossen haben, im Verzeichnis zu erscheinen.
+Du wirst außerdem den Link "Show Community Groups" sehen, welcher dich zu Gruppen und Fan-Seiten führt.
Du verbindest dich mit Personen und Gruppen auf die gleiche Art, wobei Gruppen deine Anfrage automatisch annehmen, wohingegen ein Mensch dich erst manuell bestätigen muss.
*Mit anderen Friendica-Nutzern verbinden*
-Besuche ihr Profil.
+Besuche ihr Profil.
Direkt unter dem Profilfoto ist das Wort "Verbinden" (bzw. "Connect" in einem englischsprachigem Profil).
Klicke drauf und du gelangst zur "Verbinden"-Seite.
Dort wirst du nach deiner Identitätsadresse gefragt.
diff --git a/doc/de/Quick-Start-groupsandpages.md b/doc/de/Quick-Start-groupsandpages.md
index 8c9d0664c0..d4ea55d3d0 100644
--- a/doc/de/Quick-Start-groupsandpages.md
+++ b/doc/de/Quick-Start-groupsandpages.md
@@ -1,4 +1,4 @@
-Gruppen und Seiten
+Gruppen und Seiten
==========
* [Zur Startseite der Hilfe](help)
@@ -21,6 +21,6 @@ Solltest Du beim Stöbern durch die vielen Gruppen nicht wieder hierher zurück
Wenn Du einige Gruppen hinzugefügt hast, gehe weiter zum nächsten Schritt.
-
+
diff --git a/doc/de/groupsandpages.md b/doc/de/groupsandpages.md
deleted file mode 100644
index a65dab906b..0000000000
--- a/doc/de/groupsandpages.md
+++ /dev/null
@@ -1,26 +0,0 @@
-Gruppen und Seiten
-==========
-
-* [Zur Startseite der Hilfe](help)
-
-Hier siehst du das globale Verzeichnis.
-Wenn du dich mal verirrt hast, kannst du diesen Link klicken und wieder hierher kommen.
-
-Auf dieser Seite findest du eine Zusammenstellung von Gruppen, Foren und bekannten Seiten.
-Gruppen sind keine realen Personen.
-Sich mit diesen zu verbinden ist, als wenn man jemanden auf Facebook "liked" ("gefällt mir") oder wenn man sich in einem Forum anmeldet.
-Habe keine Sorge, falls du dich unbehaglich fühlst, wenn du dich einer neuen Person vorstellen sollst, da es sich nicht um Personen handelt.
-
-Wenn du dich mit einer Gruppe verbindest, erscheinen alle Nachrichten der Gruppe in deinem "Netzwerk"-Tab.
-Du kannst diese Beiträge kommentieren oder selbst in der Gruppe schreiben, ohne eine der Gruppenmitglieder persönlich hinzuzufügen.
-Das ist ein großartiger Weg, dynamisch neue Freunde zu gewinnen.
-Du findest Personen, die du magst, anstatt Fremde hinzuzufügen.
-Suche dir einfach eine Gruppe und füge sie so hinzu, wie du auch normale Freunde hinzufügst.
-Es gibt eine Menge Gruppen und möglicherweise findest du nicht wieder zu dieser Seite zurück.
-In diesem Fall nutze einfach den Link oben auf dieser Seite.
-
-Wenn du einige Gruppen hinzugefügt hast, gehe weiter zum nächsten Schritt.
-
-
-
-
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/dbstructure.config.php b/static/dbstructure.config.php
index 8ff6604121..92ed8c8df1 100644
--- a/static/dbstructure.config.php
+++ b/static/dbstructure.config.php
@@ -250,7 +250,7 @@ return [
"confirm" => ["type" => "varbinary(383)", "comment" => ""],
"poco" => ["type" => "varbinary(383)", "comment" => ""],
"writable" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
- "forum" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "contact is a forum. Deprecated, use 'contact-type' = 'community' and 'manually-approve' = false instead"],
+ "forum" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "contact is a group. Deprecated, use 'contact-type' = 'community' and 'manually-approve' = false instead"],
"prv" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "contact is a private group. Deprecated, use 'contact-type' = 'community' and 'manually-approve' = true instead"],
"bdyear" => ["type" => "varchar(4)", "not null" => "1", "default" => "", "comment" => ""],
// Deprecated fields that aren't in use anymore
@@ -767,7 +767,7 @@ return [
"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "foreign" => ["user" => "uid"], "comment" => "Owner User id"],
"visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 indicates the member list is not private"],
"deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 indicates the circle has been deleted"],
- "cid" => ["type" => "int unsigned", "foreign" => ["contact" => "id"], "comment" => "Contact id of forum. When this field is filled then the members are synced automatically."],
+ "cid" => ["type" => "int unsigned", "foreign" => ["contact" => "id"], "comment" => "Contact id of group. When this field is filled then the members are synced automatically."],
"name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "human readable name of circle"],
],
"indexes" => [
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 "".format(forum, item.photo, item.name, desc, item.link);
+ return "".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/lang/C/messages.po b/view/lang/C/messages.po
index 6aaf40f3af..df736290ff 100644
--- a/view/lang/C/messages.po
+++ b/view/lang/C/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 2023.09-dev\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-30 08:56+0000\n"
+"POT-Creation-Date: 2023-06-01 19:00-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -1513,12 +1513,12 @@ msgid "Post Composition Features"
msgstr ""
#: src/Content/Feature.php:105
-msgid "Auto-mention Forums"
+msgid "Auto-mention Groups"
msgstr ""
#: src/Content/Feature.php:105
msgid ""
-"Add/remove mention when a forum page is selected/deselected in ACL window."
+"Add/remove mention when a group page is selected/deselected in ACL window."
msgstr ""
#: src/Content/Feature.php:106
@@ -1559,11 +1559,11 @@ msgid "Advanced Profile Settings"
msgstr ""
#: src/Content/Feature.php:119
-msgid "List Forums"
+msgid "List Groups"
msgstr ""
#: src/Content/Feature.php:119
-msgid "Show visitors public community forums at the Advanced Profile Page"
+msgid "Show visitors public groups at the Advanced Profile Page"
msgstr ""
#: src/Content/Feature.php:120
@@ -1596,20 +1596,20 @@ msgid ""
"Contact birthday events are private to you."
msgstr ""
-#: src/Content/ForumManager.php:151 src/Content/Nav.php:276
+#: src/Content/GroupManager.php:151 src/Content/Nav.php:276
#: src/Content/Text/HTML.php:877 src/Content/Widget.php:533
-msgid "Forums"
+msgid "Groups"
msgstr ""
-#: src/Content/ForumManager.php:153
-msgid "External link to forum"
+#: src/Content/GroupManager.php:153
+msgid "External link to group"
msgstr ""
-#: src/Content/ForumManager.php:156 src/Content/Widget.php:512
+#: src/Content/GroupManager.php:156 src/Content/Widget.php:512
msgid "show less"
msgstr ""
-#: src/Content/ForumManager.php:157 src/Content/Widget.php:414
+#: src/Content/GroupManager.php:157 src/Content/Widget.php:414
#: src/Content/Widget.php:513
msgid "show more"
msgstr ""
@@ -1712,7 +1712,7 @@ msgid "Clear notifications"
msgstr ""
#: src/Content/Nav.php:126 src/Content/Text/HTML.php:864
-msgid "@name, !forum, #tags, content"
+msgid "@name, !group, #tags, content"
msgstr ""
#: src/Content/Nav.php:220 src/Module/Security/Login.php:157
@@ -3033,7 +3033,7 @@ msgid "Organisation"
msgstr ""
#: src/Model/Contact.php:1655
-msgid "Forum"
+msgid "Group"
msgstr ""
#: src/Model/Contact.php:2951
@@ -5555,7 +5555,7 @@ msgstr ""
#: src/Module/BaseSearch.php:75
#, php-format
-msgid "Forum Search - %s"
+msgid "Group Search - %s"
msgstr ""
#: src/Module/BaseSearch.php:121 src/Module/Contact/MatchInterests.php:139
@@ -7366,7 +7366,7 @@ msgid "Soapbox Page"
msgstr ""
#: src/Module/Moderation/BaseUsers.php:121 src/Module/Settings/Account.php:505
-msgid "Public Forum"
+msgid "Public Group"
msgstr ""
#: src/Module/Moderation/BaseUsers.php:122 src/Module/Settings/Account.php:512
@@ -7374,7 +7374,7 @@ msgid "Automatic Friend Page"
msgstr ""
#: src/Module/Moderation/BaseUsers.php:123
-msgid "Private Forum"
+msgid "Private Group"
msgstr ""
#: src/Module/Moderation/BaseUsers.php:126 src/Module/Settings/Account.php:463
@@ -7390,7 +7390,7 @@ msgid "News Page"
msgstr ""
#: src/Module/Moderation/BaseUsers.php:129 src/Module/Settings/Account.php:484
-msgid "Community Forum"
+msgid "Community Group"
msgstr ""
#: src/Module/Moderation/BaseUsers.php:130
@@ -7812,7 +7812,7 @@ msgid "Automatic Follower Account"
msgstr ""
#: src/Module/Moderation/Summary.php:55
-msgid "Public Forum Account"
+msgid "Public Group Account"
msgstr ""
#: src/Module/Moderation/Summary.php:56
@@ -7824,7 +7824,7 @@ msgid "Blog Account"
msgstr ""
#: src/Module/Moderation/Summary.php:58
-msgid "Private Forum Account"
+msgid "Private Group Account"
msgstr ""
#: src/Module/Moderation/Summary.php:78
@@ -8450,7 +8450,7 @@ msgid "Description:"
msgstr ""
#: src/Module/Profile/Profile.php:261
-msgid "Forums:"
+msgid "Groups:"
msgstr ""
#: src/Module/Profile/Profile.php:273
@@ -9017,7 +9017,7 @@ msgid "Personal Page Subtypes"
msgstr ""
#: src/Module/Settings/Account.php:455
-msgid "Community Forum Subtypes"
+msgid "Community Group Subtypes"
msgstr ""
#: src/Module/Settings/Account.php:465
@@ -9063,7 +9063,7 @@ msgid ""
msgstr ""
#: src/Module/Settings/Account.php:519
-msgid "Private Forum [Experimental]"
+msgid "Private Group [Experimental]"
msgstr ""
#: src/Module/Settings/Account.php:521
@@ -11874,7 +11874,7 @@ msgid "Textareas font size"
msgstr ""
#: view/theme/vier/config.php:91
-msgid "Comma separated list of helper forums"
+msgid "Comma separated list of helper groups"
msgstr ""
#: view/theme/vier/config.php:131
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 @@
+
+
+
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 @@
-
-
-
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 @@
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}}