Merge remote-tracking branch 'upstream/develop' into user-defined-channels
This commit is contained in:
commit
b2758f2cdd
|
@ -42,7 +42,7 @@ The listed emails need to be separated by a comma like this:
|
||||||
'admin_email' => 'mail1@example.com,mail2@example.com',
|
'admin_email' => 'mail1@example.com,mail2@example.com',
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="dbupdate">
|
<a name="dbupdate"></a>
|
||||||
### The Database structure seems not to be updated. What can I do?
|
### The Database structure seems not to be updated. What can I do?
|
||||||
|
|
||||||
Please have a look at the Admin panel under [DB updates](/admin/dbsync/) and follow the link to *check database structure*.
|
Please have a look at the Admin panel under [DB updates](/admin/dbsync/) and follow the link to *check database structure*.
|
||||||
|
@ -52,4 +52,4 @@ You can manually execute the structure update from the CLI in the base directory
|
||||||
|
|
||||||
bin/console dbstructure update
|
bin/console dbstructure update
|
||||||
|
|
||||||
if there occur any errors, please contact the [support group](https://forum.friendi.ca/profile/helpers).
|
if there occur any errors, please contact the [Friendica Support group](https://forum.friendi.ca/profile/helpers) or discuss in the [Friendica Admins group](https://forum.friendi.ca/profile/admins).
|
||||||
|
|
|
@ -45,7 +45,7 @@ Die aufgelisteten Adressen werden wie folgt durch Kommas voneinander getrennt:
|
||||||
'admin_email' => 'mail1@example.com,mail2@example.com',
|
'admin_email' => 'mail1@example.com,mail2@example.com',
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="dbupdate">
|
<a name="dbupdate"></a>
|
||||||
### Die Datenbank Struktur schein nicht aktuell zu sein. Was kann ich tun?
|
### Die Datenbank Struktur schein nicht aktuell zu sein. Was kann ich tun?
|
||||||
|
|
||||||
Rufe bitte im Admin Panel den Punkt [DB Updates](/admin/dbsync/) auf und folge dem Link *Datenbank Struktur überprüfen*.
|
Rufe bitte im Admin Panel den Punkt [DB Updates](/admin/dbsync/) auf und folge dem Link *Datenbank Struktur überprüfen*.
|
||||||
|
@ -56,4 +56,4 @@ Starte dazu bitte vom Grundverzeichnis deiner Friendica Instanz folgendes Komman
|
||||||
|
|
||||||
bin/console dbstructure update
|
bin/console dbstructure update
|
||||||
|
|
||||||
sollten bei der Ausführung Fehler auftreten, kontaktiere bitte die [Support Gruppe](https://forum.friendi.ca/profile/helpers).
|
sollten bei der Ausführung Fehler auftreten, kontaktiere bitte die [Friendia Support](https://forum.friendi.ca/profile/helpers) Gruppe oder die [Friendica Admins](https://forum.friendi.ca/profile/admins) Gruppe.
|
||||||
|
|
|
@ -638,7 +638,7 @@ class Item
|
||||||
$body = $item['body'];
|
$body = $item['body'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($item['quote-uri-id'])) {
|
if (empty($item['quote-uri-id']) || ($item['quote-uri-id'] == $item['uri-id'])) {
|
||||||
return $body;
|
return $body;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -729,7 +729,7 @@ class Item
|
||||||
*/
|
*/
|
||||||
public function getSharedPost(array $item, array $fields = []): array
|
public function getSharedPost(array $item, array $fields = []): array
|
||||||
{
|
{
|
||||||
if (!empty($item['quote-uri-id'])) {
|
if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) {
|
||||||
$shared = Post::selectFirst($fields, ['uri-id' => $item['quote-uri-id'], 'uid' => [0, $item['uid'] ?? 0]]);
|
$shared = Post::selectFirst($fields, ['uri-id' => $item['quote-uri-id'], 'uid' => [0, $item['uid'] ?? 0]]);
|
||||||
if (is_array($shared)) {
|
if (is_array($shared)) {
|
||||||
return [
|
return [
|
||||||
|
@ -770,7 +770,7 @@ class Item
|
||||||
return $attributes;
|
return $attributes;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($item['quote-uri-id'])) {
|
if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) {
|
||||||
$shared = Post::selectFirst(['author-name', 'author-link', 'author-avatar', 'plink', 'created', 'guid', 'uri', 'body'], ['uri-id' => $item['quote-uri-id']]);
|
$shared = Post::selectFirst(['author-name', 'author-link', 'author-avatar', 'plink', 'created', 'guid', 'uri', 'body'], ['uri-id' => $item['quote-uri-id']]);
|
||||||
if (!empty($shared)) {
|
if (!empty($shared)) {
|
||||||
return [
|
return [
|
||||||
|
|
|
@ -324,7 +324,7 @@ class Plaintext
|
||||||
$post['text'] = Post\Media::removeFromBody($post['text']);
|
$post['text'] = Post\Media::removeFromBody($post['text']);
|
||||||
|
|
||||||
$images = Post\Media::getByURIId($item['uri-id'], [Post\Media::IMAGE]);
|
$images = Post\Media::getByURIId($item['uri-id'], [Post\Media::IMAGE]);
|
||||||
if (!empty($item['quote-uri-id'])) {
|
if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) {
|
||||||
$images = array_merge($images, Post\Media::getByURIId($item['quote-uri-id'], [Post\Media::IMAGE]));
|
$images = array_merge($images, Post\Media::getByURIId($item['quote-uri-id'], [Post\Media::IMAGE]));
|
||||||
}
|
}
|
||||||
foreach ($images as $image) {
|
foreach ($images as $image) {
|
||||||
|
@ -355,7 +355,7 @@ class Plaintext
|
||||||
|
|
||||||
// Look for audio or video links
|
// Look for audio or video links
|
||||||
$media = Post\Media::getByURIId($item['uri-id'], [Post\Media::AUDIO, Post\Media::VIDEO]);
|
$media = Post\Media::getByURIId($item['uri-id'], [Post\Media::AUDIO, Post\Media::VIDEO]);
|
||||||
if (!empty($item['quote-uri-id'])) {
|
if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) {
|
||||||
$media = array_merge($media, Post\Media::getByURIId($item['quote-uri-id'], [Post\Media::AUDIO, Post\Media::VIDEO]));
|
$media = array_merge($media, Post\Media::getByURIId($item['quote-uri-id'], [Post\Media::AUDIO, Post\Media::VIDEO]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1078,7 +1078,10 @@ class Item
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($item['origin']) {
|
if ($item['origin']) {
|
||||||
if (Photo::setPermissionFromBody($item['body'], $item['uid'], $item['contact-id'], $item['allow_cid'], $item['allow_gid'], $item['deny_cid'], $item['deny_gid'])) {
|
if (
|
||||||
|
Photo::setPermissionFromBody($item['body'], $item['uid'], $item['contact-id'], $item['allow_cid'], $item['allow_gid'], $item['deny_cid'], $item['deny_gid'])
|
||||||
|
&& ($item['object-type'] != Activity\ObjectType::EVENT)
|
||||||
|
) {
|
||||||
$item['object-type'] = Activity\ObjectType::IMAGE;
|
$item['object-type'] = Activity\ObjectType::IMAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1181,6 +1184,11 @@ class Item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] == $item['uri-id'])) {
|
||||||
|
Logger::info('Quote-Uri-Id is identical to Uri-Id', ['uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
|
||||||
|
unset($item['quote-uri-id']);
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($item['quote-uri-id'])) {
|
if (!empty($item['quote-uri-id'])) {
|
||||||
$item['raw-body'] = BBCode::removeSharedData($item['raw-body']);
|
$item['raw-body'] = BBCode::removeSharedData($item['raw-body']);
|
||||||
$item['body'] = BBCode::removeSharedData($item['body']);
|
$item['body'] = BBCode::removeSharedData($item['body']);
|
||||||
|
@ -3122,7 +3130,7 @@ class Item
|
||||||
$item['body'] = BBCode::removeSharedData($item['body']);
|
$item['body'] = BBCode::removeSharedData($item['body']);
|
||||||
} elseif (empty($shared_item['uri-id']) && empty($item['quote-uri-id']) && ($item['network'] != Protocol::DIASPORA)) {
|
} elseif (empty($shared_item['uri-id']) && empty($item['quote-uri-id']) && ($item['network'] != Protocol::DIASPORA)) {
|
||||||
$media = Post\Media::getByURIId($item['uri-id'], [Post\Media::ACTIVITY]);
|
$media = Post\Media::getByURIId($item['uri-id'], [Post\Media::ACTIVITY]);
|
||||||
if (!empty($media)) {
|
if (!empty($media) && ($media[0]['media-uri-id'] != $item['uri-id'])) {
|
||||||
$shared_item = Post::selectFirst($fields, ['uri-id' => $media[0]['media-uri-id'], 'uid' => [$item['uid'], 0]]);
|
$shared_item = Post::selectFirst($fields, ['uri-id' => $media[0]['media-uri-id'], 'uid' => [$item['uid'], 0]]);
|
||||||
if (empty($shared_item['uri-id'])) {
|
if (empty($shared_item['uri-id'])) {
|
||||||
$shared_item = Post::selectFirst($fields, ['plink' => $media[0]['url'], 'uid' => [$item['uid'], 0]]);
|
$shared_item = Post::selectFirst($fields, ['plink' => $media[0]['url'], 'uid' => [$item['uid'], 0]]);
|
||||||
|
|
|
@ -265,6 +265,11 @@ class Media
|
||||||
return $media;
|
return $media;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($item['uri-id'] == $media['uri-id']) {
|
||||||
|
Logger::info('Media-Uri-Id is identical to Uri-Id', ['uri-id' => $media['uri-id']]);
|
||||||
|
return $media;
|
||||||
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!empty($item['plink']) && Strings::compareLink($item['plink'], $media['url']) &&
|
!empty($item['plink']) && Strings::compareLink($item['plink'], $media['url']) &&
|
||||||
parse_url($item['plink'], PHP_URL_HOST) != parse_url($item['uri'], PHP_URL_HOST)
|
parse_url($item['plink'], PHP_URL_HOST) != parse_url($item['uri'], PHP_URL_HOST)
|
||||||
|
|
|
@ -602,7 +602,7 @@ class UserNotification
|
||||||
*/
|
*/
|
||||||
private static function checkQuoted(array $item, array $contacts): bool
|
private static function checkQuoted(array $item, array $contacts): bool
|
||||||
{
|
{
|
||||||
if (empty($item['quote-uri-id'])) {
|
if (empty($item['quote-uri-id']) || ($item['quote-uri-id'] == $item['uri-id'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$condition = ['uri-id' => $item['quote-uri-id'], 'uid' => $item['uid'], 'author-id' => $contacts, 'deleted' => false, 'gravity' => [item::GRAVITY_PARENT, Item::GRAVITY_COMMENT]];
|
$condition = ['uri-id' => $item['quote-uri-id'], 'uid' => $item['uid'], 'author-id' => $contacts, 'deleted' => false, 'gravity' => [item::GRAVITY_PARENT, Item::GRAVITY_COMMENT]];
|
||||||
|
|
|
@ -1752,7 +1752,7 @@ class Transmitter
|
||||||
|
|
||||||
$body = BBCode::setMentionsToNicknames($body);
|
$body = BBCode::setMentionsToNicknames($body);
|
||||||
|
|
||||||
if (!empty($item['quote-uri-id'])) {
|
if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) {
|
||||||
if (Post::exists(['uri-id' => $item['quote-uri-id'], 'network' => [Protocol::ACTIVITYPUB, Protocol::DFRN]])) {
|
if (Post::exists(['uri-id' => $item['quote-uri-id'], 'network' => [Protocol::ACTIVITYPUB, Protocol::DFRN]])) {
|
||||||
$real_quote = true;
|
$real_quote = true;
|
||||||
$data['quoteUrl'] = $item['quote-uri'];
|
$data['quoteUrl'] = $item['quote-uri'];
|
||||||
|
@ -1772,7 +1772,7 @@ class Transmitter
|
||||||
if (!empty($language)) {
|
if (!empty($language)) {
|
||||||
$richbody = BBCode::setMentionsToNicknames($item['body'] ?? '');
|
$richbody = BBCode::setMentionsToNicknames($item['body'] ?? '');
|
||||||
$richbody = Post\Media::removeFromEndOfBody($richbody);
|
$richbody = Post\Media::removeFromEndOfBody($richbody);
|
||||||
if (!empty($item['quote-uri-id'])) {
|
if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) {
|
||||||
if ($real_quote) {
|
if ($real_quote) {
|
||||||
$richbody = DI::contentItem()->addShareLink($richbody, $item['quote-uri-id']);
|
$richbody = DI::contentItem()->addShareLink($richbody, $item['quote-uri-id']);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1784,7 +1784,7 @@ class Transmitter
|
||||||
$data['contentMap'][$language] = BBCode::convertForUriId($item['uri-id'], $richbody, BBCode::EXTERNAL);
|
$data['contentMap'][$language] = BBCode::convertForUriId($item['uri-id'], $richbody, BBCode::EXTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($item['quote-uri-id'])) {
|
if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) {
|
||||||
$source = DI::contentItem()->addSharedPost($item, $item['body']);
|
$source = DI::contentItem()->addSharedPost($item, $item['body']);
|
||||||
} else {
|
} else {
|
||||||
$source = $item['body'];
|
$source = $item['body'];
|
||||||
|
|
|
@ -240,10 +240,10 @@
|
||||||
|
|
||||||
{{if $item.ignore}}
|
{{if $item.ignore}}
|
||||||
<li role="menuitem">
|
<li role="menuitem">
|
||||||
<a id="ignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classdo}}" title="{{$item.ignore.do}}"><i class="fa fa-eye-slash" aria-hidden="true"></i> {{$item.ignore.do}}</a>
|
<a id="ignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classdo}}" title="{{$item.ignore.do}}"><i class="fa fa-bell-slash" aria-hidden="true"></i> {{$item.ignore.do}}</a>
|
||||||
</li>
|
</li>
|
||||||
<li role="menuitem">
|
<li role="menuitem">
|
||||||
<a id="unignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classundo}}" title="{{$item.ignore.undo}}"><i class="fa fa-eye" aria-hidden="true"></i> {{$item.ignore.undo}}</a>
|
<a id="unignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classundo}}" title="{{$item.ignore.undo}}"><i class="fa fa-bell" aria-hidden="true"></i> {{$item.ignore.undo}}</a>
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|
|
@ -381,10 +381,10 @@ as the value of $top_child_total (this is done at the end of this file)
|
||||||
|
|
||||||
{{if $item.ignore}}
|
{{if $item.ignore}}
|
||||||
<li role="menuitem">
|
<li role="menuitem">
|
||||||
<a id="ignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classdo}}" title="{{$item.ignore.do}}"><i class="fa fa-eye-slash" aria-hidden="true"></i> {{$item.ignore.do}}</a>
|
<a id="ignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classdo}}" title="{{$item.ignore.do}}"><i class="fa fa-bell-slash" aria-hidden="true"></i> {{$item.ignore.do}}</a>
|
||||||
</li>
|
</li>
|
||||||
<li role="menuitem">
|
<li role="menuitem">
|
||||||
<a id="unignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classundo}}" title="{{$item.ignore.undo}}"><i class="fa fa-eye" aria-hidden="true"></i> {{$item.ignore.undo}}</a>
|
<a id="unignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classundo}}" title="{{$item.ignore.undo}}"><i class="fa fa-bell" aria-hidden="true"></i> {{$item.ignore.undo}}</a>
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
@ -560,10 +560,10 @@ as the value of $top_child_total (this is done at the end of this file)
|
||||||
|
|
||||||
{{if $item.ignore}}
|
{{if $item.ignore}}
|
||||||
<li role="menuitem">
|
<li role="menuitem">
|
||||||
<a id="ignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classdo}}" title="{{$item.ignore.do}}"><i class="fa fa-eye-slash" aria-hidden="true"></i> {{$item.ignore.do}}</a>
|
<a id="ignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classdo}}" title="{{$item.ignore.do}}"><i class="fa fa-bell-slash" aria-hidden="true"></i> {{$item.ignore.do}}</a>
|
||||||
</li>
|
</li>
|
||||||
<li role="menuitem">
|
<li role="menuitem">
|
||||||
<a id="unignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classundo}}" title="{{$item.ignore.undo}}"><i class="fa fa-eye" aria-hidden="true"></i> {{$item.ignore.undo}}</a>
|
<a id="unignore-{{$item.id}}" href="javascript:doIgnoreThread({{$item.id}});" class="btn-link {{$item.ignore.classundo}}" title="{{$item.ignore.undo}}"><i class="fa fa-bell" aria-hidden="true"></i> {{$item.ignore.undo}}</a>
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user