1
0
Fork 0

Fixes issue 7914: Reshares got crumbled

This commit is contained in:
Michael 2019-12-07 21:05:14 +00:00
commit 23cdc9cec8
3 changed files with 6 additions and 7 deletions

View file

@ -953,12 +953,11 @@ class BBCode extends BaseObject
public static function convertShare($text, callable $callback)
{
$return = preg_replace_callback(
"/(.*?)\[share(.*?)\](.*?)\[\/share\]/ism",
"/(.*?)\[share(.*?)\](.*)\[\/share\]/ism",
function ($match) use ($callback) {
$attribute_string = $match[2];
$attributes = [];
foreach(['author', 'profile', 'avatar', 'link', 'posted'] as $field) {
foreach (['author', 'profile', 'avatar', 'link', 'posted'] as $field) {
preg_match("/$field=(['\"])(.+?)\\1/ism", $attribute_string, $matches);
$attributes[$field] = html_entity_decode($matches[2] ?? '', ENT_QUOTES, 'UTF-8');
}

View file

@ -3833,7 +3833,7 @@ class Item extends BaseObject
$body = $shared_item['body'];
}
$item['body'] = preg_replace("/(.*?\[share.*?\]\s?).*?(\s?\[\/share\]\s?)/ism", '$1' . $body . '$2', $item['body']);
$item['body'] = preg_replace("/\[share ([^\[\]]*)\].*\[\/share\]/ism", '[share $1]' . $body . '[/share]', $item['body']);
unset($shared_item['body']);
return array_merge($item, $shared_item);