Merge pull request #12061 from annando/share-rework

The "share" handling is improved
This commit is contained in:
Hypolite Petovan 2022-10-25 09:04:16 -04:00 committed by GitHub
commit a7e9457ef2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 75 additions and 112 deletions

View file

@ -680,10 +680,10 @@ class Item
$shared_content .= '[h3]' . $item['title'] . "[/h3]\n";
}
$shared = BBCode::fetchShareAttributes($item['body']);
$shared = ItemModel::getShareArray($item);
// If it is a reshared post then reformat it to avoid display problems with two share elements
if (Diaspora::isReshare($item['body'], false)) {
if (!empty($shared)) {
if (!empty($shared['guid']) && ($encaspulated_share = self::createSharedPostByGuid($shared['guid'], 0, '', $add_media))) {
$item['body'] = preg_replace("/\[share.*?\](.*)\[\/share\]/ism", $encaspulated_share, $item['body']);
}

View file

@ -1023,6 +1023,7 @@ class BBCode
{
DI::profiler()->startRecording('rendering');
if (preg_match('~(.*?)\[share](.*)\[/share]~ism', $text, $matches)) {
DI::profiler()->stopRecording();
return [
'author' => '',
'profile' => '',
@ -1093,12 +1094,7 @@ class BBCode
*/
public static function removeSharedData(string $body): string
{
return BBCode::convertShare(
$body,
function (array $attributes) {
return '';
}
);
return preg_replace("/\s*\[share .*?\].*?\[\/share\]\s*/ism", '', $body);
}
/**