]> git.mxchange.org Git - friendica.git/commitdiff
Improve display of quoted posts
authorMichael <heluecht@pirati.ca>
Sun, 9 Jul 2023 14:15:01 +0000 (14:15 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 9 Jul 2023 14:15:01 +0000 (14:15 +0000)
src/Content/Item.php
src/Content/Text/BBCode.php
src/Model/Item.php

index bd3c6d774b8d55abe702604c3c7176f4a75a7c16..bfbf0795d28aed68c084af982671b22906e3c0ea 100644 (file)
@@ -677,7 +677,6 @@ class Item
                if ($item['network'] == Protocol::FEED) {
                        return PageInfo::getFooterFromUrl($item['plink']);
                } elseif (!in_array($item['network'] ?? '', Protocol::FEDERATED)) {
-                       $item['guid'] = '';
                        $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 (!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']))) {
                                        $item['body'] = preg_replace("/\[share.*?\](.*)\[\/share\]/ism", $encapsulated_share, $item['body']);
                                } else {
index e321b13e70378c25c5431c1df97f6bbf21b6b430..3635ba874cf7ee5253a68db4e2147182e0998dee 100644 (file)
@@ -64,7 +64,8 @@ class BBCode
        const ACTIVITYPUB  = 9;
        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 PREVIEW_NONE     = 0;
@@ -930,7 +931,7 @@ class BBCode
                                $network = $contact['network'] ?? Protocol::PHANTOM;
 
                                $tpl = Renderer::getMarkupTemplate('shared_content.tpl');
-                               $text .= Renderer::replaceMacros($tpl, [
+                               $text .= BBCode::SHARED_ANCHOR . Renderer::replaceMacros($tpl, [
                                        '$profile'      => $attributes['profile'],
                                        '$avatar'       => $attributes['avatar'],
                                        '$author'       => $attributes['author'],
index e31009753b8933c3fb98e6fd66a02dbe7748b6ac..425ba12ec1d61e65ee4f7eac9fb83709df28d059 100644 (file)
@@ -3217,6 +3217,12 @@ class Item
                        $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::addVisualAttachments($attachments, $item, $s, false);
                $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);
                }
 
+               if (!empty($shared_html)) {
+                       $s .= $shared_html;
+               }
+
                $s = HTML::applyContentFilter($s, $filter_reasons);
 
                $hook_data = ['item' => $item, 'html' => $s];