Merge remote-tracking branch 'upstream/2023.03-rc' into npf2

This commit is contained in:
Michael 2023-03-27 06:42:24 +00:00
commit c4c80ed3cc
266 changed files with 691 additions and 643 deletions

View File

@ -13,7 +13,7 @@ assignees: ''
### Describe the feature you'd like
<!-- A clear and concise description of waht you want to happen. -->
<!-- A clear and concise description of what you want to happen. -->
### Describe alternatives you've considered

View File

@ -714,13 +714,13 @@ Version 2020.07 (2020-07-12)
blockbot:
The list of accepted user agents was enhanced [annando]
Diaspora*:
Enhanced conntector settings [MrPetovan]
Enhanced connector settings [MrPetovan]
PHP Mailer SMTP:
Updated phpmailer version [dependabot]
showmore_dyn:
New addon to collapse long post depending on their actual height [wiwie]
twitter:
Enhaceed the handling of mobile twitter URLs [annando]
Enhanced the handling of mobile twitter URLs [annando]
Enhanced the handling of quoted tweets [MrPetovan]
added HTML error code handling [MrPetovan]
various:
@ -958,7 +958,7 @@ Version 2019.09 (2019-09-29)
Version 2019.06 (2019-06-23)
Friendica Core:
Update to the tranlation (CS, DE, EN-GB, EN-US, ET, FR, IT, PL, PT-BR, SV) [translation teams]
Update to the translation (CS, DE, EN-GB, EN-US, ET, FR, IT, PL, PT-BR, SV) [translation teams]
Update to the documentation [nupplaphil, realkinetix, MrPetovan]
Update to the themes (frio, vier) [BinkaDroid, MrPetovan, tobiasd]
Enhancements to the API [annando, MrPetovan]
@ -978,7 +978,7 @@ Version 2019.06 (2019-06-23)
Fixed an issue with the File to Folder feature [MrPetovan]
Fixed an issue with the legacy storage engine [fabrixxm]
Fixed an issue with the theme and addon path items [MrPetovan]
Fixed an issue occuring when the BasePath was not set [tobiasd]
Fixed an issue occurring when the BasePath was not set [tobiasd]
Fixed an issue with additionally opened Sessions [MrPetovan]
Fixed an issue with legacy loglevel mapping [nupplaphil]
Fixed contact suggestions [annando]
@ -1004,7 +1004,7 @@ Version 2019.06 (2019-06-23)
Remove support for defunct F-Droid Friendica app [MrPetovan]
Friendica Addons:
Update to the tranlation (ET, SV, ZH_CN) [translation teams]
Update to the translation (ET, SV, ZH_CN) [translation teams]
botdetection:
Added a new addon for preventing access by bots [nupplaphil, annando]
buffer:
@ -1042,7 +1042,7 @@ Version 2019.03 (2019-03-22)
Update to the themes (duepuntozero, frio, smoothy, quattro, vier) [lxiter, MrPetovan, nupplaphil, rabuzarus, tobiasd]
Enhancements to the API [jasonscheng]
Enhancements to the Vagrant development VM [JeroenED]
Enhancements to the storage of gender, sexual preferences and maritial status [JeroenED]
Enhancements to the storage of gender, sexual preferences and marital status [JeroenED]
Enhancements to the wording of notifications [MrPetovan]
Enhancements to the display of contacts in the profile [MrPetovan]
Enhancements to the handling of local links [lxiter]
@ -1071,7 +1071,7 @@ Version 2019.03 (2019-03-22)
Fixed an issue with sending out notification mails to the admin [nupplaphil]
Fixed an the issue, that the API was ignoring the globalsilence setting [nupplaphil]
Fixed issues with the autolinker of URLs in postings [MrPetovan]
Fixed an issue resulting in multible emails after successful updates of the database [nupplaphil]
Fixed an issue resulting in multiple emails after successful updates of the database [nupplaphil]
Fixed a timeout issue during detection process of the remote profile [annando]
Fixed an issue with postings from blocked servers [annando, MrPetovan]
Fixed an issue with the paging of stored folders [MrPetovan]
@ -1103,7 +1103,7 @@ Version 2019.03 (2019-03-22)
forumdirectory:
Fixed a theming issue with frio [rabuzarus]
js_upload:
Fixed a missing extionsion index [nupplaphil]
Fixed a missing extension index [nupplaphil]
mailstream:
Fixed a curl issue [MrPetovan]
piwik:
@ -1323,7 +1323,7 @@ Version 2018.09 (2018-09-23)
added addons:
mastodoncustomemojis [MrPetovan]
deprecated addons:
notimeline, retriver, remote_permissions, widgets
notimeline, retriever, remote_permissions, widgets
Directory:
Enhancements of the health summary [andyhee]
@ -1349,7 +1349,7 @@ Version 2018.05 (2018-06-01)
Enhancements to the relay system [annando]
Enhancements to the handling of URL that contain unicode characters [annando]
Enhancements to the Vagrant VM configuration [fabrixxm, tobiasd]
Enhancementa to the Babel module [MrPetovan]
Enhancements to the Babel module [MrPetovan]
Enhancements to the display of the [code] elements [MrPetovan]
Enhancements to the federation (OStatus, diaspora) [annando]
Enhancements to the PHP7.2 compatibility [Alkarex, MrPetovan, Quix0r]
@ -1378,7 +1378,7 @@ Version 2018.05 (2018-06-01)
Fixed a bug that made edited mentions and hashtags plaintext [annando]
Fixed a bug that caused the /display page to receive constandly new updates [annando]
Fixed wrong version of a dependency preventing the usage of PHP 5.6 [MrPetovan]
Fixed a bug in OpenID authentification [Quix0r]
Fixed a bug in OpenID authentication [Quix0r]
Fixed a bug in the item deletion [annando]
Fixed a bug that prevented public comments from being distributed [annando]
Fixed a bug that caused empty profile pictures for public contacts [annando]
@ -1477,7 +1477,7 @@ Version 3.6 (2018-03-23)
Enhancements to the probing of pump.io profiles [annando]
Enhancements to the handling of BBCode tags [MrPetovan]
Enhancements to the OEmbed handling [MrPetovan]
Fixed a bug that triggered the display of activities on the cummunity page [annando]
Fixed a bug that triggered the display of activities on the community page [annando]
Fixed a bug with personal notes [annando]
Fixed a display issue of long postings when using the showmore option [annando]
Fixed a bug that caused Twidere to crash on reload [annando]
@ -1485,7 +1485,7 @@ Version 3.6 (2018-03-23)
Fixed a bug in URL completion for feed fragments [annando]
Fixed a bug in the notification system about new registrations [annando]
Fixed the display of dislikes [annando]
Fixed the display of orphans childs in threads [MrPetovan]
Fixed the display of orphan children in threads [MrPetovan]
Fixed some SQL problems [annando]
Fixed the CLI config script [tobiasd]
Fixed the forum selection on the network display [annando]
@ -1539,7 +1539,7 @@ Version 3.6 (2018-03-23)
all bridges don't relay postings anymore that are posted to a public forum [annando]
DAV addon marked unsupported [tobiasd]
communityhome addon marked unsupported [MrPetovan]
yourls addon makrked unsupported [MrPetovan]
yourls addon marked unsupported [MrPetovan]
Current Weather: fixing a problem with the weathermap link [zeroadam]
NSFW added config examples, reworked the description, now ignores the CW from Mastodon [andyhee, annando, rebeka-catalina]
Twitter support 280 chars limit [annando]
@ -1734,7 +1734,7 @@ Version 3.5.1 (2017-03-12)
Improvements to the documentation [Hypolite, tobiasd, rabuzarus, beardyunixer, eelcomaljaars]
Improvements to the BBCode / Markdown conversation [Hypolite]
Improvements to the OStatus protocol implementation [annando]
Improvements to the installation wizzard [tobiasd]
Improvements to the installation wizard [tobiasd]
Improvements to the Diaspora connectivity [annando, Hypolite]
Work on PHP7 compatibility [ddorian1]
Code cleanup [Hypolite, Quix0r]
@ -1796,11 +1796,11 @@ Version 3.5 (2016-09-13)
Improvements on the themes (quattro, vier, frost) [rabuzarus, fabrixxm, stieben, annando, Quix0r, tobiasd]
Improvements to the ACL dialog [fabrixxm, rabuzarus]
Improvements to the database structure and optimization of queries [annando]
Improvements to the UI (contacts, hotkeys, remember me, ARIA, code hightlighting) [rabuzarus, annando, tobiasd]
Improvements to the UI (contacts, hotkeys, remember me, ARIA, code highlighting) [rabuzarus, annando, tobiasd]
Improvements to the background process (poller, worker) [annando]
Improvements to the admin panel [tobiasd, annando, fabrixxm]
Improvements to the performance [annando]
Improvements to the installation wizzard (language selection, RINO version, check required PHP modules, default theme is now vier) [tobiasd]
Improvements to the installation wizard (language selection, RINO version, check required PHP modules, default theme is now vier) [tobiasd]
Improvements to the relocation of nodes and accounts [annando]
Improvements to the DDoS detection [annando]
Improvements to the calendar/events module [annando, rabuzarus]
@ -1825,7 +1825,7 @@ Version 3.5 (2016-09-13)
GNU Social Connector [annando]
LDAP [Olivier Mehani]
smileybutton [rabuzarus]
retriver [mexon]
retriever [mexon]
mailstream [mexon]
forumdirectory [tobiasd]
NEW notifyall (port from Hubzilla) [rabuzarus, tobiasd]
@ -1880,7 +1880,7 @@ Version 3.4.3 (2015-12-22)
'Reload active themes' in theme admin page (fabrixxm)
Install routine checks for ImageMagick and GIF support (fabrixxm)
Install routine checks for availability of "mcrypt_create_iv()" function, needed for RINO2 (fabrixxm)
Only suported themes are shown in admin page (annando)
Only supported themes are shown in admin page (annando)
Optimized SQL queries (annando)
System perform an optimize pass on tables in cron, with maximum table size and minimum fragmentation level settings (annando)
New access keys in profile and contact pages (rabuzarus, annando)
@ -1895,9 +1895,9 @@ Version 3.4.3 (2015-12-22)
New hook 'template_vars' (fabrixxm)
$baseurl variable is passed to all templates by default (fabrixxm)
OStatus delivery code is moved in new function (annando)
Doxygen config file and initial documetation of code (rabuzarus)
Doxygen config file and initial documentation of code (rabuzarus)
Full rewrite of util/php2po.php (fabrixxm)
Bugfixs:
Bugfixes:
Remote self works again (annando)
Fix feeds mistakenly recognized as OStatus (issue #1914) (annando)
Report invalid feeds to user (issue #1913) (annando)
@ -1912,8 +1912,8 @@ Version 3.4.3 (2015-12-22)
Fix rapid repeated requests to GNUSocial instance (issue #2038) (annando)
Fix install routine css when mod_rewrite doesn't works (issue #2071) (fabrixxm)
Fix code to be compliant with minimum required PHP version (issue #2066) (fabrixxm, rabuzarus)
Fix feedback after succesfull registration (issue #2060) (annando)
Fix mention completition popup with TinyMCE (issue #1920) (fabrixxm)
Fix feedback after successful registration (issue #2060) (annando)
Fix mention completion popup with TinyMCE (issue #1920) (fabrixxm)
Fix photo cache and proxy when installed in subfolder (ddorian1)
Fix bbcode conversion of the about text for the profile (issue #1607) (annando)
@ -1923,7 +1923,7 @@ Version 3.4.2 (2015-09-29)
Updates to the documentation (tobiasd, silke, annando)
Updates to the translations (tobiasd & translation teams)
Updates to themes frost-mobile, vier, duepuntozero, quattro (annando, tobiasd)
Enancements of the communications via OStatus and Diaspora protocols (annando)
Enhancements of the communications via OStatus and Diaspora protocols (annando)
Option to automatically follow OStatus contacts was moved from addon to the core (annando)
Add tool to import OStatus contacts from an old account (annando)
SALMON slaps with OStatus were reworked (annando)
@ -1940,7 +1940,7 @@ Version 3.4.2 (2015-09-29)
The global directory is queried in the background to update local DB and improve similar searches in the future. (annando)
By communication over the Diaspora protocol, red#matrix sources are now correctly identified, hubzilla is detected (annando)
Adopt limitation of usage of "-" in username to avoid conflicts with GNU Social and Diaspora (annando)
The [url] tag now also suppots ftp, mailto, gopher links (annando)
The [url] tag now also supports ftp, mailto, gopher links (annando)
An "inspect queue" module was added to the admin panel (tobiasd)
Fix some missing SQL data escapes (fabrixxm)
Improved the accessibility of the web UI for better screen reader compatibility (annando)
@ -1968,7 +1968,7 @@ Version 3.4.1 (2015-07-06)
Implement server-to-server encryption (RINO) using php-encryption library as "RINO 2", deprecate "RINO 1" (issue #1655) (fabrixxm)
Fix connection with Diaspora "freelove" account (issue #1572) (annando)
Various SQL speedups (annando)
Port of Javascript DatePicker input from RedMatrix (rabuzarus)
Port of JavaScript DatePicker input from RedMatrix (rabuzarus)
Port of RedMatrix archive widget (rabuzarus)
Load profile owner settings for theme on profile page (rabuzarus)
Move HTML code from php into templates (rabuzarus)
@ -1981,7 +1981,7 @@ Version 3.4.1 (2015-07-06)
use correct contact when automatically add @-replies
add attachment links as enclosures
send salmon notifications to every mentioned person
better thread completition
better thread completion
support for bookmarks
support for events and questions
link to items using GUID
@ -1992,7 +1992,7 @@ Version 3.4.1 (2015-07-06)
Add fake fields to API response for better Twitter API compatibility (annando)
Fix search in local directory (issue #1657) (annando)
Improve OEmbed (issue #1640) (annando)
Fix double html encodig in site administration page for sitename and register text (issue #1628) (annando)
Fix double html encoding in site administration page for sitename and register text (issue #1628) (annando)
Fix remote subscription from GNU Social (annando)
Fix "{0}" in notifications (issue #1642) (annando)
Fix desktop notification (fabrixxm)
@ -2001,7 +2001,7 @@ Version 3.4.1 (2015-07-06)
Fix emoticons alt text (tobias)
Improve threaded display in Vier theme (annando)
Use field templates in photo edit form (fabrixxm)
Alllow deletion of any user but yourself (issue #1625) (fabrixxm)
Allow deletion of any user but yourself (issue #1625) (fabrixxm)
Install wizard load htconfig template from template/ folder, remove localized htconfig templates (fabrixxm)
Add contact detail to non-js contact drop confirm dialog (issue #1629) (fabrixxm)
Return geo coord in API (annando)
@ -2020,7 +2020,7 @@ Version 3.4 (2015-04-05)
Optionally, "like" and "dislike" activities don't update thread timestamp (annando)
Updated markdown libraries (annando)
Updated jQuery (StefOfficiel)
Cache zrl verification requests to prevent DSoS (issue #1453) (annando)
Cache zrl verification requests to prevent DDoS (issue #1453) (annando)
"Verify SSL" options affects also VERIFYHOST (annando)
Better handling of hashtags (annando)
Updated translations (translation teams, tobias)
@ -2058,7 +2058,7 @@ Version 3.3.3 (2015-02-24)
Share-it button support (annando)
More reliable reshare from Diaspora (annando)
Load more images via proxy (annando)
util/typo.php uses "php -l" insead of "eval()" to validate code (fabrixxm)
util/typo.php uses "php -l" instead of "eval()" to validate code (fabrixxm)
Use $_SERVER array in cli script instead of $argv/$argc (issue #1218) (annando)
Updated vagrant setup script (silke)
API: support to star/unstar items (fabrixxm)
@ -2079,7 +2079,7 @@ Version 3.3.3 (2015-02-24)
Version 3.3.2 (2014-12-26)
Set default value for all not-null fields (fixes SQL warinigs) (annando)
Set default value for all not-null fields (fixes SQL warnings) (annando)
Fix item filters in network page (issue #1222) (fabrixxm)
Remove reference to an ex Friendica hub from documentation (beardyunixer, tobiasd)
API throttling (annando)
@ -2125,7 +2125,7 @@ Version 3.3 (2014-10-06)
Interaction
ignoring of threads
for selected contects one can now get notifications when they post something, useful e.g. for forums
for selected contacts one can now get notifications when they post something, useful e.g. for forums
After a new friendica contact is added, the user is directed to the contact page of the new contact. (Instead of the remote profile)
many improvement on all connectors, new app.net connector
the algorithm for shortening postings when posting to limited platforms was improved
@ -2137,7 +2137,7 @@ Version 3.3 (2014-10-06)
updated the following libraries: smarty 3.1.19, fullcalendar 1.6.4, jquery 1.11, jgrowl 1.3.0
added modernizer 2.8.3, better browser support
updates to the DB structure for better performance
preperations to use PDO in a later release
preparations to use PDO in a later release
new notification system
web interface translations updated, addon translations now also possible separately from the main UI and done for CS, IT, RO, DE
vagrant support added for developers
@ -2175,7 +2175,7 @@ Version 3.2
small fixed
edit profile photo link
better caching of pictures
threadening for outgoing emails
threading for outgoing emails
mail import
oembed thumbnails
SN subscriptions & more SN like behaviour if snautofollow addon is used
@ -2195,7 +2195,7 @@ Version 3.2
improving the install.php script
addons now can be members only
item object now contains the "edited" information left for the theme designers to show this info in a pretty way
improvments to the user-import from exported account files
improvements to the user-import from exported account files
It's now possible to authenticate an ejabberd server against friendica.
bugtracker moved to github
improvements to MySQL queries

View File

@ -17,18 +17,18 @@ Have a look at the [installation documentation](doc/Install.md) for further info
### Friendica Screenshots
| ![Frio theme in mobile browser](images/screenshots/friendica-frio-mobile-profle-1.png?raw=true "Frio theme in mobile browser") ![Frio theme in mobile browser](images/screenshots/friendica-frio-mobile-profle-2.png?raw=true "Frio theme in mobile browser")
| ![Frio theme in mobile browser](images/screenshots/friendica-frio-mobile-profile-1.png?raw=true "Frio theme in mobile browser") ![Frio theme in mobile browser](images/screenshots/friendica-frio-mobile-profile-2.png?raw=true "Frio theme in mobile browser")
|:--:|
|*Frio theme, mobile browser. Timeline and composer view.*|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-green-profle-1.png?raw=true "Frio theme in desktop browser")
|![Frio theme in desktop browser](images/screenshots/friendica-frio-green-profile-1.png?raw=true "Frio theme in desktop browser")
|*Frio theme, desktop browser. Timeline view, contact info popped up, control menu open.*|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-green-profle-2.png?raw=true "Frio theme in desktop browser")
|![Frio theme in desktop browser](images/screenshots/friendica-frio-green-profile-2.png?raw=true "Frio theme in desktop browser")
|*Frio theme, desktop browser. Menu open for controlling individual posts.*|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profle-3.png?raw=true "Frio theme in desktop browser")
|![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profile-3.png?raw=true "Frio theme in desktop browser")
|*Frio theme, desktop browser. Profile view, notification menu open.*|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profle-2.png?raw=true "Frio theme in desktop browser")
|![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profile-2.png?raw=true "Frio theme in desktop browser")
|*Number of new posts, in total and by group.*|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profle-1.png?raw=true "Frio theme in desktop browser")
|![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profile-1.png?raw=true "Frio theme in desktop browser")
|*Calender with popup of event.*|
|![Frio theme default colour in standard browser on tablet](images/screenshots/friendica-frio-default-profile-1.png?raw=true "Frio theme default colour in standard browser on tablet")
|*Notifications menu and private messages counter, standard browser on tablet.*|

View File

@ -3,7 +3,7 @@
dir=$(cd "${0%[/\\]*}" > /dev/null; pwd)
if [[ -d /proc/cygdrive && $(which php) == $(readlink -n /proc/cygdrive)/* ]]; then
# We are in Cgywin using Windows php, so the path must be translated
# We are in Cygwin using Windows php, so the path must be translated
dir=$(cygpath -m "$dir");
fi

View File

@ -46,7 +46,7 @@ function show_syntax() {
echo -e "\t\"testfile\" is the name of a test file, for example lib/template.php" >&2
echo -e "\nDatabase environment variables:\n" >&2
echo -e "\t\"MYSQL_HOST\" Mysql Hostname (Default: localhost)" >&2
echo -e "\t\"MYSQL_USDRNAME\" Mysql Username (Default: friendica)" >&2
echo -e "\t\"MYSQL_USERNAME\" Mysql Username (Default: friendica)" >&2
echo -e "\t\"MYSQL_DATABASE\" Mysql Database (Default: test)" >&2
echo -e "\nOther environment variables:\n" >&2
echo -e "\t\"TEST_SELECTION\" test a specific group of tests, can be one of: $TESTS" >&2
@ -65,7 +65,7 @@ else
exit 3
fi
echo "Installing depdendencies"
echo "Installing dependencies"
${PHP} "$COMPOSER" install
PHPUNIT="${BASEDIR}/vendor/bin/phpunit"

View File

@ -71,7 +71,7 @@ CREATE TABLE IF NOT EXISTS `user` (
`verified` boolean NOT NULL DEFAULT '0' COMMENT 'user is verified through email',
`blocked` boolean NOT NULL DEFAULT '0' COMMENT '1 for user is blocked',
`blockwall` boolean NOT NULL DEFAULT '0' COMMENT 'Prohibit contacts to post to the profile page of the user',
`hidewall` boolean NOT NULL DEFAULT '0' COMMENT 'Hide profile details from unkown viewers',
`hidewall` boolean NOT NULL DEFAULT '0' COMMENT 'Hide profile details from unknown viewers',
`blocktags` boolean NOT NULL DEFAULT '0' COMMENT 'Prohibit contacts to tag the post of this user',
`unkmail` boolean NOT NULL DEFAULT '0' COMMENT 'Permit unknown people to send private mails to this user',
`cntunkmail` int unsigned NOT NULL DEFAULT 10 COMMENT '',
@ -608,7 +608,7 @@ CREATE TABLE IF NOT EXISTS `diaspora-contact` (
`gsid` int unsigned COMMENT 'Global Server ID',
`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
`updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
`interacting_count` int unsigned DEFAULT 0 COMMENT 'Number of contacts this contact interactes with',
`interacting_count` int unsigned DEFAULT 0 COMMENT 'Number of contacts this contact interacts with',
`interacted_count` int unsigned DEFAULT 0 COMMENT 'Number of contacts that interacted with this contact',
`post_count` int unsigned DEFAULT 0 COMMENT 'Number of posts and comments',
PRIMARY KEY(`uri-id`),
@ -880,7 +880,7 @@ CREATE TABLE IF NOT EXISTS `mail` (
`guid` varbinary(255) NOT NULL DEFAULT '' COMMENT 'A unique identifier for this private message',
`from-name` varchar(255) NOT NULL DEFAULT '' COMMENT 'name of the sender',
`from-photo` varbinary(383) NOT NULL DEFAULT '' COMMENT 'contact photo link of the sender',
`from-url` varbinary(383) NOT NULL DEFAULT '' COMMENT 'profile linke of the sender',
`from-url` varbinary(383) NOT NULL DEFAULT '' COMMENT 'profile link of the sender',
`contact-id` varbinary(255) COMMENT 'contact.id',
`author-id` int unsigned COMMENT 'Link to the contact table with uid=0 of the author of the mail',
`convid` int unsigned COMMENT 'conv.id',

View File

@ -163,7 +163,7 @@ Add or remove an activity from an item.
* `attendmaybe`
To remove an activity, prepend the verb with "un", eg. "unlike" or "undislike"
Attend verbs disable eachother: that means that if "attendyes" was added to an item, adding "attendno" remove previous "attendyes".
Attend verbs disable each other: that means that if "attendyes" was added to an item, adding "attendno" remove previous "attendyes".
Attend verbs should be used only with event-related items (there is no check at the moment).
#### Parameters
@ -305,7 +305,7 @@ Returns [Private Messages](help/API-Entities#Private+message) matching the provi
#### Parameters
* `searchstring`: string for which the API call should search as '%searchstring%' in field 'body' of all messages of the authenticated user (caption ignored)
* `getText` (optional): `plain`|`html` If ommited, the title is prepended to the plaintext body in the `text` attribute of the private message objects.
* `getText` (optional): `plain`|`html` If omitted, the title is prepended to the plaintext body in the `text` attribute of the private message objects.
* `getUserObjects` (optional): `true`|`false` If `false`, the `sender` and `recipient` attributes of the private message object are absent.
#### Return values
@ -646,7 +646,7 @@ On error:
* 403 FORBIDDEN: if not authenticated
* 400 BADREQUEST: "no albumname specified", "album not available"
* 500 INTERNALSERVERERROR: "problem with deleting item occured", "unknown error - deleting from database failed"
* 500 INTERNALSERVERERROR: "problem with deleting item occurred", "unknown error - deleting from database failed"
### POST api/friendica/photoalbum/update
@ -839,7 +839,8 @@ A Mastodon [Status Entity](https://docs.joinmastodon.org/entities/Status/)
"poll": null,
"friendica": {
"title": "",
"dislikes_count": 1
"dislikes_count": 1,
"disliked": true
}
}
```
@ -886,7 +887,7 @@ Removes the dislike mark (if it exists) on this status for this user
A Mastodon [Status Entity](https://docs.joinmastodon.org/entities/Status/)
#### Example:
`https://<server_name>/api/friendica/statuses/341/dislike`
`https://<server_name>/api/friendica/statuses/341/undislike`
```json
{
@ -913,7 +914,8 @@ A Mastodon [Status Entity](https://docs.joinmastodon.org/entities/Status/)
"poll": null,
"friendica": {
"title": "",
"dislikes_count": 0
"dislikes_count": 0,
"disliked": false
}
}
```

View File

@ -68,6 +68,7 @@ Extensions to the [Mastodon Status Entities](https://docs.joinmastodon.org/entit
* `delivery_queue_done`: Total number of remote servers that have successfully been federated to so far.
* `delivery_queue_failed`: Total number of remote servers that have we failed to federate to so far.
* `dislikes_count`: The number of dislikes that a status has accumulated according to the server.
* `disliked`: Whether the API user disliked the status.
Example:
```json
@ -264,7 +265,7 @@ Example:
## Currently unimplemented endpoints
These emdpoints are planned to be implemented somewhere in the future.
These endpoints are planned to be implemented somewhere in the future.
- [`POST /api/v1/accounts/:id/remove_from_followers`](https://github.com/mastodon/mastodon/pull/16864)
- [`GET /api/v1/accounts/familiar_followers`](https://github.com/mastodon/mastodon/pull/17700)

View File

@ -10,7 +10,7 @@ Not all Friendica sites allow open registration.
If registration is allowed, you will see a "Register" link immediately below the login prompt on the site's home page.
Following this link will take you to the site registration page.
The strength of our network is that lots of different sites are all completely compatible with each other.
If the site you're visting doesn't allow registration, or you think you might prefer another one, there is a [list of public servers here](https://dir.friendica.social/servers) and hopefully you will find one that meets your needs.
If the site you're visiting doesn't allow registration, or you think you might prefer another one, there is a [list of public servers here](https://dir.friendica.social/servers) and hopefully you will find one that meets your needs.
If you'd like to have your own server, you can do that too.
Visit [the Friendica website](http://friendi.ca/) to download the code with setup instructions.

View File

@ -100,7 +100,7 @@ See doxygen documentation of `IWritableStorage` interface for details about each
## Register a storage backend class
Each backend must be registered in the system when the plugin is installed, to be aviable.
Each backend must be registered in the system when the plugin is installed, to be available.
`DI::facStorage()->register(string $class)` is used to register the backend class.
@ -140,18 +140,18 @@ abstract class StorageTest
There are two intended types of exceptions for storages
### `ReferenceStorageExecption`
### `ReferenceStorageException`
This storage exception should be used in case the caller tries to use an invalid references.
This could happen in case the caller tries to delete or update an unknown reference.
The implementation of the storage backend must not ignore invalid references.
Avoid throwing the common `StorageExecption` instead of the `ReferenceStorageException` at this particular situation!
Avoid throwing the common `StorageException` instead of the `ReferenceStorageException` at this particular situation!
### `StorageException`
This is the common exception in case unexpected errors happen using the storage backend.
If there's a predecessor to this exception (e.g. you caught an exception and are throwing this execption), you should add the predecessor for transparency reasons.
If there's a predecessor to this exception (e.g. you caught an exception and are throwing this exception), you should add the predecessor for transparency reasons.
Example:
@ -320,7 +320,7 @@ The file is `addon/samplestorage/samplestorage.php`
<?php
/**
* Name: Sample Storage Addon
* Description: A sample addon which implements an unusefull storage backend
* Description: A sample addon which implements a very limited storage backend
* Version: 1.0.0
* Author: Alice <https://alice.social/~alice>
*/

View File

@ -44,7 +44,7 @@ Uninstalling an addon automatically unregisters any hook it registered, but if y
The install and uninstall functions will be called (i.e. re-installed) if the addon changes after installation.
Therefore your uninstall should not destroy data and install should consider that data may already exist.
Future extensions may provide for "setup" amd "remove".
Future extensions may provide for "setup" and "remove".
## PHP addon hooks
@ -124,7 +124,7 @@ function <addon>_footer()
### JavaScript hooks
The main Friendica script provides hooks via events dispatched on the `document` property.
In your Javascript file included as described above, add your event listener like this:
In your JavaScript file included as described above, add your event listener like this:
```js
document.addEventListener(name, callback);
@ -133,7 +133,7 @@ document.addEventListener(name, callback);
- *name* is the name of the hook and corresponds to a known Friendica JavaScript hook.
- *callback* is a JavaScript anonymous function to execute.
More info about Javascript event listeners: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
More info about JavaScript event listeners: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
#### Current JavaScript hooks
@ -264,7 +264,7 @@ $data = [
##### With multiple submit buttons
```php
$data = [
'addon' => 'catavar',
'addon' => 'catavatar',
'title' => DI::l10n()->t('Cat Avatar Settings'),
'html' => $html,
'submit' => [
@ -402,7 +402,7 @@ Called prior to output of personal XRD file.
### home_content
Called prior to output home page content, shown to unlogged users.
`$b` is the HTML sring of section region.
`$b` is the HTML string of section region.
### contact_edit
Called when editing contact details on an individual from the Contacts page.
@ -425,7 +425,7 @@ Called after HTML content functions have completed.
### footer
Called after HTML content functions have completed.
Deferred Javascript files should be registered using this hook.
Deferred JavaScript files should be registered using this hook.
`$b` is (string) HTML of footer div/element.
### avatar_lookup

View File

@ -39,7 +39,7 @@ You can use several servers to create an account:
### 1. Basics
At first you have to get the current version. You can either pull it from [Github](https://github.com) like so:
At first you have to get the current version. You can either pull it from [GitHub](https://github.com) like so:
$> cd /var/www/virtual/YOURSPACE/html/addon; git pull

View File

@ -20,7 +20,7 @@ Composer requires PHP CLI and the following examples assume it's available syste
#### From Archive
If you just unpacked a Friendica release archive, you don't have to use Commposer at all, all the required libraries are already bundled in the archive.
If you just unpacked a Friendica release archive, you don't have to use Composer at all, all the required libraries are already bundled in the archive.
#### Installing with Git

View File

@ -250,7 +250,7 @@ key = value
<tr>
<td><pre>
[config]
register_policty = REGISTER_CLOSED
register_policy = REGISTER_CLOSED
</pre></td>
<td><pre>
'config' => [

View File

@ -47,7 +47,7 @@ function doSomething(\Friendica\Contact\Introductions\Collection\Introductions $
}
/** @var $intros \Friendica\Contact\Introductions\Collection\Introductions */
$intros = \Friendica\DI::intro()->selecForUser(Session::getLocalUser());
$intros = \Friendica\DI::intro()->selectForUser(Session::getLocalUser());
doSomething($intros);
```

View File

@ -95,7 +95,7 @@ Please remove all the `require_once` mentions of the former file, as they will p
## Miscellaneous tips
When you are done with moving the class, please run `php bin/console.php typo` from the Friendica base directory to check for obvious mistakes.
Howevever, this tool isn't bullet-proof, and a staging install of Friendica is recommended to test your class move without impairing your production server if you host one.
However, this tool isn't bullet-proof, and a staging install of Friendica is recommended to test your class move without impairing your production server if you host one.
Most of Friendica processes are run in the background, so make sure to turn on your debug log to check for errors that wouldn't show up while simply browsing Friendica.

View File

@ -92,7 +92,7 @@ For documentation we use the standard of *one sentence per line* for the `md` fi
#### Check with [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer)
This tool checks your files against a variety of coding standards, including PSR-2, and ouputs a report of all the standard violations.
This tool checks your files against a variety of coding standards, including PSR-2, and outputs a report of all the standard violations.
You can simply install it through PEAR: `pear install PHP_CodeSniffer`
Once it is installed and available in your PATH, here's the command to run before committing your work:
@ -109,7 +109,7 @@ Here's the command to automatically fix the files you created/modified:
$> phpcbf --standard=ruleset.xml <file or directory>
If the command-line tools `diff` and `patch` are unavailabe for you, `phpcbf` can use slightly slower PHP equivalents by using the `--no-patch` argument.
If the command-line tools `diff` and `patch` are unavailable for you, `phpcbf` can use slightly slower PHP equivalents by using the `--no-patch` argument.
### Code documentation

View File

@ -42,7 +42,7 @@ Friendica Documentation and Resources
* [Get started](help/Developers-Intro)
* Set up development environment
* [Help on Github](help/Github)
* [Help on GitHub](help/GitHub)
* [Help on Vagrant](help/Vagrant)
* [Bugs and Issues](help/Bugs-and-Issues)
* Code structure
@ -69,7 +69,7 @@ Friendica Documentation and Resources
* Ways to get Support
* Friendica Support Forum: [@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 bridget) these public chats are logged [from IRC](https://gnusociarg.nsupdate.info/2021/%23friendica/) and [Matrix](https://view.matrix.org/alias/%23friendi.ca:matrix.org/)
* 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
* IRC: #friendica at [libera.chat](https://web.libera.chat/?channels=#friendica)
* Matrix: [#friendi.ca](https://matrix.to/#/#friendi.ca:matrix.org) or [#friendica-en](https://matrix.to/#/#friendica-en:matrix.org) at matrix.org

View File

@ -81,6 +81,6 @@ Please refer to external documentation for a more detailed explanation how to se
### Database
There are scripts like [tuning-primer.sh](http://www.day32.com/MySQL/) and [mysqltuner.pl](http://mysqltuner.pl) that analyze your database server and give hints on values that could be changed.
There are scripts like [tuning-primer.sh](https://github.com/BMDan/tuning-primer.sh) and [mysqltuner.pl](https://github.com/major/MySQLTuner-perl/blob/master/mysqltuner.pl) that analyze your database server and give hints on values that could be changed.
Please enable the slow query log. This helps to find performance problems.

View File

@ -51,10 +51,13 @@ For alternative server configurations (such as Nginx server and MariaDB database
### Alternative Installation Methods
This guide will walk you through the manual installation process of Friendica.
If this is nothing for you, you might be interested in
If this is nothing for you, you might be interested in the following:
* the [Friendica Docker image](https://github.com/friendica/docker) or
* how to [install Friendica with YunoHost](https://github.com/YunoHost-Apps/friendica_ynh).
* the [Friendica Docker image](https://github.com/friendica/docker)
* how to [install Friendica with YunoHost](https://github.com/YunoHost-Apps/friendica_ynh)
* [Tutorial: Creating a Friendica Server with Ubuntu 22.04](https://nequalsonelifestyle.com/2022/07/30/creating-friendica-server-ubuntu/)
* [Setting Up Friendica Daemon as a Systemd Service Tutorial](https://nequalsonelifestyle.com/2022/08/04/setting-up-friendica-daemon-systemd-service/)
* [Setting up Friendica on Unraid](https://www.jenovarain.com/2023/03/setting-up-friendica-on-unraid/) (NAS)
### Get Friendica
@ -228,7 +231,7 @@ Copy `.htaccess-dist` to `.htaccess` (be careful under Windows) to have working
Example:
cp .htacces-dist .htaccess
cp .htaccess-dist .htaccess
*Note*: Do **not** rename the `.htaccess-dist` file as it is tracked by GIT and renaming will cause a dirty working directory.
@ -350,7 +353,7 @@ Often this will need to be resolved with your hosting provider or (if self-hoste
First check your file permissions.
Your website and all contents must generally be world-readable.
Ensure that mod-rewite is installed and working, and that your `.htaccess` file
Ensure that mod-rewrite is installed and working, and that your `.htaccess` file
is being used. To verify the latter, create a file `test.out` containing the
word "test" in the top directory of Friendica, make it world readable and point
your web browser to
@ -463,9 +466,11 @@ After that, restart mysql and try again.
### Your worker never or rarely runs
Friendica is coded to always play nice. It checks whether the host machine is idle enough and if it _seems_ to be overloaded, it intermittently refuses to process the worker queue.
Friendica is coded to always play nice.
It checks whether the host machine is idle enough and if it _seems_ to be overloaded, it intermittently refuses to process the worker queue.
Such checks originate from the days of single-user single-core machines and involves thresholds that you should adjust based on the number of exclusive CPU cores you have. See this issue for more information:
Such checks originate from the days of single-user single-core machines and involves thresholds that you should adjust based on the number of exclusive CPU cores you have.
See this issue for more information:
* https://github.com/friendica/friendica/issues/10131
@ -482,28 +487,40 @@ You tried to upload an image up to 100kB and it failed.
You may not have the ownership or file mode set correctly if you are using the file system storage backend.
Change the backend to database. If this solves it, that is what needs to be fixed.
Change the backend to database.
If this solves it, that is what needs to be fixed.
Verify in your PHP ini:
* `file_uploads`: should be `1`
* `upload_tmp_dir`: should be writable (falls back to system default temp) and not blocked by `open_basedir`
### Error uploading large files
You may find `413 Request Entity Too Large` or `500 Internal Error` in the network inspector of the browser if the file is too large, for example if it is a video.
First try to upload a very small file, up to 100kB. If that succeeds, you will need to increase limits at multiple places, including on any web proxy that you are using.
First try to upload a very small file, up to 100kB.
If that succeeds, you will need to increase limits at multiple places, including on any web proxy that you are using.
Which one applies to you depends on your installation.
In your PHP ini:
* `upload_max_filesize`: defaults to 2MB
* `post_max_size`: defaults to 8MB, must be greater than `upload_max_filesize`
* `memory_limit`: defaults to 128MB, must be greater than `post_max_size`
* `max_input_time`: time limit of an upload, defaults to -1, meaning it uses `max_execution_time` instead
* `max_execution_time`: defaults to 30 seconds, should be enough if you also set `max_input_time`
You should verify whether you changed them in the _right file_ by checking the web interface at the end of the overview on the `Admin` panel.
For Apache2:
In your Apache2 config:
* `LimitRequestBody`: defaults to unlimited
* `FcgidMaxRequestLen`: defaults to 128kB
* `SSLRenegBufferSize`: defaults to 128kB, only if your site uses TLS and perhaps only when using `SSLVerifyClient` or `SSLVerifyDepth`
* Remove `LoadModule reqtimeout_module modules / mod_reqtimeout.so` or adjust `RequestReadTimeout`: defaults to 20 seconds and >= 500 byte/second
For nginx:
In your nginx config:
* `client_max_body_size`: defaults to 1MB
@ -511,7 +528,28 @@ If you are using the database backend for storage, increase this in your SQL con
* `max_allowed_packet`: defaults to 32MB
If you use the ModSecurity WAF:
In your ModSecurity WAF config:
* `SecRequestBodyLimit`: defaults to 12MB
* `SecRequestBodyNoFilesLimit`: defaults to 128kB, should not apply to Friendica
In the end, you will need to restart all services that you have changed configuration for.
If you don't know which ones these are, just reboot.
### Diaspora support is not activated
You get this error when you try to add a Diaspora contact.
You can enable it from the web interface in `Admin -> Site -> Policies -> Enable diaspora* support`.
You may also set it manually in the config file or in the database within the `diaspora_enabled` key of the `system` category.
### Upgrade failed due to DB migration timeout
Altering of a table may fail if it contains a large number of rows.
First verify the existing timeout (50s by default):
`show global variables like "innodb_lock_wait_timeout";`
Then increase it:
`set global innodb_lock_wait_timeout=600;`

View File

@ -50,12 +50,12 @@ This will take you through a similar process.
Connect to users of alternate networks
---
### Across the Federation and Fedivese
You can also use your Identity Address or other people's Identity Addresses to become friends across the so-called Federation/Fedivese of open source social media.
### Across the Federation and Fediverse
You can also use your Identity Address or other people's Identity Addresses to become friends across the so-called Federation/Fediverse of open source social media.
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.
Likwise 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.
@ -74,7 +74,7 @@ Create an email contact with for example Alice on Gmail, enter her email in foll
In order to avoid abuse or spam, you must have an email from Alice with the correct email address in your email inbox.
Subscribing to mailing lists is done in the same way, but without the use of the "mailto:" prefix.
To subscribe to a mailing list, enter the email in following example format "mailling-list@list-server.net".
To subscribe to a mailing list, enter the email in following example format "mailing-list@list-server.net".
### Syndication feeds
You can "follow" almost anybody or any website that produces a syndication feed (RSS/Atom,etc.).

View File

@ -19,7 +19,7 @@ Friendica contacts
---
Friendica will recreate your account on the new server, with your contacts and groups.
A message is sent to Friendica contacts, to inform them about your move:
If your contacts are runnning on an updated server, your details on their side will be automatically updated.
If your contacts are running on an updated server, your details on their side will be automatically updated.
GNU Social contacts
---

View File

@ -4,7 +4,7 @@ If you're not already logged in, do so in the frame below.
Once you've logged in (or if you are already logged in), you'll now be looking at your profile page.
This is a bit like a Facebook wall.
It's where all your status messgages are kept, and where your friends come to post on your wall.
It's where all your status messages are kept, and where your friends come to post on your wall.
To write your status, simply click on the Pencil & Paper icon in the top right (in the Frio theme), or click in the box that says "share" (other themes).
When you do this, the posting dialog box will appear or the share box will expand.

View File

@ -104,12 +104,12 @@ Default is false.
#### File storage backend
Set the backend used by Friendica to store uploaded file data.
Two storage backends are avaiable with Friendica:
Two storage backends are available with Friendica:
- **Database** : Data is stored in a dedicated table in database (`storage`)
- **Filesystem** : Data is stored as file on the filesystem.
More storage backends can be avaiable from third-party addons.
More storage backends can be available from third-party addons.
If you use those, please refer to the documentation of those addons for further information.
Default value is 'Database (legacy)': it's the legacy way used to store data directly in database.

View File

@ -52,5 +52,5 @@ The same rules apply as with names that spaces within tags are represented by th
It is therefore not possible to create a tag whose target contains an underscore.
Topical tags are also not linked if they are purely numeric, e.g. #1.
If you wish to use a numerica hashtag, please add some descriptive text such as #2012-elections.
If you wish to use a numeric hashtag, please add some descriptive text such as #2012-elections.

View File

@ -13,7 +13,7 @@ If 2FA is already enabled and you want to add another device, you must re-config
### 1. Download an authenticator app
Any authenticator app should work with Friendica.
Notheless, we recommend:
Nonetheless, we recommend:
- For iOS, [Matt Rubin's MIT-licensed Authenticator app](https://mattrubin.me/authenticator).
- For Android, [andOTP](https://github.com/andOTP/andOTP).
@ -68,7 +68,7 @@ Instead, if you enabled two-factor authentication, you have to generate app-spec
You can generate as many app-specific passwords as you want, they will be shown once to you just after you generated it.
Just copy and paste it in your third-party app in the Friendica account password input field at this point.
We recommend generating a single app-specific password for each separate third-party app you are using, using a meaningul description of the target app (like "Frienqa on my Fairphone 2").
We recommend generating a single app-specific password for each separate third-party app you are using, using a meaningful description of the target app (like "Frienqa on my Fairphone 2").
You can also revoke any and all app-specific password you generated this way.
This may log you out of the third-party application(s) you used the revoked app-specific password to log in with.

View File

@ -31,7 +31,7 @@ The mysql database is called "friendica", the mysql user and password both are "
Your local working directory is set up as a shared directory with the VM (/vagrant).
7. Check the changes in your browser in the VM.
Find the Friendica log file `/vagrant/logfile.out` on the VM or in the `logfile.out` in you local Friendica directory.
8. Commit and push your changes directly back to Github.
8. Commit and push your changes directly back to GitHub.
If you want to stop vagrant after finishing your work, run the following command

View File

@ -27,7 +27,7 @@ Fields
| gsid | Global Server ID | int unsigned | YES | | NULL | |
| created | | datetime | NO | | 0001-01-01 00:00:00 | |
| updated | | datetime | NO | | 0001-01-01 00:00:00 | |
| interacting_count | Number of contacts this contact interactes with | int unsigned | YES | | 0 | |
| interacting_count | Number of contacts this contact interacts with | int unsigned | YES | | 0 | |
| interacted_count | Number of contacts that interacted with this contact | int unsigned | YES | | 0 | |
| post_count | Number of posts and comments | int unsigned | YES | | 0 | |

View File

@ -13,7 +13,7 @@ Fields
| guid | A unique identifier for this private message | varbinary(255) | NO | | | |
| from-name | name of the sender | varchar(255) | NO | | | |
| from-photo | contact photo link of the sender | varbinary(383) | NO | | | |
| from-url | profile linke of the sender | varbinary(383) | NO | | | |
| from-url | profile link of the sender | varbinary(383) | NO | | | |
| contact-id | contact.id | varbinary(255) | YES | | NULL | |
| author-id | Link to the contact table with uid=0 of the author of the mail | int unsigned | YES | | NULL | |
| convid | conv.id | int unsigned | YES | | NULL | |

View File

@ -32,7 +32,7 @@ Fields
| verified | user is verified through email | boolean | NO | | 0 | |
| blocked | 1 for user is blocked | boolean | NO | | 0 | |
| blockwall | Prohibit contacts to post to the profile page of the user | boolean | NO | | 0 | |
| hidewall | Hide profile details from unkown viewers | boolean | NO | | 0 | |
| hidewall | Hide profile details from unknown viewers | boolean | NO | | 0 | |
| blocktags | Prohibit contacts to tag the post of this user | boolean | NO | | 0 | |
| unkmail | Permit unknown people to send private mails to this user | boolean | NO | | 0 | |
| cntunkmail | | int unsigned | NO | | 10 | |

View File

@ -27,7 +27,7 @@ Der Quellcode von Friendica Red ist [hier](https://github.com/friendica/red) zu
Addons findest Du auf [dieser Seite](https://github.com/friendica/friendica-addons).
Wenn Du neue Themen suchst, findest Du sie auf [Friendica-Themes.com](http://friendica-themes.com/).
Wenn Du neue Themen suchst, findest Du sie auf [github.com/bkil/friendica-themes](https://github.com/bkil/friendica-themes).
<a name="adminaccount1"></a>
### Ich habe meine E-Mail Adresse geändern und jetzt ist das Admin Panel verschwunden?

View File

@ -95,6 +95,6 @@ Nutze externe Dokumente, um eine detailiertere Erklärung für die Einrichtung e
### Database
Es gibt Skripte wie [tuning-primer.sh](http://www.day32.com/MySQL/) und [mysqltuner.pl](http://mysqltuner.pl), die den Datenbankserver analysieren und Hinweise darauf geben, welche Werte verändert werden könnten.
Es gibt Skripte wie [tuning-primer.sh](https://github.com/BMDan/tuning-primer.sh) und [mysqltuner.pl](https://github.com/major/MySQLTuner-perl/blob/master/mysqltuner.pl), die den Datenbankserver analysieren und Hinweise darauf geben, welche Werte verändert werden könnten.
Aktivere hierfür die "Slow query" Log-Datei, um Performanceprobleme zu erkennen.

View File

@ -9,7 +9,7 @@ Depending on the theme you are using, there might be an additional link from the
## Event Overview
The overview page shows the calendar of the current month, plus a few days days at the beginning and the end.
The overview page shows the calendar of the current month, plus a few days at the beginning and the end.
Listed are all events for this month, created by you, or shared with you by your contacts,
This includes birthday reminders for contacts who share their birthday with you.

View File

@ -37,7 +37,7 @@ Form Templates
To guarantee a consistent look and feel for input forms, i.e. in the settings sections, there are templates for the basic form fields.
They are initialized with an array of data, depending on the tyle of the field.
All of these take an array holding the values, e.g. for a one line text input field, which is required and should be used to type email addesses use something along the lines of:
All of these take an array holding the values, e.g. for a one line text input field, which is required and should be used to type email addresses use something along the lines of:
'$adminmail' => array('adminmail', DI::l10n()->t('Site administrator email address'), $adminmail, DI::l10n()->t('Your account email address must match this in order to use the web admin panel.'), 'required', '', 'email'),
@ -70,7 +70,7 @@ Field parameter:
### field_custom.tpl
A customizeable template to include a custom element in the form with the usual surroundings,
A customizable template to include a custom element in the form with the usual surroundings,
Field parameter:
0. Name of the field,
@ -88,7 +88,7 @@ Field parameter:
2. Current value of the variable,
3. Help text for the input box,
4. Should be set to the translation of "Required" to mark this field as required,
5. if set to "autofocus" modern browser will put the cursur into this box once the page is loaded,
5. if set to "autofocus" modern browser will put the cursor into this box once the page is loaded,
6. if set, it will be used for the input type, default is `text` (possible types: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#%3Cinput%3E_types).
### field_intcheckbox.tpl

View File

@ -12,7 +12,7 @@ So, how to work on the UI of friendica.
You can either directly edit an existing theme.
But you might loose your changes when the theme is updated by the friendica team.
If you are almost happy with an existing theme, the easiest way to cover your needs is to create a new theme, inheritating most of the properties of the parent theme and change just minor stuff.
If you are almost happy with an existing theme, the easiest way to cover your needs is to create a new theme, inheriting most of the properties of the parent theme and change just minor stuff.
The below for a more detailed description of theme heritage.
Some themes also allow users to select *variants* of the theme.
@ -33,7 +33,7 @@ In most cases, you can found these in
/view/theme/**your-theme-name**/style.css
sometimes, there is also a file called style.php in the theme directory.
This is only needed if the theme allowes the user to change certain things of the theme dynamically.
This is only needed if the theme allows the user to change certain things of the theme dynamically.
Say the font size or set a background image.
### Templates
@ -50,7 +50,7 @@ if you want to override any template within your theme create your version of th
any template that exists there will be used instead of the default one.
### Javascript
### JavaScript
The same rule applies to the JavaScript files found in

View File

@ -7,7 +7,7 @@ Friendica translations
The Friendica translation process is based on `gettext` PO files.
Basic worflow:
Basic workflow:
1. `xgettext` is used to collect translation strings across the project in the authoritative PO file located in `view/lang/C/messages.po`.
2. This file makes translations strings available at [the Transifex Friendica page](https://www.transifex.com/Friendica/friendica/dashboard/).
3. The translation itself is done at Transifex by volunteers.

View File

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 137 KiB

View File

Before

Width:  |  Height:  |  Size: 408 KiB

After

Width:  |  Height:  |  Size: 408 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 128 KiB

View File

Before

Width:  |  Height:  |  Size: 498 KiB

After

Width:  |  Height:  |  Size: 498 KiB

View File

Before

Width:  |  Height:  |  Size: 300 B

After

Width:  |  Height:  |  Size: 300 B

View File

@ -19,7 +19,7 @@
*
* This is the POST destination for most all locally posted
* text stuff. This function handles status, wall-to-wall status,
* local comments, and remote coments that are posted on this site
* local comments, and remote comments that are posted on this site
* (as opposed to being delivered in a feed).
* Also processed here are posts and comments coming through the
* statusnet/twitter API.

View File

@ -436,7 +436,7 @@ function render_messages(array $msg, string $t): string
$to_name_e = $rr['name'];
if (is_null($rr['url'])) {
// contact-id is pointing to a non existing contact
// contact-id is pointing to a nonexistent contact
continue;
}

View File

@ -714,7 +714,7 @@ function photos_content(App $a)
// When PHP is configured with upload_max_filesize less than maximagesize provide this lower limit.
$maximagesize_bytes = (is_numeric($mis_bytes) && ($mis_bytes < $umf_bytes) ? $mis_bytes : $umf_bytes);
// @todo We may be want to use appropriate binary prefixed dynamicly
// @todo We may be want to use appropriate binary prefixed dynamically
$usage_message = DI::l10n()->t('The maximum accepted image size is %s', Strings::formatBytes($maximagesize_bytes));
$tpl = Renderer::getMarkupTemplate('photos_upload.tpl');

View File

@ -32,7 +32,7 @@ Please check software documentation to know how modify these examples to make th
Sample systemd unit files to start worker.php periodically.
Please place them in the correct location for your system, typically this is `/etc/systemd/system/friendicaworker.timer` and `/etc/systemd/system/friendicaworker.service`.
Please report problems and improvements to `!helpers@forum.friendi.ca` and `@utzer@social.yl.ms` or open an issue in [the Github Friendica page](https://github.com/friendica/friendica/issues).
Please report problems and improvements to `!helpers@forum.friendi.ca` and `@utzer@social.yl.ms` or open an issue in [the GitHub Friendica page](https://github.com/friendica/friendica/issues).
This is for usage of systemd instead of cron to start the worker periodically, the solution is a work-in-progress and can surely be improved.
## `phpstorm-code-style.xml`

View File

@ -1,12 +1,12 @@
# Bookmarklet-share2friendica
Javascript bookmarklet to share websites with your friendica account
JavaScript bookmarklet to share websites with your friendica account
## Getting Started
### Installing
Open the file bookmarklet-share2friendica.js and change 'YourFriendicaDoomain.tld" with your friendica domain
Open the file bookmarklet-share2friendica.js and change 'YourFriendicaDomain.tld" with your friendica domain
If you friendica is at https://myfriend.myfami.ly/ , the original ...
```javascript
@ -20,7 +20,7 @@ javascript:(function(){f='https://myfriend.myfami.ly/bookmarklet/?url='+encodeUR
*Please copy the whole script, not only the part mentioned here!*
Then create a new bookmark, give it a name like "share2Friendica" and paste the script in the address field. Save it. Now you can click on that bookmarklet every time you want to share a website, you are currently reading. A new small window will open where title is prefilled and the website you want to share is put as attachement in the body of the new post.
Then create a new bookmark, give it a name like "share2Friendica" and paste the script in the address field. Save it. Now you can click on that bookmarklet every time you want to share a website, you are currently reading. A new small window will open where title is prefilled and the website you want to share is put as attachment in the body of the new post.
## Additional notes if it doesn't work

View File

@ -1,6 +1,6 @@
<!-- styling for this page is done in the home.css file //-->
<!-- Some node specifiv welcome message //-->
<!-- Some node specific welcome message //-->
<p>Welcome to this <a href="https://friendi.ca">Friendica</a> node!</p>
<!-- Some general notes about Friendica, the other networks and difficulty to run //-->
@ -17,7 +17,7 @@
</div>
<div id="c3" class="homeinfobox">
<h4>Is it hard to run Friendica?</h4>
<p>No, not at all! You need a LAMP server, most shared hosting services that offer MySQL, PHP and the ability to run cron jobs will do just fine. If you have your own (virtual) server, for a small Friendica server something like a Raspberry2B is sufficenent from the specs.</p>
<p>No, not at all! You need a LAMP server, most shared hosting services that offer MySQL, PHP and the ability to run cron jobs will do just fine. If you have your own (virtual) server, for a small Friendica server something like a Raspberry2B is sufficient from the specs.</p>
<p><a href="https://github.com/friendica/friendica">Get the source</a></p>
</div>
</div>

View File

@ -22,7 +22,7 @@ the requested URL.
Enjoy!
On Debian Jessie with lighttpd 1.4.35-4 there was a problem encountered
between curl (which is used by Friendica in the background) and lighttp.
between curl (which is used by Friendica in the background) and lighttpd.
This problem caused requests being served with an error code of 417 in
the logs and no delivery of postings from the contacts.
@ -30,7 +30,7 @@ One can solve the issue by adding
server.reject-expect-100-with-417 = "disable"
to the lighttpd configuratiion file (e.g. in the beginning with the
to the lighttpd configuration file (e.g. in the beginning with the
other 'server.xxx' settings.
---------------( config starts )-----------------

View File

@ -30,7 +30,7 @@
##
# This configuration assumes your domain is example.net
# You have a separate subdomain friendica.example.net
# You want all Friendica traffic to be https using letsencrypt with cerbot
# You want all Friendica traffic to be https using letsencrypt with certbot
# You have an SSL certificate and key for your subdomain
# You have PHP FastCGI Process Manager (php7.4-fpm) running on localhost
# You have Friendica installed in /var/www/friendica

View File

@ -45,7 +45,7 @@ is a superset of salmon).
zot:key
*******
A suitable randomly generated encyption key of length 32 octets for encrypting
A suitable randomly generated encryption key of length 32 octets for encrypting
the salmon packet. This is then encrypted with the sender's private key and
base64url encoded.
@ -59,7 +59,7 @@ key and base64url encoded.
zot:env_key
***********
A suitable randomly generated encyption key of length 32 octets for encrypting
A suitable randomly generated encryption key of length 32 octets for encrypting
the envelope. This is then encrypted with the recipient's public key and
base64url encoded. For bulk deliveries, it is encrypted with the site bulk
delivery public key.
@ -127,7 +127,7 @@ MUST be present.
Z-To: zot:bob@example.com, zot:alice@example.com, mailto:dave@example.com
Z-Bcc: zot:https://example.com/profile/richard
are valid entries. Adresses are comma separated and individual entries MUST NOT
are valid entries. Addresses are comma separated and individual entries MUST NOT
contain commas. There MAY be any number of ASCII space characters between
entries for legibility. Header lines are terminated with a linefeed character
(ASCII 0x0A).
@ -136,8 +136,8 @@ This specification provides the following protocol address prefixes
for use in Z-To: or Z-Bcc: elements:
zot: - normal zot delivery using webfinger or LRDD resolvable address
dfrn: - legacy DFRN mode delivery using webfinger or LRDD resovable address
ostatus: - normal OStatus delivery using webfinger or LRDD resovable address
dfrn: - legacy DFRN mode delivery using webfinger or LRDD resolvable address
ostatus: - normal OStatus delivery using webfinger or LRDD resolvable address
diaspora: - Diaspora network delivery using webfinger address
facebook: - Facebook profile page URL
twitter: - Twitter personal page URL without AJAX '#!' fragment
@ -289,7 +289,7 @@ systems MAY reject foreign messages.
*******************************
This section of the document is considered separate from the delivery
specification precding it and represents a different protocol, which is
specification preceding it and represents a different protocol, which is
currently incomplete. This will be split off into another document in the
future, but is presented here as a synergistic component of the Zot network
model.
@ -353,7 +353,7 @@ Salmon Magic Envelope
Atom Activity Stream Draft
http://activitystrea.ms/specs/atom/1.0/
Activty Stream Base Schema
Activity Stream Base Schema
http://activitystrea.ms/head/activity-schema.html
WebFinger Protocol

View File

@ -391,7 +391,7 @@ class App
}
/**
* Returns the current theme name. May be overriden by the mobile theme name.
* Returns the current theme name. May be overridden by the mobile theme name.
*
* @return string Current theme name or empty string in installation phase
* @throws Exception
@ -532,7 +532,7 @@ class App
/**
* Provide a sane default if nothing is chosen or the specified theme does not exist.
*
* @return string Current theme's stylsheet path
* @return string Current theme's stylesheet path
* @throws Exception
*/
public function getCurrentThemeStylesheetPath(): string

View File

@ -253,9 +253,9 @@ class Page implements ArrayAccess
'$touch_icon' => $touch_icon,
'$block_public' => intval($config->get('system', 'block_public')),
'$stylesheets' => $this->stylesheets,
'$likeError' => $l10n->t('Like not successfull'),
'$dislikeError' => $l10n->t('Dislike not successfull'),
'$announceError' => $l10n->t('Sharing not successfull'),
'$likeError' => $l10n->t('Like not successful'),
'$dislikeError' => $l10n->t('Dislike not successful'),
'$announceError' => $l10n->t('Sharing not successful'),
'$attendError' => $l10n->t('Attendance unsuccessful'),
'$srvError' => $l10n->t('Backend error'),
'$netError' => $l10n->t('Network error'),
@ -291,7 +291,7 @@ class Page implements ArrayAccess
* Initializes Page->page['footer'].
*
* Includes:
* - Javascript homebase
* - JavaScript homebase
* - Mobile toggle link
* - Registered footer scripts (through App->registerFooterScript())
* - footer.tpl template
@ -503,7 +503,7 @@ class Page implements ArrayAccess
$content = mb_convert_encoding($this->page["content"], 'HTML-ENTITIES', "UTF-8");
/// @TODO one day, kill those error-surpressing @ stuff, or PHP should ban it
/// @TODO one day, kill those error-suppressing @ stuff, or PHP should ban it
@$doc->loadHTML($content);
$xpath = new DOMXPath($doc);

View File

@ -412,7 +412,7 @@ class Router
}
if (!$this->lock->acquire('getCachedDispatchData', 0)) {
// Immediately return uncached data when we can't aquire a lock
// Immediately return uncached data when we can't acquire a lock
return $this->getDispatchData();
}

View File

@ -24,7 +24,7 @@ namespace Friendica;
use Psr\Log\LoggerInterface;
/**
* Factories act as an intermediary to avoid direct Entitiy instanciation.
* Factories act as an intermediary to avoid direct Entity instantiation.
*
* @see BaseModel
* @see BaseCollection

View File

@ -94,7 +94,7 @@ abstract class BaseModel extends BaseDataTransferObject
}
/**
* Magic isset method. Returns true if the field exists, either in the data prperty array or in any of the local properties.
* Magic isset method. Returns true if the field exists, either in the data property array or in any of the local properties.
* Used by array_column() on an array of objects.
*
* @param $name

View File

@ -90,9 +90,9 @@ abstract class BaseModule implements ICanHandleRequests
*
* @see L10n::tt()
*/
protected function tt(string $singular, string $plurarl, int $count): string
protected function tt(string $singular, string $plural, int $count): string
{
return $this->l10n->tt($singular, $plurarl, $count);
return $this->l10n->tt($singular, $plural, $count);
}
/**

View File

@ -95,7 +95,7 @@ Examples
bin/console autoinstall --savedb
Installs Friendica with environment variables and saves them to the 'config/local.config.php' file
bin/console autoinstall -H localhost -p 3365 -u user -P passwort1234 -d friendica -U https://friendica.fqdn
bin/console autoinstall -H localhost -p 3365 -u user -P password1234 -d friendica -U https://friendica.fqdn
Installs Friendica with a local mysql database with credentials
HELP;
}

View File

@ -30,7 +30,7 @@ use Friendica\App;
*
* Basically, docblox takes a list of files to build documentation from. This script assumes there is a file or set of files
* breaking the build when it is included in that list. It tries to calculate the smallest list containing these files.
* Unfortunatly, the original problem is NP-complete, so what the script does is a best guess only.
* Unfortunately, the original problem is NP-complete, so what the script does is a best guess only.
*
* So it starts with a list of all files in the project.
* If that list can't be build, it cuts it in two parts and tries both parts independently. If only one of them breaks,

View File

@ -129,7 +129,7 @@ HELP;
if (!$parameters) {
$this->errored++;
if ($this->getOption('v')) {
$this->out('Unabled to parse parameter JSON of the row with id ' . $workerqueueItem['id']);
$this->out('Unable to parse parameter JSON of the row with id ' . $workerqueueItem['id']);
$this->out('JSON: ' . var_export($workerqueueItem['parameter'], true));
}
}
@ -155,7 +155,7 @@ HELP;
} else {
$this->errored++;
if ($this->getOption('v')) {
$this->out('Unabled to update the row with id ' . $workerqueueItem['id']);
$this->out('Unable to update the row with id ' . $workerqueueItem['id']);
$this->out('Fields: ' . var_export($fields, true));
}
}

View File

@ -231,7 +231,7 @@ HELP;
}
/**
* Get a string and retun a message.po ready text
* Get a string and return a message.po ready text
* - replace " with \"
* - replace tab char with \t
* - manage multiline strings

View File

@ -270,7 +270,7 @@ HELP;
}
/**
* Allows or denys a user based on it's nickname
* Allows or denies a user based on it's nickname
*
* @param bool $allow True, if the pending user is allowed, false if denies
*

View File

@ -94,7 +94,7 @@ class BoundariesPager extends Pager
* $params = ['order' => ['sort_field' => true], 'limit' => $itemsPerPage];
* $items = DBA::toArray(DBA::select($table, $fields, $condition, $params));
*
* $pager = new BoundariesPager($a->query_string, $items[0]['sort_field'], $items[coutn($items) - 1]['sort_field'], $itemsPerPage);
* $pager = new BoundariesPager($a->query_string, $items[0]['sort_field'], $items[count($items) - 1]['sort_field'], $itemsPerPage);
*
* $html = $pager->renderMinimal(count($items));
*

View File

@ -1362,7 +1362,7 @@ class Conversation
}
}
/// @TODO: Stop recusrsively adding all children back to the top level (!!!)
/// @TODO: Stop recursively adding all children back to the top level (!!!)
/// However, this apparently ensures responses (likes, attendance) display (?!)
foreach ($parents as $parent) {
if (count($parent['children'])) {

View File

@ -79,7 +79,7 @@ class Feature
* Get a list of all available features
*
* The array includes the setting group, the setting name,
* explainations for the setting and if it's enabled or disabled
* explanations for the setting and if it's enabled or disabled
* by default
*
* @param bool $filtered True removes any locked features

View File

@ -38,7 +38,7 @@ class ForumManager
*
* @param int $uid of the profile owner
* @param boolean $lastitem Sort by lastitem
* @param boolean $showhidden Show frorums which are not hidden
* @param boolean $showhidden Show forums which are not hidden
* @param boolean $showprivate Show private groups
*
* @return array
@ -102,7 +102,7 @@ class ForumManager
/**
* Forumlist widget
*
* Sidebar widget to show subcribed friendica forums. If activated
* Sidebar widget to show subscribed friendica forums. If activated
* in the settings, it appears at the notwork page sidebar
*
* @param string $baseurl Base module path

View File

@ -338,7 +338,7 @@ class Item
} else {
$post_type = $this->l10n->t('status');
}
// Let's break everthing ... ;-)
// Let's break everything ... ;-)
break;
}
$plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
@ -548,7 +548,7 @@ class Item
$item['allow_cid'] = '';
$item['allow_gid'] = '';
}
} elseif ($setPermissions && ($item['gravity'] == ItemModel::GRAVITY_PARENT)) {
} elseif ($setPermissions) {
if (empty($receivers)) {
// For security reasons direct posts without any receiver will be posts to yourself
$self = Contact::selectFirst(['id'], ['uid' => $item['uid'], 'self' => true]);
@ -685,11 +685,11 @@ class Item
// If it is a reshared post then reformat it to avoid display problems with two share elements
if (!empty($shared)) {
if (!empty($shared['guid']) && ($encaspulated_share = $this->createSharedPostByGuid($shared['guid'], true))) {
if (!empty($shared['guid']) && ($encapsulated_share = $this->createSharedPostByGuid($shared['guid'], true))) {
if (!empty(BBCode::fetchShareAttributes($item['body']))) {
$item['body'] = preg_replace("/\[share.*?\](.*)\[\/share\]/ism", $encaspulated_share, $item['body']);
$item['body'] = preg_replace("/\[share.*?\](.*)\[\/share\]/ism", $encapsulated_share, $item['body']);
} else {
$item['body'] .= $encaspulated_share;
$item['body'] .= $encapsulated_share;
}
}
$item['body'] = HTML::toBBCode(BBCode::convertForUriId($item['uri-id'], $item['body'], BBCode::ACTIVITYPUB));

View File

@ -385,7 +385,7 @@ class OEmbed
}
/**
* Returns a formmated HTML code from given URL and sets optional title
* Returns a formatted HTML code from given URL and sets optional title
*
* @param string $url URL to fetch
* @param string $title Optional title (default: what comes from OEmbed object)
@ -447,7 +447,7 @@ class OEmbed
* Generates an XPath query to select elements whose provided attribute contains
* the provided value in a space-separated list.
*
* @param string $attr Name of the attribute to seach
* @param string $attr Name of the attribute to search
* @param string $value Value to search in a space-separated list
* @return string
*/

View File

@ -141,7 +141,7 @@ class PageInfo
$data['text'] = '';
}
// Only embedd a picture link when it seems to be a valid picture ("width" is set)
// Only embed a picture link when it seems to be a valid picture ("width" is set)
if (!empty($data['images']) && !empty($data['images'][0]['width'])) {
$preview = str_replace(['[', ']'], ['&#91;', '&#93;'], htmlentities($data['images'][0]['src'], ENT_QUOTES, 'UTF-8', false));
// if the preview picture is larger than 500 pixels then show it in a larger mode

View File

@ -133,7 +133,7 @@ class Smilies
'<img class="smiley" src="' . $baseUrl . '/images/smiley-cry.gif" alt=":\'(" title=":\'("/>',
'<img class="smiley" src="' . $baseUrl . '/images/smiley-foot-in-mouth.gif" alt=":-!" title=":-!" />',
'<img class="smiley" src="' . $baseUrl . '/images/smiley-undecided.gif" alt=":-/" title=":-/" />',
'<img class="smiley" src="' . $baseUrl . '/images/smiley-embarassed.gif" alt=":-[" title=":-[" />',
'<img class="smiley" src="' . $baseUrl . '/images/smiley-embarrassed.gif" alt=":-[" title=":-[" />',
'<img class="smiley" src="' . $baseUrl . '/images/smiley-cool.gif" alt="8-)" title="8-)" />',
'<img class="smiley" src="' . $baseUrl . '/images/beer_mug.gif" alt=":beer" title=":beer" />',
'<img class="smiley" src="' . $baseUrl . '/images/beer_mug.gif" alt=":homebrew" title=":homebrew" />',

View File

@ -548,7 +548,7 @@ class BBCode
/*
* The previously spacefied [noparse][ i ]italic[ /i ][/noparse],
* now turns back and the [noparse] tags are trimed
* now turns back and the [noparse] tags are trimmed
* returning [i]italic[/i]
*
* @param array $match
@ -1373,7 +1373,7 @@ class BBCode
});
}
// leave open the posibility of [map=something]
// leave open the possibility of [map=something]
// this is replaced in Item::prepareBody() which has knowledge of the item location
if (strpos($text, '[/map]') !== false) {
$text = preg_replace_callback(

View File

@ -842,7 +842,7 @@ class HTML
*
* @param string $s Search query.
* @param string $id HTML id
* @param bool $aside Display the search widgit aside.
* @param bool $aside Display the search widget aside.
*
* @return string Formatted HTML.
* @throws \Exception

View File

@ -180,7 +180,7 @@ class Plaintext
$msg = trim($post['description']);
}
// If the link is already contained in the post, then it neeedn't to be added again
// If the link is already contained in the post, then it needn't to be added again
// But: if the link is beyond the limit, then it has to be added.
if (($link != '') && strstr($msg, $link)) {
$pos = strpos($msg, $link);

View File

@ -59,7 +59,7 @@ class Widget
/**
* Return Find People widget
*
* @return string HTML code respresenting "People Widget"
* @return string HTML code representing "People Widget"
*/
public static function findPeople(): string
{

View File

@ -47,7 +47,7 @@ class ACL
/**
* Returns a select input tag for private message recipient
*
* @param int $selected Existing recipien contact ID
* @param int $selected Existing recipient contact ID
* @return string
* @throws \Exception
*/

View File

@ -98,17 +98,17 @@ class Installer
* Checks the current installation environment. There are optional and mandatory checks.
*
* @param string $baseurl The baseurl of Friendica
* @param string $phpath Optional path to the PHP binary
* @param string $phppath Optional path to the PHP binary
*
* @return bool if the check succeed
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public function checkEnvironment($baseurl, $phpath = null)
public function checkEnvironment($baseurl, $phppath = null)
{
$returnVal = true;
if (isset($phpath)) {
if (!$this->checkPHP($phpath)) {
if (isset($phppath)) {
if (!$this->checkPHP($phppath)) {
$returnVal = false;
}
}
@ -165,7 +165,7 @@ class Installer
'$dbpass' => $configCache->get('database', 'password'),
'$dbdata' => $configCache->get('database', 'database'),
'$phpath' => $configCache->get('config', 'php_path'),
'$phppath' => $configCache->get('config', 'php_path'),
'$adminmail' => $configCache->get('config', 'admin_email'),
'$system_url' => $configCache->get('system', 'url'),
@ -590,8 +590,8 @@ class Installer
* TLS Check
*
* Tries to determine whether the connection to the server is secured
* by TLS or not. If not the user will be warned that it is higly
* encuraged to use TLS.
* by TLS or not. If not the user will be warned that it is highly
* encouraged to use TLS.
*
* @return bool (true) as TLS is not mandatory
*/

View File

@ -334,7 +334,7 @@ class L10n
// for some languages there is only a single array item
$s = $t[0];
}
// if $t is empty, skip it, because empty strings array are indended
// if $t is empty, skip it, because empty strings array are intended
// to make string file smaller when there's no translation
} else {
$s = $t;

View File

@ -36,7 +36,7 @@ class Logger
*/
const TYPE_LOGGER = LoggerInterface::class;
/**
* @var WorkerLogger A specific worker logger type, which can be anabled
* @var WorkerLogger A specific worker logger type, which can be enabled
*/
const TYPE_WORKER = WorkerLogger::class;
/**
@ -206,7 +206,7 @@ class Logger
* An alternative logger for development.
*
* Works largely as log() but allows developers
* to isolate particular elements they are targetting
* to isolate particular elements they are targeting
* personally without background noise
*
* @param string $message Message to log

View File

@ -27,7 +27,7 @@ use Friendica\Core\Storage\Exception\StorageException;
/**
* Interface for writable storage backends
*
* Used for storages with CRUD functionality, mainly used for user data (e.g. photos, attachements).
* Used for storages with CRUD functionality, mainly used for user data (e.g. photos, attachments).
* There's only one active writable storage possible. This type of storage is selectable by the current administrator.
*/
interface ICanWriteToStorage extends ICanReadFromStorage

View File

@ -35,7 +35,7 @@ use Friendica\Util\Strings;
* Best would be for storage folder to be outside webserver folder, we are using a
* folder relative to code tree root as default to ease things for users in shared hostings.
* Each new resource gets a value as reference and is saved in a
* folder tree stucture created from that value.
* folder tree structure created from that value.
*/
class Filesystem implements ICanWriteToStorage
{

View File

@ -321,7 +321,7 @@ class System
}
/**
* This function adds the content and a content-teype HTTP header to the output.
* This function adds the content and a content-type HTTP header to the output.
* After finishing the process is getting killed.
*
* @param string $content

View File

@ -362,7 +362,7 @@ class Worker
return false;
}
// Check for existance and validity of the include file
// Check for existence and validity of the include file
$include = $argv[0];
if (method_exists(sprintf('Friendica\Worker\%s', $include), 'execute')) {
@ -590,7 +590,7 @@ class Worker
/* With these values we can analyze how effective the worker is.
* The database and rest time should be low since this is the unproductive time.
* The execution time is the productive time.
* By changing parameters like the maximum number of workers we can check the effectivness.
* By changing parameters like the maximum number of workers we can check the effectiveness.
*/
$dbtotal = round(self::$db_duration, 2);
$dbread = round(self::$db_duration - (self::$db_duration_count + self::$db_duration_write + self::$db_duration_stat), 2);
@ -885,7 +885,7 @@ class Worker
/**
* Returns waiting jobs for the current process id
*
* @return array|bool waiting workerqueue jobs or FALSE on failture
* @return array|bool waiting workerqueue jobs or FALSE on failure
* @throws \Exception
*/
private static function getWaitingJobForPID()
@ -1422,7 +1422,7 @@ class Worker
*/
public static function isInMaintenanceWindow(bool $check_last_execution = false): bool
{
// Calculate the seconds of the start end end of the maintenance window
// Calculate the seconds of the start and end of the maintenance window
$start = strtotime(DI::config()->get('system', 'maintenance_start')) % 86400;
$end = strtotime(DI::config()->get('system', 'maintenance_end')) % 86400;

View File

@ -69,7 +69,7 @@ abstract class DI
/**
* Returns a clone of the current dice instance
* This usefull for overloading the current instance with mocked methods during tests
* This useful for overloading the current instance with mocked methods during tests
*
* @return Dice
*/

View File

@ -205,7 +205,7 @@ class DBA
* Please use DBA::delete, DBA::insert, DBA::update, ... instead
*
* @param string $sql SQL statement
* @return boolean Was the query successfull? False is returned only if an error occurred
* @return boolean Was the query successful? False is returned only if an error occurred
* @throws \Exception
*/
public static function e(string $sql): bool
@ -420,7 +420,7 @@ class DBA
* @param array|boolean $old_fields array with the old field values that are about to be replaced (true = update on duplicate, false = don't update identical fields)
* @param array $params Parameters: "ignore" If set to "true" then the update is done with the ignore parameter
*
* @return boolean was the update successfull?
* @return boolean was the update successful?
* @throws \Exception
*/
public static function update(string $table, array $fields, array $condition, $old_fields = [], array $params = []): bool

View File

@ -102,7 +102,7 @@ class Database
*
* @return void
*
* @todo Make this method obsolet - use a clean pattern instead ...
* @todo Make this method obsolete - use a clean pattern instead ...
*/
public function setDependency(IManageConfigValues $config, Profiler $profiler, LoggerInterface $logger)
{
@ -767,7 +767,7 @@ class Database
*
* @param string $sql SQL statement
*
* @return boolean Was the query successfull? False is returned only if an error occurred
* @return boolean Was the query successful? False is returned only if an error occurred
* @throws \Exception
*/
public function e(string $sql): bool
@ -1321,7 +1321,7 @@ class Database
* @param array|boolean $old_fields array with the old field values that are about to be replaced (true = update on duplicate, false = don't update identical fields)
* @param array $params Parameters: "ignore" If set to "true" then the update is done with the ignore parameter
*
* @return boolean was the update successfull?
* @return boolean was the update successful?
* @throws \Exception
* @todo Implement "bool $update_on_duplicate" to avoid mixed type for $old_fields
*/

View File

@ -82,7 +82,7 @@ class DbaDefinition
// Assign all field that are present in the table
foreach ($fieldNames as $field) {
if (isset($data[$field])) {
// Limit the length of varchar, varbinary, char and binrary fields
// Limit the length of varchar, varbinary, char and binary fields
if (is_string($data[$field]) && preg_match("/char\((\d*)\)/", $definition[$table]['fields'][$field]['type'], $result)) {
$data[$field] = mb_substr($data[$field], 0, $result[1]);
} elseif (is_string($data[$field]) && preg_match("/binary\((\d*)\)/", $definition[$table]['fields'][$field]['type'], $result)) {

View File

@ -55,7 +55,7 @@ class Status extends BaseFactory
/** @var Card */
private $mstdnCardFactory;
/** @var Attachment */
private $mstdnAttachementFactory;
private $mstdnAttachmentFactory;
/** @var Error */
private $mstdnErrorFactory;
/** @var Poll */
@ -70,21 +70,21 @@ class Status extends BaseFactory
Mention $mstdnMentionFactory,
Tag $mstdnTagFactory,
Card $mstdnCardFactory,
Attachment $mstdnAttachementFactory,
Attachment $mstdnAttachmentFactory,
Error $mstdnErrorFactory,
Poll $mstdnPollFactory,
ContentItem $contentItem
) {
parent::__construct($logger);
$this->dba = $dba;
$this->mstdnAccountFactory = $mstdnAccountFactory;
$this->mstdnMentionFactory = $mstdnMentionFactory;
$this->mstdnTagFactory = $mstdnTagFactory;
$this->mstdnCardFactory = $mstdnCardFactory;
$this->mstdnAttachementFactory = $mstdnAttachementFactory;
$this->mstdnErrorFactory = $mstdnErrorFactory;
$this->mstdnPollFactory = $mstdnPollFactory;
$this->contentItem = $contentItem;
$this->dba = $dba;
$this->mstdnAccountFactory = $mstdnAccountFactory;
$this->mstdnMentionFactory = $mstdnMentionFactory;
$this->mstdnTagFactory = $mstdnTagFactory;
$this->mstdnCardFactory = $mstdnCardFactory;
$this->mstdnAttachmentFactory = $mstdnAttachmentFactory;
$this->mstdnErrorFactory = $mstdnErrorFactory;
$this->mstdnPollFactory = $mstdnPollFactory;
$this->contentItem = $contentItem;
}
/**
@ -175,7 +175,15 @@ class Status extends BaseFactory
'origin' => true,
'gravity' => Item::GRAVITY_ACTIVITY,
'vid' => Verb::getID(Activity::LIKE),
'deleted' => false
'deleted' => false
]);
$origin_dislike = ($count_dislike == 0) ? false : Post::exists([
'thr-parent-id' => $uriId,
'uid' => $uid,
'origin' => true,
'gravity' => Item::GRAVITY_ACTIVITY,
'vid' => Verb::getID(Activity::DISLIKE),
'deleted' => false
]);
$origin_announce = ($count_announce == 0) ? false : Post::exists([
'thr-parent-id' => $uriId,
@ -206,7 +214,7 @@ class Status extends BaseFactory
$tags = $this->mstdnTagFactory->createFromUriId($uriId);
if ($item['has-media']) {
$card = $this->mstdnCardFactory->createFromUriId($uriId);
$attachments = $this->mstdnAttachementFactory->createFromUriId($uriId);
$attachments = $this->mstdnAttachmentFactory->createFromUriId($uriId);
} else {
$card = new \Friendica\Object\Api\Mastodon\Card([]);
$attachments = [];
@ -250,7 +258,7 @@ class Status extends BaseFactory
}
}
foreach ($this->mstdnAttachementFactory->createFromUriId($shared_uri_id) as $attachment) {
foreach ($this->mstdnAttachmentFactory->createFromUriId($shared_uri_id) as $attachment) {
if (!in_array($attachment, $attachments)) {
$attachments[] = $attachment;
}
@ -295,7 +303,7 @@ class Status extends BaseFactory
$aclFormatter = DI::aclFormatter();
$delivery_data = $uid != $item['uid'] ? null : new FriendicaDeliveryData($item['delivery_queue_count'], $item['delivery_queue_done'], $item['delivery_queue_failed']);
$visibility_data = $uid != $item['uid'] ? null : new FriendicaVisibility($aclFormatter->expand($item['allow_cid']), $aclFormatter->expand($item['deny_cid']), $aclFormatter->expand($item['allow_gid']), $aclFormatter->expand($item['deny_gid']));
$friendica = new FriendicaExtension($item['title'], $item['changed'], $item['commented'], $item['received'], $counts->dislikes, $delivery_data, $visibility_data);
$friendica = new FriendicaExtension($item['title'], $item['changed'], $item['commented'], $item['received'], $counts->dislikes, $origin_dislike, $delivery_data, $visibility_data);
return new \Friendica\Object\Api\Mastodon\Status($item, $account, $counts, $userAttributes, $sensitive, $application, $mentions, $tags, $card, $attachments, $in_reply, $reshare, $friendica, $quote, $poll);
}
@ -361,7 +369,7 @@ class Status extends BaseFactory
$attachments = [];
$in_reply = [];
$reshare = [];
$friendica = new FriendicaExtension('', null, null, null, 0, null, null);
$friendica = new FriendicaExtension('', null, null, null, 0, false, null, null);
return new \Friendica\Object\Api\Mastodon\Status($item, $account, $counts, $userAttributes, $sensitive, $application, $mentions, $tags, $card, $attachments, $in_reply, $reshare, $friendica);
}

View File

@ -32,7 +32,7 @@ use Friendica\Util\Mimetype;
use Friendica\Security\Security;
/**
* Class to handle attach dabatase table
* Class to handle attach database table
*/
class Attach
{
@ -107,7 +107,7 @@ class Attach
}
/**
* Retrive a single record given the ID
* Retrieve a single record given the ID
*
* @param int $id Row id of the record
*
@ -122,7 +122,7 @@ class Attach
}
/**
* Retrive a single record given the ID
* Retrieve a single record given the ID
*
* @param int $id Row id of the record
*
@ -192,7 +192,7 @@ class Attach
* @param string $allow_cid Permissions, allowed contacts. optional, default = ''
* @param string $allow_gid Permissions, allowed groups. optional, default = ''
* @param string $deny_cid Permissions, denied contacts.optional, default = ''
* @param string $deny_gid Permissions, denied greoup.optional, default = ''
* @param string $deny_gid Permissions, denied group.optional, default = ''
*
* @return boolean|integer Row id on success, False on errors
* @throws \Friendica\Network\HTTPException\InternalServerErrorException

View File

@ -239,7 +239,7 @@ class Contact
* @param array $condition condition array with the key values
* @param array|boolean $old_fields array with the old field values that are about to be replaced (true = update on duplicate, false = don't update identical fields)
*
* @return boolean was the update successfull?
* @return boolean was the update successful?
* @throws \Exception
* @todo Let's get rid of boolean type of $old_fields
*/
@ -1686,7 +1686,7 @@ class Contact
* Unblocks a contact
*
* @param int $cid Contact id to unblock
* @return bool Whether it was successfull
* @return bool Whether it was successful
*/
public static function unblock(int $cid): bool
{
@ -1733,7 +1733,7 @@ class Contact
*
* @param array $contact contact array
* @param string $size Size of the avatar picture
* @param bool $no_update Don't perfom an update if no cached avatar was found
* @param bool $no_update Don't perform an update if no cached avatar was found
* @return string photo path
*/
private static function getAvatarPath(array $contact, string $size, bool $no_update = false): string
@ -1767,7 +1767,7 @@ class Contact
* Return the photo path for a given contact array
*
* @param array $contact Contact array
* @param bool $no_update Don't perfom an update if no cached avatar was found
* @param bool $no_update Don't perform an update if no cached avatar was found
* @return string photo path
*/
public static function getPhoto(array $contact, bool $no_update = false): string
@ -1779,7 +1779,7 @@ class Contact
* Return the photo path (thumb size) for a given contact array
*
* @param array $contact Contact array
* @param bool $no_update Don't perfom an update if no cached avatar was found
* @param bool $no_update Don't perform an update if no cached avatar was found
* @return string photo path
*/
public static function getThumb(array $contact, bool $no_update = false): string
@ -1791,7 +1791,7 @@ class Contact
* Return the photo path (micro size) for a given contact array
*
* @param array $contact Contact array
* @param bool $no_update Don't perfom an update if no cached avatar was found
* @param bool $no_update Don't perform an update if no cached avatar was found
* @return string photo path
*/
public static function getMicro(array $contact, bool $no_update = false): string
@ -1803,7 +1803,7 @@ class Contact
* Check the given contact array for avatar cache fields
*
* @param array $contact
* @param bool $no_update Don't perfom an update if no cached avatar was found
* @param bool $no_update Don't perform an update if no cached avatar was found
* @return array contact array with avatar cache fields
*/
private static function checkAvatarCacheByArray(array $contact, bool $no_update = false): array

View File

@ -49,7 +49,7 @@ class Conversation
*/
const UNKNOWN = 0;
/**
* The message had been pushed to this sytem
* The message had been pushed to this system
*/
const PUSH = 1;
/**

View File

@ -656,7 +656,7 @@ class Event
}
// Show edit and drop actions only if the user is the owner of the event and the event
// is a real event (no bithdays).
// is a real event (no birthdays).
$edit = null;
$copy = null;
$drop = null;

View File

@ -92,7 +92,7 @@ class GServer
const DETECT_NODEINFO_210 = 103;
/**
* Check for the existance of a server and adds it in the background if not existant
* Check for the existence of a server and adds it in the background if not existant
*
* @param string $url
* @param boolean $only_nodeinfo
@ -327,7 +327,7 @@ class GServer
return DateTimeFormat::utc('now +1 month');
}
// The system hadn't been successul contacted for more than a month, so try again in three months
// The system hadn't been successful contacted for more than a month, so try again in three months
return DateTimeFormat::utc('now +3 month');
}
@ -557,7 +557,7 @@ class GServer
return false;
}
// If the URL missmatches, then we mark the old entry as failure
// If the URL mismatches, then we mark the old entry as failure
if (!Strings::compareLink($url, $original_url)) {
self::setFailureByUrl($original_url);
if (!self::getID($url, true) && !Network::isUrlBlocked($url)) {
@ -675,7 +675,7 @@ class GServer
}
// All following checks are done for systems that always have got a "host-meta" endpoint.
// With this check we don't have to waste time and ressources for dead systems.
// With this check we don't have to waste time and resources for dead systems.
// Also this hopefully prevents us from receiving abuse messages.
if (($serverdata['network'] == Protocol::PHANTOM) || in_array($serverdata['detection-method'], self::DETECT_UNSPECIFIC)) {
$validHostMeta = self::validHostMeta($url);
@ -2437,7 +2437,7 @@ class GServer
}
}
// Disvover Mastodon servers
// Discover Mastodon servers
$accesstoken = DI::config()->get('system', 'instances_social_key');
if (!empty($accesstoken)) {

View File

@ -60,7 +60,7 @@ class Group
/**
* Checks whether given group id is found in database
*
* @param int $group_id Groupd it
* @param int $group_id Group id
* @param int $uid Optional user id
* @return bool
* @throws \Exception

View File

@ -233,7 +233,7 @@ class Item
Post\Media::insertFromAttachment($item['uri-id'], $fields['attach']);
}
// We only need to notfiy others when it is an original entry from us.
// We only need to notify others when it is an original entry from us.
// Only call the notifier when the item had been edited and records had been changed.
if ($item['origin'] && !empty($fields['edited']) && ($previous['edited'] != $fields['edited'])) {
$notify_items[] = $item['id'];
@ -875,7 +875,7 @@ class Item
/*
* Do we already have this item?
* We have to check several networks since Friendica posts could be repeated
* via OStatus (maybe Diasporsa as well)
* via OStatus (maybe Diaspora as well)
*/
$duplicate = self::getDuplicateID($item);
if ($duplicate) {
@ -892,6 +892,8 @@ class Item
$item['post-type'] = empty($item['title']) ? self::PT_NOTE : self::PT_ARTICLE;
}
$defined_permissions = isset($item['allow_cid']) && isset($item['allow_gid']) && isset($item['deny_cid']) && isset($item['deny_gid']) && isset($item['private']);
$item['wall'] = intval($item['wall'] ?? 0);
$item['extid'] = trim($item['extid'] ?? '');
$item['author-name'] = trim($item['author-name'] ?? '');
@ -931,7 +933,7 @@ class Item
$item['inform'] = trim($item['inform'] ?? '');
$item['file'] = trim($item['file'] ?? '');
// Communities aren't working with the Diaspora protoccol
// Communities aren't working with the Diaspora protocol
if (($uid != 0) && ($item['network'] == Protocol::DIASPORA)) {
$user = User::getById($uid, ['account-type']);
if ($user['account-type'] == Contact::TYPE_COMMUNITY) {
@ -993,7 +995,7 @@ class Item
$item['wall'] = $toplevel_parent['wall'];
// Reshares have to keep their permissions to allow forums to work
if (!$item['origin'] || ($item['verb'] != Activity::ANNOUNCE)) {
if (!$defined_permissions && (!$item['origin'] || ($item['verb'] != Activity::ANNOUNCE))) {
$item['allow_cid'] = $toplevel_parent['allow_cid'];
$item['allow_gid'] = $toplevel_parent['allow_gid'];
$item['deny_cid'] = $toplevel_parent['deny_cid'];
@ -1016,7 +1018,7 @@ class Item
* This differs from the above settings as it subtly allows comments from
* email correspondents to be private even if the overall thread is not.
*/
if ($toplevel_parent['private']) {
if (!$defined_permissions && $toplevel_parent['private']) {
$item['private'] = $toplevel_parent['private'];
}
@ -1063,7 +1065,7 @@ class Item
}
// ACL settings
if (!empty($item['allow_cid'] . $item['allow_gid'] . $item['deny_cid'] . $item['deny_gid'])) {
if (!$defined_permissions && !empty($item['allow_cid'] . $item['allow_gid'] . $item['deny_cid'] . $item['deny_gid'])) {
$item['private'] = self::PRIVATE;
}
@ -1497,7 +1499,7 @@ class Item
$users = [];
/// @todo add a field "pcid" in the contact table that referrs to the public contact id.
/// @todo add a field "pcid" in the contact table that refers to the public contact id.
$owner = DBA::selectFirst('contact', ['url', 'nurl', 'alias'], ['id' => $parent['owner-id']]);
if (!DBA::isResult($owner)) {
return;
@ -2499,12 +2501,12 @@ class Item
*/
public static function enumeratePermissions(array $obj, bool $check_dead = false): array
{
$aclFormater = DI::aclFormatter();
$aclFormatter = DI::aclFormatter();
$allow_people = $aclFormater->expand($obj['allow_cid']);
$allow_groups = Group::expand($obj['uid'], $aclFormater->expand($obj['allow_gid']), $check_dead);
$deny_people = $aclFormater->expand($obj['deny_cid']);
$deny_groups = Group::expand($obj['uid'], $aclFormater->expand($obj['deny_gid']), $check_dead);
$allow_people = $aclFormatter->expand($obj['allow_cid']);
$allow_groups = Group::expand($obj['uid'], $aclFormatter->expand($obj['allow_gid']), $check_dead);
$deny_people = $aclFormatter->expand($obj['deny_cid']);
$deny_groups = Group::expand($obj['uid'], $aclFormatter->expand($obj['deny_gid']), $check_dead);
$recipients = array_unique(array_merge($allow_people, $allow_groups));
$deny = array_unique(array_merge($deny_people, $deny_groups));
$recipients = array_diff($recipients, $deny);
@ -2613,7 +2615,7 @@ class Item
* Activity verb. One of
* like, unlike, dislike, undislike, attendyes, unattendyes,
* attendno, unattendno, attendmaybe, unattendmaybe,
* announce, unannouce
* announce, unannounce
* @param int $uid
* @param string $allow_cid
* @param string $allow_gid

View File

@ -25,7 +25,7 @@ use Friendica\Util\ReversedFileReader;
use Friendica\Object\Log\ParsedLogLine;
/**
* An iterator which returns `\Friendica\Objec\Log\ParsedLogLine` instances
* An iterator which returns `\Friendica\Object\Log\ParsedLogLine` instances
*
* Uses `\Friendica\Util\ReversedFileReader` to fetch log lines
* from newest to oldest.

View File

@ -67,7 +67,7 @@ class Nodeinfo
DI::keyValue()->set('nodeinfo_local_posts', $posts);
DI::keyValue()->set('nodeinfo_local_comments', $comments);
$logger->info('User actitivy', ['posts' => $posts, 'comments' => $comments]);
$logger->info('User activity', ['posts' => $posts, 'comments' => $comments]);
}
/**

View File

@ -58,7 +58,7 @@ class OpenWebAuthToken
* @param int $uid The user ID.
* @param string $token
*
* @return string|boolean The meta enry or false if not found.
* @return string|boolean The meta entry or false if not found.
* @throws \Exception
*/
public static function getMeta(string $type, int $uid, string $token)

Some files were not shown because too many files have changed in this diff Show More