1
1
Fork 0

Improve display of quoted posts

This commit is contained in:
Michael 2023-07-09 14:15:01 +00:00
parent fba4a70dc2
commit e95c678141
3 changed files with 14 additions and 4 deletions

View file

@ -677,7 +677,6 @@ class Item
if ($item['network'] == Protocol::FEED) { if ($item['network'] == Protocol::FEED) {
return PageInfo::getFooterFromUrl($item['plink']); return PageInfo::getFooterFromUrl($item['plink']);
} elseif (!in_array($item['network'] ?? '', Protocol::FEDERATED)) { } elseif (!in_array($item['network'] ?? '', Protocol::FEDERATED)) {
$item['guid'] = '';
$item['uri'] = ''; $item['uri'] = '';
} }
@ -695,7 +694,7 @@ class Item
// If it is a reshared post then reformat it to avoid display problems with two share elements // If it is a reshared post then reformat it to avoid display problems with two share elements
if (!empty($shared)) { if (!empty($shared)) {
if (!empty($shared['guid']) && ($encapsulated_share = $this->createSharedPostByGuid($shared['guid'], true))) { if (($item['network'] != Protocol::BLUESKY) && !empty($shared['guid']) && ($encapsulated_share = $this->createSharedPostByGuid($shared['guid'], true))) {
if (!empty(BBCode::fetchShareAttributes($item['body']))) { if (!empty(BBCode::fetchShareAttributes($item['body']))) {
$item['body'] = preg_replace("/\[share.*?\](.*)\[\/share\]/ism", $encapsulated_share, $item['body']); $item['body'] = preg_replace("/\[share.*?\](.*)\[\/share\]/ism", $encapsulated_share, $item['body']);
} else { } else {

View file

@ -64,7 +64,8 @@ class BBCode
const ACTIVITYPUB = 9; const ACTIVITYPUB = 9;
const BLUESKY = 10; const BLUESKY = 10;
const TOP_ANCHOR = '<br class="top-anchor">'; const SHARED_ANCHOR = '<hr class="shared-anchor">';
const TOP_ANCHOR = '<br class="top-anchor">';
const BOTTOM_ANCHOR = '<br class="button-anchor">'; const BOTTOM_ANCHOR = '<br class="button-anchor">';
const PREVIEW_NONE = 0; const PREVIEW_NONE = 0;
@ -930,7 +931,7 @@ class BBCode
$network = $contact['network'] ?? Protocol::PHANTOM; $network = $contact['network'] ?? Protocol::PHANTOM;
$tpl = Renderer::getMarkupTemplate('shared_content.tpl'); $tpl = Renderer::getMarkupTemplate('shared_content.tpl');
$text .= Renderer::replaceMacros($tpl, [ $text .= BBCode::SHARED_ANCHOR . Renderer::replaceMacros($tpl, [
'$profile' => $attributes['profile'], '$profile' => $attributes['profile'],
'$avatar' => $attributes['avatar'], '$avatar' => $attributes['avatar'],
'$author' => $attributes['author'], '$author' => $attributes['author'],

View file

@ -3217,6 +3217,12 @@ class Item
$body = BBCode::removeSharedData($body); $body = BBCode::removeSharedData($body);
} }
$pos = strpos($s, BBCode::SHARED_ANCHOR);
if ($pos) {
$shared_html = substr($s, $pos + strlen(BBCode::SHARED_ANCHOR));
$s = substr($s, 0, $pos);
}
$s = self::addGallery($s, $attachments, $item['uri-id']); $s = self::addGallery($s, $attachments, $item['uri-id']);
$s = self::addVisualAttachments($attachments, $item, $s, false); $s = self::addVisualAttachments($attachments, $item, $s, false);
$s = self::addLinkAttachment($item['uri-id'], $attachments, $body, $s, false, $shared_links); $s = self::addLinkAttachment($item['uri-id'], $attachments, $body, $s, false, $shared_links);
@ -3237,6 +3243,10 @@ class Item
$s = preg_replace('|(<img[^>]+src="[^"]+/photo/[0-9a-f]+)-[0-9]|', "$1-" . $ps, $s); $s = preg_replace('|(<img[^>]+src="[^"]+/photo/[0-9a-f]+)-[0-9]|', "$1-" . $ps, $s);
} }
if (!empty($shared_html)) {
$s .= $shared_html;
}
$s = HTML::applyContentFilter($s, $filter_reasons); $s = HTML::applyContentFilter($s, $filter_reasons);
$hook_data = ['item' => $item, 'html' => $s]; $hook_data = ['item' => $item, 'html' => $s];