Merge remote-tracking branch 'upstream/2021.09-rc' into user-contact

This commit is contained in:
Michael 2021-09-12 12:36:04 +00:00
commit 19c3e55ca8
22 changed files with 2030 additions and 1835 deletions

View file

@ -96,6 +96,9 @@ kind: pipeline
type: docker type: docker
name: php7.3-mariadb name: php7.3-mariadb
depends_on:
- php7.3-lint
steps: steps:
- name: Restore cache - name: Restore cache
image: meltwater/drone-cache:dev image: meltwater/drone-cache:dev
@ -170,6 +173,9 @@ kind: pipeline
type: docker type: docker
name: php7.4-mariadb name: php7.4-mariadb
depends_on:
- php7.4-lint
steps: steps:
- name: Restore cache - name: Restore cache
image: meltwater/drone-cache:dev image: meltwater/drone-cache:dev
@ -256,6 +262,9 @@ kind: pipeline
type: docker type: docker
name: php8.0-mariadb name: php8.0-mariadb
depends_on:
- php8.0-lint
steps: steps:
- name: Restore cache - name: Restore cache
image: meltwater/drone-cache:dev image: meltwater/drone-cache:dev
@ -330,6 +339,11 @@ kind: pipeline
type: docker type: docker
name: continuous-deployment name: continuous-deployment
depends_on:
- php7.3-mariadb
- php7.4-mariadb
- php8.0-mariadb
trigger: trigger:
repo: repo:
- friendica/friendica - friendica/friendica
@ -376,7 +390,7 @@ steps:
--transform "s,^,$RELEASE/," --transform "s,^,$RELEASE/,"
-X mods/release-list-exclude.txt -X mods/release-list-exclude.txt
-T mods/release-list-include.txt -T mods/release-list-include.txt
-cvjf ./build/$ARTIFACT -cvzf ./build/$ARTIFACT
- # calculate SHA256 checksum - # calculate SHA256 checksum
- cd ./build - cd ./build
- sha256sum "$ARTIFACT" > "$ARTIFACT.sum256" - sha256sum "$ARTIFACT" > "$ARTIFACT.sum256"
@ -384,6 +398,18 @@ steps:
- # output the sha256 sum for checking - # output the sha256 sum for checking
- cat "$ARTIFACT.sum256" - cat "$ARTIFACT.sum256"
- sha256sum "$ARTIFACT" - sha256sum "$ARTIFACT"
- name: Sign artifacts
image: plugins/gpgsign
settings:
key:
from_secret: gpg_key
passphrase:
from_secret: gpg_password
files:
- build/*
exclude:
- build/*.sum256
detach_sign: true
- name: Upload artifacts - name: Upload artifacts
image: alpine image: alpine
environment: environment:
@ -422,6 +448,11 @@ kind: pipeline
type: docker type: docker
name: release-deployment name: release-deployment
depends_on:
- php7.3-mariadb
- php7.4-mariadb
- php8.0-mariadb
trigger: trigger:
repo: repo:
- friendica/friendica - friendica/friendica
@ -460,8 +491,6 @@ steps:
- apt-get install bzip2 - apt-get install bzip2
- mkdir ./build - mkdir ./build
- export VERSION="$(cat VERSION)" - export VERSION="$(cat VERSION)"
- mkdir ./build
- export VERSION="$(cat VERSION)"
- # Create artifact - # Create artifact
- export RELEASE="friendica-full-$VERSION" - export RELEASE="friendica-full-$VERSION"
- export ARTIFACT="$RELEASE.tar.gz" - export ARTIFACT="$RELEASE.tar.gz"
@ -469,7 +498,7 @@ steps:
--transform "s,^,$RELEASE/," --transform "s,^,$RELEASE/,"
-X mods/release-list-exclude.txt -X mods/release-list-exclude.txt
-T mods/release-list-include.txt -T mods/release-list-include.txt
-cvjf ./build/$ARTIFACT -cvzf ./build/$ARTIFACT
- # calculate SHA256 checksum - # calculate SHA256 checksum
- cd ./build - cd ./build
- sha256sum "$ARTIFACT" > "$ARTIFACT.sum256" - sha256sum "$ARTIFACT" > "$ARTIFACT.sum256"
@ -477,6 +506,18 @@ steps:
- # output the sha256 sum for checking - # output the sha256 sum for checking
- cat "$ARTIFACT.sum256" - cat "$ARTIFACT.sum256"
- sha256sum "$ARTIFACT" - sha256sum "$ARTIFACT"
- name: Sign artifacts
image: plugins/gpgsign
settings:
key:
from_secret: gpg_key
passphrase:
from_secret: gpg_password
files:
- build/*
exclude:
- build/*.sum256
detach_sign: true
- name: Upload artifacts - name: Upload artifacts
image: alpine image: alpine
environment: environment:

View file

@ -20,9 +20,6 @@ If you encounter installation issues, please let us know via the [helper](http:/
Please be as clear as you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future. Please be as clear as you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future.
Due to the large variety of operating systems and PHP platforms in existence we may have only limited ability to debug your PHP installation or acquire any missing modules - but we will do our best to solve any general code issues. Due to the large variety of operating systems and PHP platforms in existence we may have only limited ability to debug your PHP installation or acquire any missing modules - but we will do our best to solve any general code issues.
If you do not have a Friendica account yet, you can register a temporary one at [tryfriendica.de](https://tryfriendica.de) and join the forums mentioned above from there.
The account will expire after 7 days, but you can ask the server admin to keep your account longer, should the problem not be resolved after that.
## Prerequisites ## Prerequisites
* Choose a domain name or subdomain name for your server. Put some thought into this. While changing it after installation is supported, things still might break. * Choose a domain name or subdomain name for your server. Put some thought into this. While changing it after installation is supported, things still might break.
@ -31,7 +28,7 @@ The account will expire after 7 days, but you can ask the server admin to keep y
### Requirements ### Requirements
* Apache with mod-rewrite enabled and "Options All" so you can use a local `.htaccess` file * Apache with mod-rewrite enabled and "Options All" so you can use a local `.htaccess` file
* PHP 7+ (PHP 7.1+ is recommended for performance and official support) * PHP 7.2+ (PHP8 is not fully supported yet)
* PHP *command line* access with register_argc_argv set to true in the php.ini file * PHP *command line* access with register_argc_argv set to true in the php.ini file
* Curl, GD, PDO, mbstrings, MySQLi, hash, xml, zip and OpenSSL extensions * Curl, GD, PDO, mbstrings, MySQLi, hash, xml, zip and OpenSSL extensions
* The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it) * The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it)

View file

@ -15,9 +15,6 @@ Viele hingegen können es. Aber **bitte** prüfe die Voraussetzungen deines Serv
Wenn dir Fehler während der Installation auffallen, sag uns bitte über [Helper](http://forum.friendi.ca/profile/helpers) oder das [Entwickler Forum](https://forum.friendi.ca/profile/developers) Bescheid oder [erstelle ein Issue](https://github.com/friendica/friendica/issues). Wenn dir Fehler während der Installation auffallen, sag uns bitte über [Helper](http://forum.friendi.ca/profile/helpers) oder das [Entwickler Forum](https://forum.friendi.ca/profile/developers) Bescheid oder [erstelle ein Issue](https://github.com/friendica/friendica/issues).
Gib uns bitte so viele Infos zu deinem System, wie du kannst, und beschreibe den Fehler mit allen Details und Fehlermeldungen, so dass wir den Fehler zukünftig verhindern können. Gib uns bitte so viele Infos zu deinem System, wie du kannst, und beschreibe den Fehler mit allen Details und Fehlermeldungen, so dass wir den Fehler zukünftig verhindern können.
Aufgrund der großen Anzahl an verschiedenen Betriebssystemen und PHP-Plattformen haben wir nur geringe Kapazitäten, um deine PHP-Installation zu debuggen oder fehlende Module zu ersetzen, aber wir tun unser Bestes, um allgemeine Code-Fehler zu beheben. Aufgrund der großen Anzahl an verschiedenen Betriebssystemen und PHP-Plattformen haben wir nur geringe Kapazitäten, um deine PHP-Installation zu debuggen oder fehlende Module zu ersetzen, aber wir tun unser Bestes, um allgemeine Code-Fehler zu beheben.
Falls du noch keinen Friendica-Account hast, kannst du dir einen temporären Account hier erstellen: [tryfriendica.de](https://tryfriendica.de).
Darüber kannst du den genannten Forum beitreten.
Der Account wird nach 7 Tagen ablaufen, aber du kannst einen Server-Admin fragen, diesen Account länger zu erhalten, sollte das Problem nicht innerhalb dieser Zeit gelöst sein.
Bevor du anfängst: suche dir einen Domain- oder Subdomainnamen für deinen Server. Bevor du anfängst: suche dir einen Domain- oder Subdomainnamen für deinen Server.
Dinge verändern sich und einige deiner Freunde haben möglicherweise Probleme, mit dir zu kommunizieren. Dinge verändern sich und einige deiner Freunde haben möglicherweise Probleme, mit dir zu kommunizieren.
@ -28,7 +25,7 @@ Requirements
--- ---
* Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst * Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
* PHP 7+ (PHP 7.1+ wird für Performance und offiziellen Support empfohlen) * PHP 7.2+ (PHP 8 wird noch nicht komplett unterstützt)
* PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei * PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
* Curl, GD, PDO, MySQLi, xml, zip und OpenSSL-Erweiterung * Curl, GD, PDO, MySQLi, xml, zip und OpenSSL-Erweiterung
* Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert) * Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert)

View file

@ -327,8 +327,13 @@ class BBCode
} }
} }
} elseif (count($pictures) > 0) { } elseif (count($pictures) > 0) {
$post['type'] = 'link'; if (count($pictures) > 4) {
$post['url'] = $plink; $post['type'] = 'link';
$post['url'] = $plink;
} else {
$post['type'] = 'photo';
}
$post['image'] = $pictures[0][2]; $post['image'] = $pictures[0][2];
$post['text'] = $body; $post['text'] = $body;
@ -2289,14 +2294,14 @@ class BBCode
} }
/** /**
* Expand tags to URLs * Expand tags to URLs, checks the tag is at the start of a line or preceded by a non-word character
* *
* @param string $body * @param string $body
* @return string body with expanded tags * @return string body with expanded tags
*/ */
public static function expandTags(string $body) public static function expandTags(string $body)
{ {
return preg_replace_callback("/([!#@])([^\^ \x0D\x0A,;:?\']*[^\^ \x0D\x0A,;:?!\'.])/", return preg_replace_callback("/(?<=\W|^)([!#@])([^\^ \x0D\x0A,;:?'\"]*[^\^ \x0D\x0A,;:?!'\".])/",
function ($match) { function ($match) {
switch ($match[1]) { switch ($match[1]) {
case '!': case '!':
@ -2309,6 +2314,7 @@ class BBCode
} }
break; break;
case '#': case '#':
default:
return $match[1] . '[url=' . 'https://' . DI::baseUrl() . '/search?tag=' . $match[2] . ']' . $match[2] . '[/url]'; return $match[1] . '[url=' . 'https://' . DI::baseUrl() . '/search?tag=' . $match[2] . ']' . $match[2] . '[/url]';
} }
}, $body); }, $body);

View file

@ -659,6 +659,12 @@ class Item
$params = ['order' => ['id' => false]]; $params = ['order' => ['id' => false]];
$parent = Post::selectFirst($fields, $condition, $params); $parent = Post::selectFirst($fields, $condition, $params);
if (!DBA::isResult($parent) && $item['origin']) {
$stored = Item::storeForUserByUriId($item['thr-parent-id'], $item['uid']);
Logger::info('Stored thread parent item for user', ['uri-id' => $item['thr-parent-id'], 'uid' => $item['uid'], 'stored' => $stored]);
$parent = Post::selectFirst($fields, $condition, $params);
}
if (!DBA::isResult($parent)) { if (!DBA::isResult($parent)) {
Logger::notice('item parent was not found - ignoring item', ['thr-parent-id' => $item['thr-parent-id'], 'uid' => $item['uid']]); Logger::notice('item parent was not found - ignoring item', ['thr-parent-id' => $item['thr-parent-id'], 'uid' => $item['uid']]);
return []; return [];
@ -673,6 +679,13 @@ class Item
'uid' => $parent['uid']]; 'uid' => $parent['uid']];
$params = ['order' => ['id' => false]]; $params = ['order' => ['id' => false]];
$toplevel_parent = Post::selectFirst($fields, $condition, $params); $toplevel_parent = Post::selectFirst($fields, $condition, $params);
if (!DBA::isResult($toplevel_parent) && $item['origin']) {
$stored = Item::storeForUserByUriId($item['parent-uri-id'], $item['uid']);
Logger::info('Stored parent item for user', ['uri-id' => $item['parent-uri-id'], 'uid' => $item['uid'], 'stored' => $stored]);
$toplevel_parent = Post::selectFirst($fields, $condition, $params);
}
if (!DBA::isResult($toplevel_parent)) { if (!DBA::isResult($toplevel_parent)) {
Logger::notice('item top level parent was not found - ignoring item', ['parent-uri-id' => $parent['parent-uri-id'], 'uid' => $parent['uid']]); Logger::notice('item top level parent was not found - ignoring item', ['parent-uri-id' => $parent['parent-uri-id'], 'uid' => $parent['uid']]);
return []; return [];

View file

@ -162,6 +162,7 @@ class Site extends BaseAdmin
$disable_embedded = !empty($_POST['disable_embedded']); $disable_embedded = !empty($_POST['disable_embedded']);
$allow_users_remote_self = !empty($_POST['allow_users_remote_self']); $allow_users_remote_self = !empty($_POST['allow_users_remote_self']);
$explicit_content = !empty($_POST['explicit_content']); $explicit_content = !empty($_POST['explicit_content']);
$proxify_content = !empty($_POST['proxify_content']);
$enable_multi_reg = !empty($_POST['enable_multi_reg']); $enable_multi_reg = !empty($_POST['enable_multi_reg']);
$enable_openid = !empty($_POST['enable_openid']); $enable_openid = !empty($_POST['enable_openid']);
@ -328,6 +329,7 @@ class Site extends BaseAdmin
DI::config()->set('system', 'disable_embedded' , $disable_embedded); DI::config()->set('system', 'disable_embedded' , $disable_embedded);
DI::config()->set('system', 'allow_users_remote_self', $allow_users_remote_self); DI::config()->set('system', 'allow_users_remote_self', $allow_users_remote_self);
DI::config()->set('system', 'explicit_content' , $explicit_content); DI::config()->set('system', 'explicit_content' , $explicit_content);
DI::config()->set('system', 'proxify_content' , $proxify_content);
DI::config()->set('system', 'check_new_version_url' , $check_new_version_url); DI::config()->set('system', 'check_new_version_url' , $check_new_version_url);
DI::config()->set('system', 'block_extended_register', !$enable_multi_reg); DI::config()->set('system', 'block_extended_register', !$enable_multi_reg);
@ -551,6 +553,7 @@ class Site extends BaseAdmin
'$private_addons' => ['private_addons', DI::l10n()->t('Disallow public access to addons listed in the apps menu.'), DI::config()->get('config', 'private_addons'), DI::l10n()->t('Checking this box will restrict addons listed in the apps menu to members only.')], '$private_addons' => ['private_addons', DI::l10n()->t('Disallow public access to addons listed in the apps menu.'), DI::config()->get('config', 'private_addons'), DI::l10n()->t('Checking this box will restrict addons listed in the apps menu to members only.')],
'$disable_embedded' => ['disable_embedded', DI::l10n()->t('Don\'t embed private images in posts'), DI::config()->get('system', 'disable_embedded'), DI::l10n()->t('Don\'t replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while.')], '$disable_embedded' => ['disable_embedded', DI::l10n()->t('Don\'t embed private images in posts'), DI::config()->get('system', 'disable_embedded'), DI::l10n()->t('Don\'t replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while.')],
'$explicit_content' => ['explicit_content', DI::l10n()->t('Explicit Content'), DI::config()->get('system', 'explicit_content'), DI::l10n()->t('Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page.')], '$explicit_content' => ['explicit_content', DI::l10n()->t('Explicit Content'), DI::config()->get('system', 'explicit_content'), DI::l10n()->t('Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page.')],
'$proxify_content' => ['proxify_content', DI::l10n()->t('Proxify external content'), DI::config()->get('system', 'proxify_content'), DI::l10n()->t('Route external content via the proxy functionality. This is used for example for some OEmbed accesses and in some other rare cases.')],
'$allow_users_remote_self'=> ['allow_users_remote_self', DI::l10n()->t('Allow Users to set remote_self'), DI::config()->get('system', 'allow_users_remote_self'), DI::l10n()->t('With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream.')], '$allow_users_remote_self'=> ['allow_users_remote_self', DI::l10n()->t('Allow Users to set remote_self'), DI::config()->get('system', 'allow_users_remote_self'), DI::l10n()->t('With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream.')],
'$enable_multi_reg' => ['enable_multi_reg', DI::l10n()->t('Enable multiple registrations'), !DI::config()->get('system', 'block_extended_register'), DI::l10n()->t('Enable users to register additional accounts for use as pages.')], '$enable_multi_reg' => ['enable_multi_reg', DI::l10n()->t('Enable multiple registrations'), !DI::config()->get('system', 'block_extended_register'), DI::l10n()->t('Enable users to register additional accounts for use as pages.')],
'$enable_openid' => ['enable_openid', DI::l10n()->t('Enable OpenID'), !DI::config()->get('system', 'no_openid'), DI::l10n()->t('Enable OpenID support for registration and logins.')], '$enable_openid' => ['enable_openid', DI::l10n()->t('Enable OpenID'), !DI::config()->get('system', 'no_openid'), DI::l10n()->t('Enable OpenID support for registration and logins.')],

View file

@ -63,7 +63,10 @@ class Statuses extends BaseApi
// The imput is defined as text. So we can use Markdown for some enhancements // The imput is defined as text. So we can use Markdown for some enhancements
$body = Markdown::toBBCode($request['status']); $body = Markdown::toBBCode($request['status']);
$body = BBCode::expandTags($body); // Avoids potential double expansion of existing links
$body = BBCode::performWithEscapedTags($body, ['url'], function ($body) {
return BBCode::expandTags($body);
});
$item = []; $item = [];
$item['uid'] = $uid; $item['uid'] = $uid;

View file

@ -59,6 +59,10 @@ class Contact extends BaseModule
return; return;
} }
$redirectUrl = $_POST['redirect_url'] ?? 'contact';
self::checkFormSecurityTokenRedirectOnError($redirectUrl, 'contact_batch_actions');
$orig_records = Model\Contact::selectToArray(['id', 'uid'], ['id' => $_POST['contact_batch'], 'uid' => [0, local_user()], 'self' => false, 'deleted' => false]); $orig_records = Model\Contact::selectToArray(['id', 'uid'], ['id' => $_POST['contact_batch'], 'uid' => [0, local_user()], 'self' => false, 'deleted' => false]);
$count_actions = 0; $count_actions = 0;
@ -93,7 +97,7 @@ class Contact extends BaseModule
info(DI::l10n()->tt('%d contact edited.', '%d contacts edited.', $count_actions)); info(DI::l10n()->tt('%d contact edited.', '%d contacts edited.', $count_actions));
} }
DI::baseUrl()->redirect($_POST['redirect_url'] ?? 'contact'); DI::baseUrl()->redirect($redirectUrl);
} }
public static function post(array $parameters = []) public static function post(array $parameters = [])
@ -361,6 +365,16 @@ class Contact extends BaseModule
throw new NotFoundException(DI::l10n()->t('Contact not found')); throw new NotFoundException(DI::l10n()->t('Contact not found'));
} }
if ($cmd === 'posts') {
return self::getPostsHTML($a, $contact_id);
}
if ($cmd === 'conversations') {
return self::getConversationsHMTL($a, $contact_id, $update);
}
self::checkFormSecurityTokenRedirectOnError('contact/' . $contact_id, 'contact_action', 't');
$cdata = Model\Contact::getPublicAndUserContactID($orig_record['id'], local_user()); $cdata = Model\Contact::getPublicAndUserContactID($orig_record['id'], local_user());
if (empty($cdata)) { if (empty($cdata)) {
throw new NotFoundException(DI::l10n()->t('Contact not found')); throw new NotFoundException(DI::l10n()->t('Contact not found'));
@ -434,12 +448,6 @@ class Contact extends BaseModule
DI::baseUrl()->redirect('contact'); DI::baseUrl()->redirect('contact');
// NOTREACHED // NOTREACHED
} }
if ($cmd === 'posts') {
return self::getPostsHTML($a, $contact_id);
}
if ($cmd === 'conversations') {
return self::getConversationsHMTL($a, $contact_id, $update);
}
} }
$_SESSION['return_path'] = DI::args()->getQueryString(); $_SESSION['return_path'] = DI::args()->getQueryString();
@ -840,6 +848,7 @@ class Contact extends BaseModule
'$submit' => DI::l10n()->t('Find'), '$submit' => DI::l10n()->t('Find'),
'$cmd' => DI::args()->getCommand(), '$cmd' => DI::args()->getCommand(),
'$contacts' => $contacts, '$contacts' => $contacts,
'$form_security_token' => BaseModule::getFormSecurityToken('contact_batch_actions'),
'$contact_drop_confirm' => DI::l10n()->t('Do you really want to delete this contact?'), '$contact_drop_confirm' => DI::l10n()->t('Do you really want to delete this contact?'),
'multiselect' => 1, 'multiselect' => 1,
'$batch_actions' => [ '$batch_actions' => [
@ -1080,6 +1089,8 @@ class Contact extends BaseModule
$poll_enabled = in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::OSTATUS, Protocol::FEED, Protocol::MAIL]); $poll_enabled = in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::OSTATUS, Protocol::FEED, Protocol::MAIL]);
$contact_actions = []; $contact_actions = [];
$formSecurityToken = self::getFormSecurityToken('contact_action');
// Provide friend suggestion only for Friendica contacts // Provide friend suggestion only for Friendica contacts
if ($contact['network'] === Protocol::DFRN) { if ($contact['network'] === Protocol::DFRN) {
$contact_actions['suggest'] = [ $contact_actions['suggest'] = [
@ -1094,7 +1105,7 @@ class Contact extends BaseModule
if ($poll_enabled) { if ($poll_enabled) {
$contact_actions['update'] = [ $contact_actions['update'] = [
'label' => DI::l10n()->t('Update now'), 'label' => DI::l10n()->t('Update now'),
'url' => 'contact/' . $contact['id'] . '/update', 'url' => 'contact/' . $contact['id'] . '/update?t=' . $formSecurityToken,
'title' => '', 'title' => '',
'sel' => '', 'sel' => '',
'id' => 'update', 'id' => 'update',
@ -1104,7 +1115,7 @@ class Contact extends BaseModule
if (in_array($contact['network'], Protocol::NATIVE_SUPPORT)) { if (in_array($contact['network'], Protocol::NATIVE_SUPPORT)) {
$contact_actions['updateprofile'] = [ $contact_actions['updateprofile'] = [
'label' => DI::l10n()->t('Refetch contact data'), 'label' => DI::l10n()->t('Refetch contact data'),
'url' => 'contact/' . $contact['id'] . '/updateprofile', 'url' => 'contact/' . $contact['id'] . '/updateprofile?t=' . $formSecurityToken,
'title' => '', 'title' => '',
'sel' => '', 'sel' => '',
'id' => 'updateprofile', 'id' => 'updateprofile',
@ -1113,7 +1124,7 @@ class Contact extends BaseModule
$contact_actions['block'] = [ $contact_actions['block'] = [
'label' => (intval($contact['blocked']) ? DI::l10n()->t('Unblock') : DI::l10n()->t('Block')), 'label' => (intval($contact['blocked']) ? DI::l10n()->t('Unblock') : DI::l10n()->t('Block')),
'url' => 'contact/' . $contact['id'] . '/block', 'url' => 'contact/' . $contact['id'] . '/block?t=' . $formSecurityToken,
'title' => DI::l10n()->t('Toggle Blocked status'), 'title' => DI::l10n()->t('Toggle Blocked status'),
'sel' => (intval($contact['blocked']) ? 'active' : ''), 'sel' => (intval($contact['blocked']) ? 'active' : ''),
'id' => 'toggle-block', 'id' => 'toggle-block',
@ -1121,7 +1132,7 @@ class Contact extends BaseModule
$contact_actions['ignore'] = [ $contact_actions['ignore'] = [
'label' => (intval($contact['readonly']) ? DI::l10n()->t('Unignore') : DI::l10n()->t('Ignore')), 'label' => (intval($contact['readonly']) ? DI::l10n()->t('Unignore') : DI::l10n()->t('Ignore')),
'url' => 'contact/' . $contact['id'] . '/ignore', 'url' => 'contact/' . $contact['id'] . '/ignore?t=' . $formSecurityToken,
'title' => DI::l10n()->t('Toggle Ignored status'), 'title' => DI::l10n()->t('Toggle Ignored status'),
'sel' => (intval($contact['readonly']) ? 'active' : ''), 'sel' => (intval($contact['readonly']) ? 'active' : ''),
'id' => 'toggle-ignore', 'id' => 'toggle-ignore',
@ -1130,7 +1141,7 @@ class Contact extends BaseModule
if ($contact['uid'] != 0) { if ($contact['uid'] != 0) {
$contact_actions['delete'] = [ $contact_actions['delete'] = [
'label' => DI::l10n()->t('Delete'), 'label' => DI::l10n()->t('Delete'),
'url' => 'contact/' . $contact['id'] . '/drop', 'url' => 'contact/' . $contact['id'] . '/drop?t=' . $formSecurityToken,
'title' => DI::l10n()->t('Delete contact'), 'title' => DI::l10n()->t('Delete contact'),
'sel' => '', 'sel' => '',
'id' => 'delete', 'id' => 'delete',

View file

@ -24,6 +24,7 @@ namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI;
use Friendica\Object\Image; use Friendica\Object\Image;
use Friendica\Util\HTTPSignature; use Friendica\Util\HTTPSignature;
use Friendica\Util\Images; use Friendica\Util\Images;
@ -44,6 +45,13 @@ class Proxy extends BaseModule
*/ */
public static function rawContent(array $parameters = []) public static function rawContent(array $parameters = [])
{ {
$request = self::getRequestInfo($parameters);
if (!DI::config()->get('system', 'proxify_content')) {
Logger::notice('Proxy access is forbidden', ['request' => $request, 'agent' => $_SERVER['HTTP_USER_AGENT'] ?? '', 'accept' => $_SERVER['HTTP_ACCEPT'] ?? '']);
throw new \Friendica\Network\HTTPException\NotFoundException();
}
if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"])) { if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"])) {
header("HTTP/1.1 304 Not Modified"); header("HTTP/1.1 304 Not Modified");
header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . " GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . " GMT");
@ -60,8 +68,6 @@ class Proxy extends BaseModule
exit; exit;
} }
$request = self::getRequestInfo($parameters);
if (empty($request['url'])) { if (empty($request['url'])) {
throw new \Friendica\Network\HTTPException\BadRequestException(); throw new \Friendica\Network\HTTPException\BadRequestException();
} }

View file

@ -82,6 +82,10 @@ class Proxy
*/ */
public static function proxifyUrl($url, $size = '') public static function proxifyUrl($url, $size = '')
{ {
if (!DI::config()->get('system', 'proxify_content')) {
return $url;
}
// Trim URL first // Trim URL first
$url = trim($url); $url = trim($url);

View file

@ -744,7 +744,7 @@ class Notifier
// Also don't deliver when the direct thread parent was delivered via Diaspora // Also don't deliver when the direct thread parent was delivered via Diaspora
if ($thr_parent['network'] == Protocol::DIASPORA) { if ($thr_parent['network'] == Protocol::DIASPORA) {
Logger::info('Threat parent network is Diaspora, so no AP delivery'); Logger::info('Thread parent network is Diaspora, so no AP delivery');
return ['count' => 0, 'contacts' => []]; return ['count' => 0, 'contacts' => []];
} }

View file

@ -429,10 +429,6 @@ return [
// Enable internal timings to help optimize code. Needed for "rendertime" addon. // Enable internal timings to help optimize code. Needed for "rendertime" addon.
'profiler' => false, 'profiler' => false,
// proxy_cache_time (Integer)
// Period in seconds after which the cache is cleared.
'proxy_cache_time' => 86400,
// pushpoll_frequency (Integer) // pushpoll_frequency (Integer)
// Frequency of contact poll for subhub contact using the DFRM or OStatus network. // Frequency of contact poll for subhub contact using the DFRM or OStatus network.
// Available values: // Available values:

View file

@ -164,6 +164,10 @@ return [
// Comma separated list of tags that are rejected. // Comma separated list of tags that are rejected.
'relay_deny_tags' => '', 'relay_deny_tags' => '',
// proxify_content (Boolean)
// Use the proxy functionality for fetching external content
'proxify_content' => true,
// relay_directly (Boolean) // relay_directly (Boolean)
// Directly transmit content to relay subscribers without using a relay server // Directly transmit content to relay subscribers without using a relay server
'relay_directly' => false, 'relay_directly' => false,

View file

@ -75,6 +75,7 @@ class BBCodeTest extends MockedTest
->andReturn($baseUrlMock); ->andReturn($baseUrlMock);
$baseUrlMock->shouldReceive('getHostname')->withNoArgs()->andReturn('friendica.local'); $baseUrlMock->shouldReceive('getHostname')->withNoArgs()->andReturn('friendica.local');
$baseUrlMock->shouldReceive('getUrlPath')->withNoArgs()->andReturn(''); $baseUrlMock->shouldReceive('getUrlPath')->withNoArgs()->andReturn('');
$baseUrlMock->shouldReceive('__toString')->withNoArgs()->andReturn('friendica.local');
$config = \HTMLPurifier_HTML5Config::createDefault(); $config = \HTMLPurifier_HTML5Config::createDefault();
$config->set('HTML.Doctype', 'HTML5'); $config->set('HTML.Doctype', 'HTML5');
@ -339,4 +340,31 @@ class BBCodeTest extends MockedTest
self::assertEquals($expected, $actual); self::assertEquals($expected, $actual);
} }
public function dataExpandTags()
{
return [
'bug-10692-non-word' => [
'[url=https://github.com/friendica/friendica/blob/2021.09-rc/src/Util/Logger/StreamLogger.php#L160]https://github.com/friendica/friendica/blob/2021.09-rc/src/Util/Logger/StreamLogger.php#L160[/url]',
'[url=https://github.com/friendica/friendica/blob/2021.09-rc/src/Util/Logger/StreamLogger.php#L160]https://github.com/friendica/friendica/blob/2021.09-rc/src/Util/Logger/StreamLogger.php#L160[/url]',
],
'bug-10692-start-line' => [
'#[url=https://friendica.local/search?tag=L160]L160[/url]',
'#L160',
]
];
}
/**
* @dataProvider dataExpandTags
*
* @param string $expected Expected BBCode output
* @param string $text Input text
*/
public function testExpandTags(string $expected, string $text)
{
$actual = BBCode::expandTags($text);
self::assertEquals($expected, $actual);
}
} }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -117,35 +117,18 @@ $a->strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s személye
$a->strings["a private message"] = "egy személyes üzenetet"; $a->strings["a private message"] = "egy személyes üzenetet";
$a->strings["%1\$s sent you %2\$s."] = "%1\$s küldött Önnek %2\$s."; $a->strings["%1\$s sent you %2\$s."] = "%1\$s küldött Önnek %2\$s.";
$a->strings["Please visit %s to view and/or reply to your private messages."] = "Látogassa meg a(z) %s oldalt a személyes üzenete megtekintéséhez és/vagy megválaszolásához."; $a->strings["Please visit %s to view and/or reply to your private messages."] = "Látogassa meg a(z) %s oldalt a személyes üzenete megtekintéséhez és/vagy megválaszolásához.";
$a->strings["%1\$s replied to you on %2\$s's %3\$s %4\$s"] = "%1\$s válaszolt Önnek egy %2\$s által megosztott %3\$s kapcsán: %4\$s";
$a->strings["%1\$s tagged you on %2\$s's %3\$s %4\$s"] = "%1\$s bejelölte Önt egy %2\$s által megosztott %3\$s kapcsán: %4\$s";
$a->strings["%1\$s commented on %2\$s's %3\$s %4\$s"] = "%1\$s hozzászólt egy %2\$s által megosztott %3\$s kapcsán: %4\$s"; $a->strings["%1\$s commented on %2\$s's %3\$s %4\$s"] = "%1\$s hozzászólt egy %2\$s által megosztott %3\$s kapcsán: %4\$s";
$a->strings["%1\$s replied to you on your %2\$s %3\$s"] = "%1\$s válaszolt Önnek egy vele megosztott %2\$s kapcsán: %3\$s";
$a->strings["%1\$s tagged you on your %2\$s %3\$s"] = "%1\$s bejelölte Önt egy vele megosztott %2\$s kapcsán: %3\$s";
$a->strings["%1\$s commented on your %2\$s %3\$s"] = "%1\$s hozzászólt egy vele megosztott %2\$s kapcsán: %3\$s"; $a->strings["%1\$s commented on your %2\$s %3\$s"] = "%1\$s hozzászólt egy vele megosztott %2\$s kapcsán: %3\$s";
$a->strings["%1\$s replied to you on their %2\$s %3\$s"] = "%1\$s válaszolt Önnek egy saját %2\$s kapcsán: %3\$s";
$a->strings["%1\$s tagged you on their %2\$s %3\$s"] = "%1\$s bejelölte Önt egy saját %2\$s kapcsán: %3\$s";
$a->strings["%1\$s commented on their %2\$s %3\$s"] = "%1\$s hozzászólt egy saját %2\$s kapcsán: %3\$s"; $a->strings["%1\$s commented on their %2\$s %3\$s"] = "%1\$s hozzászólt egy saját %2\$s kapcsán: %3\$s";
$a->strings["%s %s tagged you"] = "%s %s bejelölte Önt";
$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s bejelölte Önt itt: %2\$s";
$a->strings["%1\$s Comment to conversation #%2\$d by %3\$s"] = "%1\$s Hozzászólás a #%2\$d beszélgetéshez %3\$s által"; $a->strings["%1\$s Comment to conversation #%2\$d by %3\$s"] = "%1\$s Hozzászólás a #%2\$d beszélgetéshez %3\$s által";
$a->strings["%s commented on an item/conversation you have been following."] = "%s hozzászólt egy olyan elemhez vagy beszélgetéshez, amelyet Ön követ."; $a->strings["%s commented on an item/conversation you have been following."] = "%s hozzászólt egy olyan elemhez vagy beszélgetéshez, amelyet Ön követ.";
$a->strings["Please visit %s to view and/or reply to the conversation."] = "Látogassa meg a %s oldalt a beszélgetés megtekintéséhez és/vagy megválaszolásához."; $a->strings["Please visit %s to view and/or reply to the conversation."] = "Látogassa meg a %s oldalt a beszélgetés megtekintéséhez és/vagy megválaszolásához.";
$a->strings["%s %s posted to your profile wall"] = "%s %s bejegyzést írt az Ön profilfalára"; $a->strings["%s %s posted to your profile wall"] = "%s %s bejegyzést írt az Ön profilfalára";
$a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s bejegyzést írt az Ön profilfalára itt: %2\$s"; $a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s bejegyzést írt az Ön profilfalára itt: %2\$s";
$a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = "%1\$s bejegyzést írt [url=%2\$s]az Ön falára[/url]"; $a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = "%1\$s bejegyzést írt [url=%2\$s]az Ön falára[/url]";
$a->strings["%s %s shared a new post"] = "%s %s megosztott egy új bejegyzést";
$a->strings["%1\$s shared a new post at %2\$s"] = "%1\$s megosztott egy új bejegyzést itt: %2\$s";
$a->strings["%1\$s [url=%2\$s]shared a post[/url]."] = "%1\$s [url=%2\$s]megosztott egy bejegyzést[/url].";
$a->strings["%s %s shared a post from %s"] = "%s %s megosztott egy %s által közzétett bejegyzést";
$a->strings["%1\$s shared a post from %2\$s at %3\$s"] = "%1\$s megosztott egy %2\$s által közzétett bejegyzést itt: %3\$s";
$a->strings["%1\$s [url=%2\$s]shared a post[/url] from %3\$s."] = "%1\$s [url=%2\$s]megosztott egy %3\$s által közzétett bejegyzést[/url].";
$a->strings["%1\$s %2\$s poked you"] = "%1\$s %2\$s megbökte Önt"; $a->strings["%1\$s %2\$s poked you"] = "%1\$s %2\$s megbökte Önt";
$a->strings["%1\$s poked you at %2\$s"] = "%1\$s megbökte Önt itt: %2\$s"; $a->strings["%1\$s poked you at %2\$s"] = "%1\$s megbökte Önt itt: %2\$s";
$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "%1\$s [url=%2\$s]megbökte Önt[/url]."; $a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "%1\$s [url=%2\$s]megbökte Önt[/url].";
$a->strings["%s %s tagged your post"] = "%s %s bejelölte az Ön bejegyzését";
$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s bejelölte az Ön bejegyzését itt: %2\$s";
$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = "%1\$s bejelölte [url=%2\$s]az Ön bejegyzését[/url]";
$a->strings["%s Introduction received"] = "%s Bemutatkozás érkezett"; $a->strings["%s Introduction received"] = "%s Bemutatkozás érkezett";
$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Kapott egy %1\$s által elküldött bemutatkozását itt: %2\$s"; $a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Kapott egy %1\$s által elküldött bemutatkozását itt: %2\$s";
$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = "Kapott egy %2\$s által elküldött [url=%1\$s]bemutatkozást[/url]."; $a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = "Kapott egy %2\$s által elküldött [url=%1\$s]bemutatkozást[/url].";
@ -175,6 +158,8 @@ $a->strings["You've received a registration request from '%1\$s' at %2\$s"] = "K
$a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = "Kapott egy %2\$s által elküldött [url=%1\$s]regisztrációs kérést[/url]."; $a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = "Kapott egy %2\$s által elküldött [url=%1\$s]regisztrációs kérést[/url].";
$a->strings["Full Name:\t%s\nSite Location:\t%s\nLogin Name:\t%s (%s)"] = "Teljes név:\t%s\nOldal címe:\t%s\nBejelentkezési név:\t%s (%s)"; $a->strings["Full Name:\t%s\nSite Location:\t%s\nLogin Name:\t%s (%s)"] = "Teljes név:\t%s\nOldal címe:\t%s\nBejelentkezési név:\t%s (%s)";
$a->strings["Please visit %s to approve or reject the request."] = "Látogassa meg a(z) %s oldalt a kérés jóváhagyásához vagy visszautasításához."; $a->strings["Please visit %s to approve or reject the request."] = "Látogassa meg a(z) %s oldalt a kérés jóváhagyásához vagy visszautasításához.";
$a->strings["%s %s tagged you"] = "%s %s bejelölte Önt";
$a->strings["%s %s shared a new post"] = "%s %s megosztott egy új bejegyzést";
$a->strings["Permission denied."] = "Hozzáférés megtagadva."; $a->strings["Permission denied."] = "Hozzáférés megtagadva.";
$a->strings["Access denied."] = "Hozzáférés megtagadva."; $a->strings["Access denied."] = "Hozzáférés megtagadva.";
$a->strings["User not found."] = "A felhasználó nem található."; $a->strings["User not found."] = "A felhasználó nem található.";
@ -423,10 +408,10 @@ $a->strings["Social Networks"] = "Közösségi hálózatok";
$a->strings["General Social Media Settings"] = "Általános közösségimédia-beállítások"; $a->strings["General Social Media Settings"] = "Általános közösségimédia-beállítások";
$a->strings["Accept only top level posts by contacts you follow"] = "Csak felső szintű bejegyzések elfogadása azoktól a partnerektől, akiket követ"; $a->strings["Accept only top level posts by contacts you follow"] = "Csak felső szintű bejegyzések elfogadása azoktól a partnerektől, akiket követ";
$a->strings["The system does an auto completion of threads when a comment arrives. This has got the side effect that you can receive posts that had been started by a non-follower but had been commented by someone you follow. This setting deactivates this behaviour. When activated, you strictly only will receive posts from people you really do follow."] = "A rendszer elvégezi a szálak automatikus kiegészítést, ha egy hozzászólás érkezik. Ennek az a mellékhatása, hogy olyan bejegyzéseket is kaphat, amelyeket egy nem követő indított el, de valaki olyan szólt hozzá, akit Ön követ. Ez a beállítás kikapcsolja ezt a viselkedést. Ha be van kapcsolva, akkor szigorúan csak olyan emberektől fog bejegyzéseket kapni, akiket valóban követ."; $a->strings["The system does an auto completion of threads when a comment arrives. This has got the side effect that you can receive posts that had been started by a non-follower but had been commented by someone you follow. This setting deactivates this behaviour. When activated, you strictly only will receive posts from people you really do follow."] = "A rendszer elvégezi a szálak automatikus kiegészítést, ha egy hozzászólás érkezik. Ennek az a mellékhatása, hogy olyan bejegyzéseket is kaphat, amelyeket egy nem követő indított el, de valaki olyan szólt hozzá, akit Ön követ. Ez a beállítás kikapcsolja ezt a viselkedést. Ha be van kapcsolva, akkor szigorúan csak olyan emberektől fog bejegyzéseket kapni, akiket valóban követ.";
$a->strings["Disable Content Warning"] = "Tartalomfigyelmeztetés letiltása"; $a->strings["Enable Content Warning"] = "Tartalomfigyelmeztetés engedélyezése";
$a->strings["Users on networks like Mastodon or Pleroma are able to set a content warning field which collapse their post by default. This disables the automatic collapsing and sets the content warning as the post title. Doesn't affect any other content filtering you eventually set up."] = "Például a Mastodon vagy a Pleroma hálózatán lévő felhasználók képesek egy olyan tartalomfigyelmeztetési mezőt beállítani, amely alapértelmezetten összecsukja a bejegyzéseiket. Ez letiltja az automatikus összecsukást, és beállítja a tartalomfigyelmeztetést a bejegyzés címeként. Nincs hatással semmilyen más tartalomszűrésre, amelyet végül beállított."; $a->strings["Users on networks like Mastodon or Pleroma are able to set a content warning field which collapse their post by default. This enables the automatic collapsing instead of setting the content warning as the post title. Doesn't affect any other content filtering you eventually set up."] = "Például a Mastodon vagy a Pleroma hálózatán lévő felhasználók képesek egy olyan tartalomfigyelmeztetési mezőt beállítani, amely alapértelmezetten összecsukja a bejegyzéseiket. Ez engedélyezi az automatikus összecsukást, ahelyett hogy beállítaná a tartalomfigyelmeztetést a bejegyzés címeként. Nincs hatással semmilyen más tartalomszűrésre, amelyet végül beállított.";
$a->strings["Disable intelligent shortening"] = "Intelligens rövidítés letiltása"; $a->strings["Enable intelligent shortening"] = "Intelligens rövidítés engedélyezése";
$a->strings["Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post."] = "Általában a rendszer megpróbálja megkeresni a legjobb hivatkozást a rövidített bejegyzésekhez történő hozzáadáshoz. Ha ez a beállítás engedélyezve van, akkor minden egyes rövidített bejegyzés mindig az eredeti Friendica bejegyzésre fog mutatni."; $a->strings["Normally the system tries to find the best link to add to shortened posts. If disabled, every shortened post will always point to the original friendica post."] = "Általában a rendszer megpróbálja megkeresni a legjobb hivatkozást a rövidített bejegyzésekhez történő hozzáadáshoz. Ha le van tiltva, akkor minden egyes rövidített bejegyzés mindig az eredeti Friendica bejegyzésre fog mutatni.";
$a->strings["Enable simple text shortening"] = "Egyszerű szövegrövidítés engedélyezése"; $a->strings["Enable simple text shortening"] = "Egyszerű szövegrövidítés engedélyezése";
$a->strings["Normally the system shortens posts at the next line feed. If this option is enabled then the system will shorten the text at the maximum character limit."] = "Általában a rendszer lerövidíti a bejegyzéseket a következő soremelésnél. Ha ez a beállítás engedélyezve van, akkor a rendszer a legnagyobb karakterkorlátnál fogja rövidíteni a szöveget."; $a->strings["Normally the system shortens posts at the next line feed. If this option is enabled then the system will shorten the text at the maximum character limit."] = "Általában a rendszer lerövidíti a bejegyzéseket a következő soremelésnél. Ha ez a beállítás engedélyezve van, akkor a rendszer a legnagyobb karakterkorlátnál fogja rövidíteni a szöveget.";
$a->strings["Attach the link title"] = "A hivatkozás címének csatolása"; $a->strings["Attach the link title"] = "A hivatkozás címének csatolása";
@ -539,6 +524,9 @@ $a->strings["You receive a private message"] = "Személyes üzenetet kap";
$a->strings["You receive a friend suggestion"] = "Ismerősajánlást kap"; $a->strings["You receive a friend suggestion"] = "Ismerősajánlást kap";
$a->strings["You are tagged in a post"] = "Bejelölték egy bejegyzésben"; $a->strings["You are tagged in a post"] = "Bejelölték egy bejegyzésben";
$a->strings["You are poked/prodded/etc. in a post"] = "Megbökték, megdöfték, stb. egy bejegyzésben"; $a->strings["You are poked/prodded/etc. in a post"] = "Megbökték, megdöfték, stb. egy bejegyzésben";
$a->strings["Create a desktop notification when:"] = "Asztali értesítés létrehozása ekkor:";
$a->strings["Someone liked your content"] = "Valaki kedvelte az Ön tartalmát";
$a->strings["Someone shared your content"] = "Valaki megosztotta az Ön tartalmát";
$a->strings["Activate desktop notifications"] = "Asztali értesítések bekapcsolása"; $a->strings["Activate desktop notifications"] = "Asztali értesítések bekapcsolása";
$a->strings["Show desktop popup on new notifications"] = "Felugró üzenet megjelenítése az asztalon új értesítések esetén."; $a->strings["Show desktop popup on new notifications"] = "Felugró üzenet megjelenítése az asztalon új értesítések esetén.";
$a->strings["Text-only notification emails"] = "Csak szöveges értesítési e-mailek"; $a->strings["Text-only notification emails"] = "Csak szöveges értesítési e-mailek";
@ -800,6 +788,7 @@ $a->strings["Trending Tags (last %d hour)"] = [
]; ];
$a->strings["More Trending Tags"] = "További népszerű címkék"; $a->strings["More Trending Tags"] = "További népszerű címkék";
$a->strings["XMPP:"] = "XMPP:"; $a->strings["XMPP:"] = "XMPP:";
$a->strings["Matrix:"] = "Mátrix:";
$a->strings["Network:"] = "Hálózat:"; $a->strings["Network:"] = "Hálózat:";
$a->strings["Unfollow"] = "Követés megszüntetése"; $a->strings["Unfollow"] = "Követés megszüntetése";
$a->strings["Yourself"] = "Önmaga"; $a->strings["Yourself"] = "Önmaga";
@ -868,6 +857,11 @@ $a->strings["Url rewrite in .htaccess seems not working. Make sure you copied .h
$a->strings["In some circumstances (like running inside containers), you can skip this error."] = "Bizonyos körülmények között (például konténereken belül való futtatáskor) átugorhatja ezt a hibát."; $a->strings["In some circumstances (like running inside containers), you can skip this error."] = "Bizonyos körülmények között (például konténereken belül való futtatáskor) átugorhatja ezt a hibát.";
$a->strings["Error message from Curl when fetching"] = "Hibaüzenet a cURL-től a lekéréskor"; $a->strings["Error message from Curl when fetching"] = "Hibaüzenet a cURL-től a lekéréskor";
$a->strings["Url rewrite is working"] = "Az URL átírás működik"; $a->strings["Url rewrite is working"] = "Az URL átírás működik";
$a->strings["The detection of TLS to secure the communication between the browser and the new Friendica server failed."] = "Nem sikerült a TLS felismerése a böngésző és a Friendica kiszolgálója közötti kommunikáció biztonságossá tételéhez.";
$a->strings["It is highly encouraged to use Friendica only over a secure connection as sensitive information like passwords will be transmitted."] = "Erősen ajánlott a Friendica kiszolgálót csak biztonságos kapcsolaton keresztül használni, mivel olyan érzékeny információk kerülnek továbbításra, mint például a jelszavak.";
$a->strings["Please ensure that the connection to the server is secure."] = "Győződjön meg arról, hogy a kiszolgálóval való kapcsolat biztonságos.";
$a->strings["No TLS detected"] = "Nincs TLS felismerve";
$a->strings["TLS detected"] = "TLS felismerve";
$a->strings["ImageMagick PHP extension is not installed"] = "Az ImageMagick PHP-kiterjesztés nincs telepítve"; $a->strings["ImageMagick PHP extension is not installed"] = "Az ImageMagick PHP-kiterjesztés nincs telepítve";
$a->strings["ImageMagick PHP extension is installed"] = "Az ImageMagick PHP-kiterjesztés telepítve van"; $a->strings["ImageMagick PHP extension is installed"] = "Az ImageMagick PHP-kiterjesztés telepítve van";
$a->strings["ImageMagick supports GIF"] = "Az ImageMagick támogatja a GIF-et"; $a->strings["ImageMagick supports GIF"] = "Az ImageMagick támogatja a GIF-et";
@ -1023,6 +1017,27 @@ $a->strings["Content warning: %s"] = "Tartalom figyelmeztetés: %s";
$a->strings["bytes"] = "bájt"; $a->strings["bytes"] = "bájt";
$a->strings["View on separate page"] = "Megtekintés külön oldalon"; $a->strings["View on separate page"] = "Megtekintés külön oldalon";
$a->strings["[no subject]"] = "[nincs tárgy]"; $a->strings["[no subject]"] = "[nincs tárgy]";
$a->strings["%1\$s wants to follow you"] = "%1\$s követni szeretné Önt";
$a->strings["%1\$s had started following you"] = "%1\$s elkezdte követni Önt";
$a->strings["%1\$s liked your comment %2\$s"] = "%1\$s kedvelte az Ön %2\$s hozzászólását";
$a->strings["%1\$s liked your post %2\$s"] = "%1\$s kedvelte az Ön %2\$s bejegyzését";
$a->strings["%1\$s disliked your comment %2\$s"] = "%1\$s nem kedvelte az Ön %2\$s hozzászólását";
$a->strings["%1\$s disliked your post %2\$s"] = "%1\$s nem kedvelte az Ön %2\$s bejegyzését";
$a->strings["%1\$s shared your comment %2\$s"] = "%1\$s megosztotta az Ön %2\$s hozzászólását";
$a->strings["%1\$s shared your post %2\$s"] = "%1\$s megosztotta az Ön %2\$s bejegyzését";
$a->strings["%1\$s tagged you on %2\$s"] = "%1\$s bejelölte Önt ezen: %2\$s";
$a->strings["%1\$s replied to you on %2\$s"] = "%1\$s válaszolt Önnek ezen: %2\$s";
$a->strings["%1\$s commented in your thread %2\$s"] = "%1\$s hozzászólt az Ön %2\$s szálában";
$a->strings["%1\$s commented on your comment %2\$s"] = "%1\$s hozzászólt az Ön %2\$s hozzászólásánál";
$a->strings["%1\$s commented in their thread %2\$s"] = "%1\$s hozzászólt az ő %2\$s szálában";
$a->strings["%1\$s commented in their thread"] = "%1\$s hozzászólt az ő szálában";
$a->strings["%1\$s commented in the thread %2\$s from %3\$s"] = "%1\$s hozzászólt egy %3\$s által közzétett %2\$s szálában";
$a->strings["%1\$s commented in the thread from %3\$s"] = "%1\$s hozzászólt egy %3\$s által közzétett szálában";
$a->strings["%1\$s commented on your thread %2\$s"] = "%1\$s hozzászólt az Ön %2\$s szálánál";
$a->strings["%1\$s shared the post %2\$s from %3\$s"] = "%1\$s megosztott egy %3\$s által közzétett %2\$s bejegyzést";
$a->strings["%1\$s shared a post from %3\$s"] = "%1\$s megosztott egy %3\$s által közzétett bejegyzést";
$a->strings["%1\$s shared the post %2\$s"] = "%1\$s megosztotta a(z) %2\$s bejegyzést";
$a->strings["%1\$s shared a post"] = "%1\$s megosztott egy bejegyzést";
$a->strings["Edit profile"] = "Profil szerkesztése"; $a->strings["Edit profile"] = "Profil szerkesztése";
$a->strings["Change profile photo"] = "Profilfénykép megváltoztatása"; $a->strings["Change profile photo"] = "Profilfénykép megváltoztatása";
$a->strings["Homepage:"] = "Honlap:"; $a->strings["Homepage:"] = "Honlap:";
@ -1037,10 +1052,6 @@ $a->strings["[No description]"] = "[Nincs leírás]";
$a->strings["Event Reminders"] = "Eseményemlékeztetők"; $a->strings["Event Reminders"] = "Eseményemlékeztetők";
$a->strings["Upcoming events the next 7 days:"] = "Közelgő események a következő 7 napon:"; $a->strings["Upcoming events the next 7 days:"] = "Közelgő események a következő 7 napon:";
$a->strings["OpenWebAuth: %1\$s welcomes %2\$s"] = "OpenWebAuth: %1\$s üdvözli őt: %2\$s"; $a->strings["OpenWebAuth: %1\$s welcomes %2\$s"] = "OpenWebAuth: %1\$s üdvözli őt: %2\$s";
$a->strings["Database storage failed to update %s"] = "Az adatbázis-tároló nem tudta frissíteni ezt: %s";
$a->strings["Database storage failed to insert data"] = "Az adatbázis-tároló nem tudta beszúrni az adatokat";
$a->strings["Filesystem storage failed to create \"%s\". Check you write permissions."] = "A fájlrendszer-tároló nem tudta létrehozni ezt: „%s”. Ellenőrizze az írási jogosultságait.";
$a->strings["Filesystem storage failed to save data to \"%s\". Check your write permissions"] = "A fájlrendszer-tároló nem tudta elmenteni az adatokat ide: „%s”. Ellenőrizze az írási jogosultságait.";
$a->strings["Storage base path"] = "Tároló alapútvonala"; $a->strings["Storage base path"] = "Tároló alapútvonala";
$a->strings["Folder where uploaded files are saved. For maximum security, This should be a path outside web server folder tree"] = "Az a mappa, ahova a feltöltött fájlok mentve lesznek. A legnagyobb biztonság érdekében ennek a webkiszolgáló mappafáján kívüli útvonalnak kell lennie."; $a->strings["Folder where uploaded files are saved. For maximum security, This should be a path outside web server folder tree"] = "Az a mappa, ahova a feltöltött fájlok mentve lesznek. A legnagyobb biztonság érdekében ennek a webkiszolgáló mappafáján kívüli útvonalnak kell lennie.";
$a->strings["Enter a valid existing folder"] = "Adjon meg egy érvényes, létező mappát"; $a->strings["Enter a valid existing folder"] = "Adjon meg egy érvényes, létező mappát";
@ -1271,8 +1282,8 @@ $a->strings["SSL link policy"] = "SSL-hivatkozás irányelve";
$a->strings["Determines whether generated links should be forced to use SSL"] = "Meghatározza, hogy az előállított hivatkozásokat kényszeríteni kell-e SSL használatára."; $a->strings["Determines whether generated links should be forced to use SSL"] = "Meghatározza, hogy az előállított hivatkozásokat kényszeríteni kell-e SSL használatára.";
$a->strings["Force SSL"] = "SSL kényszerítése"; $a->strings["Force SSL"] = "SSL kényszerítése";
$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Az összes nem SSL kérés SSL-re kényszerítése Figyelem: néhány rendszeren végtelen hurkokat eredményezhet."; $a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Az összes nem SSL kérés SSL-re kényszerítése Figyelem: néhány rendszeren végtelen hurkokat eredményezhet.";
$a->strings["Hide help entry from navigation menu"] = "Súgó bejegyzés elrejtése a navigációs menüből"; $a->strings["Show help entry from navigation menu"] = "Súgó bejegyzés megjelenítése a navigációs menüből";
$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Elrejti a súgóoldalak menübejegyzését a navigációs menüből. Továbbra is elérheti a „/help” közvetlen meghívásával."; $a->strings["Displays the menu entry for the Help pages from the navigation menu. It is always accessible by calling /help directly."] = "Megjeleníti a súgóoldalak menübejegyzését a navigációs menüből. Ez mindig elérhető a „/help” közvetlen meghívásával.";
$a->strings["Single user instance"] = "Egyfelhasználós példány"; $a->strings["Single user instance"] = "Egyfelhasználós példány";
$a->strings["Make this instance multi-user or single-user for the named user"] = "Többfelhasználóssá vagy a megnevezett felhasználó számára egyfelhasználóssá teszi ezt a rendszert."; $a->strings["Make this instance multi-user or single-user for the named user"] = "Többfelhasználóssá vagy a megnevezett felhasználó számára egyfelhasználóssá teszi ezt a rendszert.";
$a->strings["Maximum image size"] = "Legnagyobb képméret"; $a->strings["Maximum image size"] = "Legnagyobb képméret";
@ -1317,24 +1328,24 @@ $a->strings["Explicit Content"] = "Felnőtteknek szánt tartalom";
$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Állítsa be ezt annak közléséhez, hogy a csomópontját főként felnőtteknek szóló tartalomhoz használják, ami lehet, hogy nem alkalmas kiskorúak számára. Ez az információ közzé lesz téve a csomópont információiban, és használhatja például a globális könyvtár is, hogy kiszűrje a csomópontját a csatlakozáshoz felajánlott csomópontok listájából. Ezenkívül egy megjegyzés is meg lesz jelenítve ezzel kapcsolatban a felhasználó regisztrációs oldalán."; $a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Állítsa be ezt annak közléséhez, hogy a csomópontját főként felnőtteknek szóló tartalomhoz használják, ami lehet, hogy nem alkalmas kiskorúak számára. Ez az információ közzé lesz téve a csomópont információiban, és használhatja például a globális könyvtár is, hogy kiszűrje a csomópontját a csatlakozáshoz felajánlott csomópontok listájából. Ezenkívül egy megjegyzés is meg lesz jelenítve ezzel kapcsolatban a felhasználó regisztrációs oldalán.";
$a->strings["Allow Users to set remote_self"] = "Távoli önmaguk beállításának engedélyezése a felhasználóknak"; $a->strings["Allow Users to set remote_self"] = "Távoli önmaguk beállításának engedélyezése a felhasználóknak";
$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "Ennek bejelölésével minden egyes felhasználó számára engedélyezett, hogy az egyes partnereket távoli önmagukként jelöljék meg a partner javítása párbeszédablakban. Ezen jelző beállítása egy partnernél a tartalom minden egyes beküldésének tükrözését okozza a felhasználók adatfolyamában."; $a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "Ennek bejelölésével minden egyes felhasználó számára engedélyezett, hogy az egyes partnereket távoli önmagukként jelöljék meg a partner javítása párbeszédablakban. Ezen jelző beállítása egy partnernél a tartalom minden egyes beküldésének tükrözését okozza a felhasználók adatfolyamában.";
$a->strings["Block multiple registrations"] = "Többszörös regisztrációk tiltása"; $a->strings["Enable multiple registrations"] = "Többszörös regisztrációk engedélyezése";
$a->strings["Disallow users to register additional accounts for use as pages."] = "Nem teszi lehetővé a felhasználóknak, hogy további fiókokat regisztráljanak oldalakként történő használathoz."; $a->strings["Enable users to register additional accounts for use as pages."] = "Lehetővé teszi a felhasználóknak, hogy további fiókokat regisztráljanak oldalakként történő használathoz.";
$a->strings["Disable OpenID"] = "OpenID letiltása"; $a->strings["Enable OpenID"] = "OpenID engedélyezése";
$a->strings["Disable OpenID support for registration and logins."] = "Az OpenID támogatás letiltása a regisztrációnál és a bejelentkezéseknél."; $a->strings["Enable OpenID support for registration and logins."] = "Az OpenID támogatás engedélyezése a regisztrációnál és a bejelentkezéseknél.";
$a->strings["No Fullname check"] = "Nincs teljes név ellenőrzés"; $a->strings["Enable Fullname check"] = "Teljes név ellenőrzésének engedélyezése";
$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Lehetővé teszi a felhasználóknak, hogy a teljes nevükben lévő vezetéknév és a keresztnév közti szóköz nélkül regisztráljanak."; $a->strings["Enable check to only allow users to register with a space between the first name and the last name in their full name."] = "Lehetővé teszi annak ellenőrzését, hogy a felhasználóknak csak a teljes nevükben lévő vezetéknév és a keresztnév közti szóközzel legyen lehetőségük regisztrálniuk.";
$a->strings["Community pages for visitors"] = "Közösségi oldalak a látogatók számára"; $a->strings["Community pages for visitors"] = "Közösségi oldalak a látogatók számára";
$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Mely közösségi oldalaknak kell elérhetőnek lenniük a látogatók számára. A helyi felhasználók mindig mindkét oldalt látják."; $a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Mely közösségi oldalaknak kell elérhetőnek lenniük a látogatók számára. A helyi felhasználók mindig mindkét oldalt látják.";
$a->strings["Posts per user on community page"] = "Felhasználónkénti bejegyzések a közösségi oldalon"; $a->strings["Posts per user on community page"] = "Felhasználónkénti bejegyzések a közösségi oldalon";
$a->strings["The maximum number of posts per user on the community page. (Not valid for \"Global Community\")"] = "A felhasználónkénti bejegyzések legnagyobb száma a közösségi oldalon (nem érvényes a „globális közösségnél”)."; $a->strings["The maximum number of posts per user on the community page. (Not valid for \"Global Community\")"] = "A felhasználónkénti bejegyzések legnagyobb száma a közösségi oldalon (nem érvényes a „globális közösségnél”).";
$a->strings["Disable OStatus support"] = "OStatus támogatás letiltása"; $a->strings["Enable Mail support"] = "Levelezési támogatás engedélyezése";
$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "A beépített OStatus (StatusNet, GNU Social stb.) kompatibilitás letiltása. Az OStatus hálózaton lévő összes kommunikáció nyilvános, ezért adatvédelmi figyelmeztetések lesznek időnként megjelenítve."; $a->strings["Enable built-in mail support to poll IMAP folders and to reply via mail."] = "A beépített levelezési támogatás engedélyezése az IMAP-mappák lekérdezéséhez és az e-mailben történő válaszhoz.";
$a->strings["OStatus support can only be enabled if threading is enabled."] = "Az OStatus támogatást csak akkor lehet engedélyezni, ha a szálkezelés engedélyezve van."; $a->strings["Mail support can't be enabled because the PHP IMAP module is not installed."] = "A levelezési támogatást nem lehet engedélyezni, mert a PHP IMAP-modulja nincs telepítve.";
$a->strings["Enable OStatus support"] = "OStatus támogatás engedélyezése";
$a->strings["Enable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public."] = "A beépített OStatus (StatusNet, GNU Social stb.) kompatibilitás engedélyezése. Az OStatus hálózaton lévő összes kommunikáció nyilvános.";
$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "A Diaspora támogatást nem lehet engedélyezni, mert a Friendica egy alkönyvtárba lett telepítve."; $a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "A Diaspora támogatást nem lehet engedélyezni, mert a Friendica egy alkönyvtárba lett telepítve.";
$a->strings["Enable Diaspora support"] = "Diaspora támogatás engedélyezése"; $a->strings["Enable Diaspora support"] = "Diaspora támogatás engedélyezése";
$a->strings["Provide built-in Diaspora network compatibility."] = "Beépített Diaspora hálózati kompatibilitás biztosítása."; $a->strings["Enable built-in Diaspora network compatibility for communicating with diaspora servers."] = "A beépített Diaspora hálózati kompatibilitás engedélyezése a Diaspora kiszolgálókkal való kommunikációhoz.";
$a->strings["Only allow Friendica contacts"] = "Csak Friendica partnerek engedélyezése";
$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "Az összes partnernek Friendica protokollokat kell használnia. Az összes egyéb beépített kommunikációs protokoll le lesz tiltva.";
$a->strings["Verify SSL"] = "SSL ellenőrzése"; $a->strings["Verify SSL"] = "SSL ellenőrzése";
$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "Ha szeretné, bekapcsolhatja a szigorú tanúsítvány-ellenőrzést. Ezt azt jelenti, hogy nem tud kapcsolódni (egyáltalán) az önaláírt SSL-t használó oldalakhoz."; $a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "Ha szeretné, bekapcsolhatja a szigorú tanúsítvány-ellenőrzést. Ezt azt jelenti, hogy nem tud kapcsolódni (egyáltalán) az önaláírt SSL-t használó oldalakhoz.";
$a->strings["Proxy user"] = "Proxy felhasználó"; $a->strings["Proxy user"] = "Proxy felhasználó";
@ -1386,10 +1397,6 @@ $a->strings["Only search in tags"] = "Keresés csak címkékben";
$a->strings["On large systems the text search can slow down the system extremely."] = "Nagy rendszereknél a szöveges keresés rendkívüli módon lelassíthatja a rendszert."; $a->strings["On large systems the text search can slow down the system extremely."] = "Nagy rendszereknél a szöveges keresés rendkívüli módon lelassíthatja a rendszert.";
$a->strings["New base url"] = "Új alap URL"; $a->strings["New base url"] = "Új alap URL";
$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "A kiszolgáló alap URL-ének megváltoztatása. Áthelyezési üzenetet küld az összes felhasználó minden Friendica és Diaspora* partnerének."; $a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "A kiszolgáló alap URL-ének megváltoztatása. Áthelyezési üzenetet küld az összes felhasználó minden Friendica és Diaspora* partnerének.";
$a->strings["RINO Encryption"] = "RINO titkosítás";
$a->strings["Encryption layer between nodes."] = "Titkosítási réteg a csomópontok között.";
$a->strings["Disabled"] = "Letiltva";
$a->strings["Enabled"] = "Engedélyezve";
$a->strings["Maximum number of parallel workers"] = "Párhuzamos feldolgozók legnagyobb száma"; $a->strings["Maximum number of parallel workers"] = "Párhuzamos feldolgozók legnagyobb száma";
$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "Osztott tárhelyszolgáltatóknál állítsa ezt %d értékre. Nagyobb rendszereknél érdemes a számot %d értékre állítani. Az alapértelmezett érték %d."; $a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "Osztott tárhelyszolgáltatóknál állítsa ezt %d értékre. Nagyobb rendszereknél érdemes a számot %d értékre állítani. Az alapértelmezett érték %d.";
$a->strings["Enable fastlane"] = "Prioritásos sor engedélyezése"; $a->strings["Enable fastlane"] = "Prioritásos sor engedélyezése";
@ -1398,6 +1405,7 @@ $a->strings["Direct relay transfer"] = "Közvetlen továbbító-átvitel";
$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Engedélyezi a más kiszolgálókra való közvetlen átvitelt a továbbító kiszolgálók használata nélkül."; $a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Engedélyezi a más kiszolgálókra való közvetlen átvitelt a továbbító kiszolgálók használata nélkül.";
$a->strings["Relay scope"] = "Továbbítás hatóköre"; $a->strings["Relay scope"] = "Továbbítás hatóköre";
$a->strings["Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received."] = "Lehet „összes” vagy „címkék”. Az „összes” azt jelenti, hogy minden nyilvános bejegyzést meg kell kapni. A „címkék” jelentése, hogy csak a kijelölt címkékkel rendelkező bejegyzéseket kell megkapni."; $a->strings["Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received."] = "Lehet „összes” vagy „címkék”. Az „összes” azt jelenti, hogy minden nyilvános bejegyzést meg kell kapni. A „címkék” jelentése, hogy csak a kijelölt címkékkel rendelkező bejegyzéseket kell megkapni.";
$a->strings["Disabled"] = "Letiltva";
$a->strings["all"] = "összes"; $a->strings["all"] = "összes";
$a->strings["tags"] = "címkék"; $a->strings["tags"] = "címkék";
$a->strings["Server tags"] = "Kiszolgálócímkék"; $a->strings["Server tags"] = "Kiszolgálócímkék";
@ -1407,10 +1415,14 @@ $a->strings["Comma separated list of tags that are rejected."] = "Címkék vessz
$a->strings["Allow user tags"] = "Felhasználói címkék engedélyezése"; $a->strings["Allow user tags"] = "Felhasználói címkék engedélyezése";
$a->strings["If enabled, the tags from the saved searches will used for the \"tags\" subscription in addition to the \"relay_server_tags\"."] = "Ha engedélyezve van, akkor a mentett keresésekből származó címkék lesznek használva a „címkék” feliratkozásnál a „relay_server_tags” címkéken kívül."; $a->strings["If enabled, the tags from the saved searches will used for the \"tags\" subscription in addition to the \"relay_server_tags\"."] = "Ha engedélyezve van, akkor a mentett keresésekből származó címkék lesznek használva a „címkék” feliratkozásnál a „relay_server_tags” címkéken kívül.";
$a->strings["Start Relocation"] = "Áthelyezés indítása"; $a->strings["Start Relocation"] = "Áthelyezés indítása";
$a->strings["Storage backend, %s is invalid."] = "Tároló háttérprogram, a(z) %s érvénytelen.";
$a->strings["Storage backend %s error: %s"] = "Tároló háttérprogram (%s) hiba: %s";
$a->strings["Invalid storage backend setting value."] = "Érvénytelen tároló-háttérprogram beállítási érték."; $a->strings["Invalid storage backend setting value."] = "Érvénytelen tároló-háttérprogram beállítási érték.";
$a->strings["Current Storage Backend"] = "Jelenlegi tároló háttérprogram";
$a->strings["Storage Configuration"] = "Tároló beállításai";
$a->strings["Storage"] = "Tároló"; $a->strings["Storage"] = "Tároló";
$a->strings["Save & Activate"] = "Mentés és aktiválás"; $a->strings["Save & Use storage backend"] = "Mentés és a tároló háttérprogram használata";
$a->strings["Activate"] = "Aktiválás"; $a->strings["Use storage backend"] = "Tároló háttérprogram használata";
$a->strings["Save & Reload"] = "Mentés és újratöltés"; $a->strings["Save & Reload"] = "Mentés és újratöltés";
$a->strings["This backend doesn't have custom settings"] = "Ennek a háttérprogramnak nincsenek egyéni beállításai"; $a->strings["This backend doesn't have custom settings"] = "Ennek a háttérprogramnak nincsenek egyéni beállításai";
$a->strings["Database (legacy)"] = "Adatbázis (örökölt)"; $a->strings["Database (legacy)"] = "Adatbázis (örökölt)";
@ -1579,8 +1591,6 @@ $a->strings["Contact has been unblocked"] = "A partner tiltása fel lett oldva";
$a->strings["You can't ignore yourself"] = "Nem mellőzheti önmagát"; $a->strings["You can't ignore yourself"] = "Nem mellőzheti önmagát";
$a->strings["Contact has been ignored"] = "A partner figyelmen kívül lett hagyva"; $a->strings["Contact has been ignored"] = "A partner figyelmen kívül lett hagyva";
$a->strings["Contact has been unignored"] = "A partner figyelmen kívül hagyása fel lett oldva"; $a->strings["Contact has been unignored"] = "A partner figyelmen kívül hagyása fel lett oldva";
$a->strings["Contact has been archived"] = "A partner archiválva lett";
$a->strings["Contact has been unarchived"] = "A partner archiválása meg lett szüntetve";
$a->strings["Drop contact"] = "Partner eldobása"; $a->strings["Drop contact"] = "Partner eldobása";
$a->strings["Do you really want to delete this contact?"] = "Valóban törölni szeretné ezt a partnert?"; $a->strings["Do you really want to delete this contact?"] = "Valóban törölni szeretné ezt a partnert?";
$a->strings["Yes"] = "Igen"; $a->strings["Yes"] = "Igen";
@ -1643,8 +1653,6 @@ $a->strings["Organize your contact groups"] = "Partnercsoportok szervezése";
$a->strings["Search your contacts"] = "Partnerek keresése"; $a->strings["Search your contacts"] = "Partnerek keresése";
$a->strings["Results for: %s"] = "Találatok erre: %s"; $a->strings["Results for: %s"] = "Találatok erre: %s";
$a->strings["Update"] = "Frissítés"; $a->strings["Update"] = "Frissítés";
$a->strings["Archive"] = "Archiválás";
$a->strings["Unarchive"] = "Archiválás megszüntetése";
$a->strings["Batch Actions"] = "Tömeges műveletek"; $a->strings["Batch Actions"] = "Tömeges műveletek";
$a->strings["Conversations started by this contact"] = "A partner által elkezdett beszélgetések"; $a->strings["Conversations started by this contact"] = "A partner által elkezdett beszélgetések";
$a->strings["Posts and Comments"] = "Bejegyzések és hozzászólások"; $a->strings["Posts and Comments"] = "Bejegyzések és hozzászólások";
@ -1658,7 +1666,6 @@ $a->strings["Pending incoming contact request"] = "Függőben lévő bejövő pa
$a->strings["Refetch contact data"] = "Partneradatok ismételt lekérése"; $a->strings["Refetch contact data"] = "Partneradatok ismételt lekérése";
$a->strings["Toggle Blocked status"] = "Tiltott állapot átváltása"; $a->strings["Toggle Blocked status"] = "Tiltott állapot átváltása";
$a->strings["Toggle Ignored status"] = "Mellőzött állapot átváltása"; $a->strings["Toggle Ignored status"] = "Mellőzött állapot átváltása";
$a->strings["Toggle Archive status"] = "Archiválási állapot átváltása";
$a->strings["Delete contact"] = "Partner törlése"; $a->strings["Delete contact"] = "Partner törlése";
$a->strings["Contact update failed."] = "A partner frissítése sikertelen."; $a->strings["Contact update failed."] = "A partner frissítése sikertelen.";
$a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working."] = "<strong>FIGYELMEZTETÉS: ez erősen speciális</strong>, és ha hibás információkat ad meg, akkor a partnerrel való kommunikációi esetleg nem működnek többé."; $a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working."] = "<strong>FIGYELMEZTETÉS: ez erősen speciális</strong>, és ha hibás információkat ad meg, akkor a partnerrel való kommunikációi esetleg nem működnek többé.";
@ -1938,6 +1945,7 @@ $a->strings["Model not found"] = "A modell nem található";
$a->strings["Remote privacy information not available."] = "A távoli adatvédelmi információk nem érhetők el."; $a->strings["Remote privacy information not available."] = "A távoli adatvédelmi információk nem érhetők el.";
$a->strings["Visible to:"] = "Látható nekik:"; $a->strings["Visible to:"] = "Látható nekik:";
$a->strings["The Photo with id %s is not available."] = "A(z) %s azonosítóval rendelkező fénykép nem érhető el."; $a->strings["The Photo with id %s is not available."] = "A(z) %s azonosítóval rendelkező fénykép nem érhető el.";
$a->strings["Invalid external resource with url %s."] = "Érvénytelen külső erőforrás a(z) %s URL-lel.";
$a->strings["Invalid photo with id %s."] = "Érvénytelen %s azonosítóval rendelkező fénykép."; $a->strings["Invalid photo with id %s."] = "Érvénytelen %s azonosítóval rendelkező fénykép.";
$a->strings["No contacts."] = "Nincsenek partnerek."; $a->strings["No contacts."] = "Nincsenek partnerek.";
$a->strings["Profile not found."] = "A profil nem található."; $a->strings["Profile not found."] = "A profil nem található.";
@ -2064,14 +2072,14 @@ $a->strings["Update browser every xx seconds"] = "Böngésző frissítése N má
$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Legalább 10 másodperc. A -1 beírása letiltja."; $a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Legalább 10 másodperc. A -1 beírása letiltja.";
$a->strings["Automatic updates only at the top of the post stream pages"] = "Automatikus frissítések csak a bejegyzésfolyam oldalainak tetejénél"; $a->strings["Automatic updates only at the top of the post stream pages"] = "Automatikus frissítések csak a bejegyzésfolyam oldalainak tetejénél";
$a->strings["Auto update may add new posts at the top of the post stream pages, which can affect the scroll position and perturb normal reading if it happens anywhere else the top of the page."] = "Az automatikus frissítés új bejegyzéseket adhat a bejegyzésfolyam oldalainak tetejéhez, amely hatással lehet a görgetési pozícióra és megzavarhatja a normál olvasást, ha az oldal tetejének bármely részén történik."; $a->strings["Auto update may add new posts at the top of the post stream pages, which can affect the scroll position and perturb normal reading if it happens anywhere else the top of the page."] = "Az automatikus frissítés új bejegyzéseket adhat a bejegyzésfolyam oldalainak tetejéhez, amely hatással lehet a görgetési pozícióra és megzavarhatja a normál olvasást, ha az oldal tetejének bármely részén történik.";
$a->strings["Don't show emoticons"] = "Ne jelenítsen meg hangulatjeleket"; $a->strings["Display emoticons"] = "Hangulatjelek megjelenítése";
$a->strings["Normally emoticons are replaced with matching symbols. This setting disables this behaviour."] = "Általában a hangulatjelek ki lesznek cserélve a megfelelő szimbólumokkal. Ez a beállítás letiltja ezt a viselkedést."; $a->strings["When enabled, emoticons are replaced with matching symbols."] = "Ha engedélyezve van, akkor a hangulatjelek ki lesznek cserélve a megfelelő szimbólumokkal.";
$a->strings["Infinite scroll"] = "Végtelen görgetés"; $a->strings["Infinite scroll"] = "Végtelen görgetés";
$a->strings["Automatic fetch new items when reaching the page end."] = "Új elemek automatikus lekérése az oldal végének elérésekor."; $a->strings["Automatic fetch new items when reaching the page end."] = "Új elemek automatikus lekérése az oldal végének elérésekor.";
$a->strings["Disable Smart Threading"] = "Intelligens szálkezelés letiltása"; $a->strings["Enable Smart Threading"] = "Intelligens szálkezelés engedélyezése";
$a->strings["Disable the automatic suppression of extraneous thread indentation."] = "A nem odatartozó szálbehúzások automatikus elnyomásának letiltása."; $a->strings["Enable the automatic suppression of extraneous thread indentation."] = "A nem odatartozó szálbehúzások automatikus elnyomásának engedélyezése.";
$a->strings["Hide the Dislike feature"] = "A nem tetszik funkció elrejtése"; $a->strings["Display the Dislike feature"] = "A nem tetszik funkció megjelenítése";
$a->strings["Hides the Dislike button and dislike reactions on posts and comments."] = "Elrejti a nem tetszik gombot és a nem tetszik reakciókat a bejegyzéseknél és a hozzászólásoknál."; $a->strings["Display the Dislike button and dislike reactions on posts and comments."] = "A nem tetszik gomb és a nem tetszik reakciók megjelenítése a bejegyzéseknél és a hozzászólásoknál.";
$a->strings["Display the resharer"] = "Az újramegosztó megjelenítése"; $a->strings["Display the resharer"] = "Az újramegosztó megjelenítése";
$a->strings["Display the first resharer as icon and text on a reshared item."] = "Az első újramegosztó megjelenítése ikonként és szövegként egy újra megosztott elemnél."; $a->strings["Display the first resharer as icon and text on a reshared item."] = "Az első újramegosztó megjelenítése ikonként és szövegként egy újra megosztott elemnél.";
$a->strings["Stay local"] = "Maradjon helyi"; $a->strings["Stay local"] = "Maradjon helyi";
@ -2099,7 +2107,9 @@ $a->strings["Region/State:"] = "Régió vagy állam:";
$a->strings["Postal/Zip Code:"] = "Irányítószám:"; $a->strings["Postal/Zip Code:"] = "Irányítószám:";
$a->strings["Country:"] = "Ország:"; $a->strings["Country:"] = "Ország:";
$a->strings["XMPP (Jabber) address:"] = "XMPP (Jabber) cím:"; $a->strings["XMPP (Jabber) address:"] = "XMPP (Jabber) cím:";
$a->strings["The XMPP address will be propagated to your contacts so that they can follow you."] = "Az XMPP-cím továbbításra kerül a partnereinek, hogy követni tudják Önt."; $a->strings["The XMPP address will be published so that people can follow you there."] = "Az XMPP-cím közzé lesz téve, hogy az emberek képesek legyenek ott követni Önt.";
$a->strings["Matrix (Element) address:"] = "Mátrix (Element) cím:";
$a->strings["The Matrix address will be published so that people can follow you there."] = "A Mátrix-cím közzé lesz téve, hogy az emberek képesek legyenek ott követni Önt.";
$a->strings["Homepage URL:"] = "Honlap URL:"; $a->strings["Homepage URL:"] = "Honlap URL:";
$a->strings["Public Keywords:"] = "Nyilvános kulcsszavak:"; $a->strings["Public Keywords:"] = "Nyilvános kulcsszavak:";
$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Lehetséges ismerősök ajánlásához lesz használva, mások is láthatják)"; $a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Lehetséges ismerősök ajánlásához lesz használva, mások is láthatják)";
@ -2252,13 +2262,13 @@ $a->strings["I might attend"] = "Talán részt veszek";
$a->strings["Ignore thread"] = "Szál mellőzése"; $a->strings["Ignore thread"] = "Szál mellőzése";
$a->strings["Unignore thread"] = "Szál mellőzésének megszüntetése"; $a->strings["Unignore thread"] = "Szál mellőzésének megszüntetése";
$a->strings["Toggle ignore status"] = "Mellőzési állapot átváltása"; $a->strings["Toggle ignore status"] = "Mellőzési állapot átváltása";
$a->strings["Add star"] = "Csillag hozzáadása";
$a->strings["Remove star"] = "Csillag eltávolítása";
$a->strings["Toggle star status"] = "Csillagállapot átváltása";
$a->strings["Pin"] = "Kitűzés"; $a->strings["Pin"] = "Kitűzés";
$a->strings["Unpin"] = "Kitűzés megszüntetése"; $a->strings["Unpin"] = "Kitűzés megszüntetése";
$a->strings["Toggle pin status"] = "Kitűzés állapotának átváltása"; $a->strings["Toggle pin status"] = "Kitűzés állapotának átváltása";
$a->strings["Pinned"] = "Kitűzve"; $a->strings["Pinned"] = "Kitűzve";
$a->strings["Add star"] = "Csillag hozzáadása";
$a->strings["Remove star"] = "Csillag eltávolítása";
$a->strings["Toggle star status"] = "Csillagállapot átváltása";
$a->strings["Add tag"] = "Címke hozzáadása"; $a->strings["Add tag"] = "Címke hozzáadása";
$a->strings["Quote share this"] = "Idézett megosztás"; $a->strings["Quote share this"] = "Idézett megosztás";
$a->strings["Quote Share"] = "Idéző megosztás"; $a->strings["Quote Share"] = "Idéző megosztás";
@ -2338,6 +2348,8 @@ $a->strings["seconds"] = "másodperc";
$a->strings["in %1\$d %2\$s"] = "%1\$d %2\$s múlva"; $a->strings["in %1\$d %2\$s"] = "%1\$d %2\$s múlva";
$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s óta"; $a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s óta";
$a->strings["(no subject)"] = "(nincs tárgy)"; $a->strings["(no subject)"] = "(nincs tárgy)";
$a->strings["Notification from Friendica"] = "Értesítés a Friendicától";
$a->strings["Empty Post"] = "Üres bejegyzés";
$a->strings["default"] = "alapértelmezett"; $a->strings["default"] = "alapértelmezett";
$a->strings["greenzero"] = "zöld nulla"; $a->strings["greenzero"] = "zöld nulla";
$a->strings["purplezero"] = "lila nulla"; $a->strings["purplezero"] = "lila nulla";

View file

@ -83,6 +83,7 @@
{{include file="field_checkbox.tpl" field=$disable_embedded}} {{include file="field_checkbox.tpl" field=$disable_embedded}}
{{include file="field_checkbox.tpl" field=$allow_users_remote_self}} {{include file="field_checkbox.tpl" field=$allow_users_remote_self}}
{{include file="field_checkbox.tpl" field=$explicit_content}} {{include file="field_checkbox.tpl" field=$explicit_content}}
{{include file="field_checkbox.tpl" field=$proxify_content}}
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}"/></div> <div class="submit"><input type="submit" name="page_site" value="{{$submit}}"/></div>
<h2>{{$advanced}}</h2> <h2>{{$advanced}}</h2>

View file

@ -15,7 +15,8 @@
{{$tabs nofilter}} {{$tabs nofilter}}
<form action="{{$baseurl}}/contact/batch/" method="POST"> <form action="{{$baseurl}}/contact/batch/" method="POST">
<input type="hidden" name="redirect_url" value="{{$cmd}}"/> <input type="hidden" name="redirect_url" value="{{$cmd}}" />
<input type="hidden" name="form_security_token" value="{{$form_security_token}}" />
{{foreach $contacts as $contact}} {{foreach $contacts as $contact}}
{{include file="contact_template.tpl"}} {{include file="contact_template.tpl"}}
{{/foreach}} {{/foreach}}

View file

@ -164,6 +164,7 @@
{{include file="field_checkbox.tpl" field=$disable_embedded}} {{include file="field_checkbox.tpl" field=$disable_embedded}}
{{include file="field_checkbox.tpl" field=$allow_users_remote_self}} {{include file="field_checkbox.tpl" field=$allow_users_remote_self}}
{{include file="field_checkbox.tpl" field=$explicit_content}} {{include file="field_checkbox.tpl" field=$explicit_content}}
{{include file="field_checkbox.tpl" field=$proxify_content}}
</div> </div>
<div class="panel-footer"> <div class="panel-footer">
<input type="submit" name="page_site" class="btn btn-primary" value="{{$submit}}"/> <input type="submit" name="page_site" class="btn btn-primary" value="{{$submit}}"/>

View file

@ -129,10 +129,10 @@
</td> </td>
<td class="text-right"> <td class="text-right">
{{if $u.is_deletable}} {{if $u.is_deletable}}
<a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" class="admin-settings-action-link" title="{{$block}}"> <a href="{{$baseurl}}/admin/users/active/block/{{$u.uid}}?t={{$form_security_token}}" class="admin-settings-action-link" title="{{$block}}">
<i class="fa fa-ban" aria-hidden="true"></i> <i class="fa fa-ban" aria-hidden="true"></i>
</a> </a>
<a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" class="admin-settings-action-link" title="{{$delete}}" onclick="return confirm_delete('{{$confirm_delete}}','{{$u.name}}')"> <a href="{{$baseurl}}/admin/users/active/delete/{{$u.uid}}?t={{$form_security_token}}" class="admin-settings-action-link" title="{{$delete}}" onclick="return confirm_delete('{{$confirm_delete}}','{{$u.name}}')">
<i class="fa fa-trash" aria-hidden="true"></i> <i class="fa fa-trash" aria-hidden="true"></i>
</a> </a>
{{else}} {{else}}

View file

@ -29,7 +29,8 @@
{{* we need the form container to make batch actions work *}} {{* we need the form container to make batch actions work *}}
<form name="batch_actions_submit" action="{{$baseurl}}/contact/batch/" method="POST"> <form name="batch_actions_submit" action="{{$baseurl}}/contact/batch/" method="POST">
<input type="hidden" name="redirect_url" value="{{$cmd}}"/> <input type="hidden" name="redirect_url" value="{{$cmd}}" />
<input type="hidden" name="form_security_token" value="{{$form_security_token}}" />
{{* we put here a hidden input element. This is needed to transmit the batch actions with javascript*}} {{* we put here a hidden input element. This is needed to transmit the batch actions with javascript*}}
<input type="hidden" class="batch-action no-input fakelist" name="batch_submit" value="{{$l}}"> <input type="hidden" class="batch-action no-input fakelist" name="batch_submit" value="{{$l}}">