Merge pull request #8048 from MrPetovan/bug/fix-bbcode-scaleexternalimage
Fix BBCode::scaleExternalImage
This commit is contained in:
commit
5d20cd7e16
|
@ -246,7 +246,7 @@ function item_post(App $a) {
|
||||||
$app = $orig_post['app'];
|
$app = $orig_post['app'];
|
||||||
$categories = $orig_post['file'];
|
$categories = $orig_post['file'];
|
||||||
$title = Strings::escapeTags(trim($_REQUEST['title']));
|
$title = Strings::escapeTags(trim($_REQUEST['title']));
|
||||||
$body = Strings::escapeHtml(trim($body));
|
$body = trim($body);
|
||||||
$private = $orig_post['private'];
|
$private = $orig_post['private'];
|
||||||
$pubmail_enabled = $orig_post['pubmail'];
|
$pubmail_enabled = $orig_post['pubmail'];
|
||||||
$network = $orig_post['network'];
|
$network = $orig_post['network'];
|
||||||
|
@ -285,7 +285,7 @@ function item_post(App $a) {
|
||||||
$coord = Strings::escapeTags(trim($_REQUEST['coord'] ?? ''));
|
$coord = Strings::escapeTags(trim($_REQUEST['coord'] ?? ''));
|
||||||
$verb = Strings::escapeTags(trim($_REQUEST['verb'] ?? ''));
|
$verb = Strings::escapeTags(trim($_REQUEST['verb'] ?? ''));
|
||||||
$emailcc = Strings::escapeTags(trim($_REQUEST['emailcc'] ?? ''));
|
$emailcc = Strings::escapeTags(trim($_REQUEST['emailcc'] ?? ''));
|
||||||
$body = Strings::escapeHtml(trim($body));
|
$body = trim($body);
|
||||||
$network = Strings::escapeTags(trim(($_REQUEST['network'] ?? '') ?: Protocol::DFRN));
|
$network = Strings::escapeTags(trim(($_REQUEST['network'] ?? '') ?: Protocol::DFRN));
|
||||||
$guid = System::createUUID();
|
$guid = System::createUUID();
|
||||||
|
|
||||||
|
@ -509,7 +509,7 @@ function item_post(App $a) {
|
||||||
// Fold multi-line [code] sequences
|
// Fold multi-line [code] sequences
|
||||||
$body = preg_replace('/\[\/code\]\s*\[code\]/ism', "\n", $body);
|
$body = preg_replace('/\[\/code\]\s*\[code\]/ism', "\n", $body);
|
||||||
|
|
||||||
$body = BBCode::scaleExternalImages($body, false);
|
$body = BBCode::scaleExternalImages($body);
|
||||||
|
|
||||||
// Setting the object type if not defined before
|
// Setting the object type if not defined before
|
||||||
if (!$objecttype) {
|
if (!$objecttype) {
|
||||||
|
|
|
@ -436,15 +436,9 @@ class BBCode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function scaleExternalImages($srctext, $include_link = true, $scale_replace = false)
|
public static function scaleExternalImages($srctext)
|
||||||
{
|
{
|
||||||
// Suppress "view full size"
|
$s = $srctext;
|
||||||
if (intval(Config::get('system', 'no_view_full_size'))) {
|
|
||||||
$include_link = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Picture addresses can contain special characters
|
|
||||||
$s = htmlspecialchars_decode($srctext);
|
|
||||||
|
|
||||||
$matches = null;
|
$matches = null;
|
||||||
$c = preg_match_all('/\[img.*?\](.*?)\[\/img\]/ism', $s, $matches, PREG_SET_ORDER);
|
$c = preg_match_all('/\[img.*?\](.*?)\[\/img\]/ism', $s, $matches, PREG_SET_ORDER);
|
||||||
|
@ -457,17 +451,7 @@ class BBCode
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// $scale_replace, if passed, is an array of two elements. The
|
$i = Network::fetchUrl($mtch[1]);
|
||||||
// first is the name of the full-size image. The second is the
|
|
||||||
// name of a remote, scaled-down version of the full size image.
|
|
||||||
// This allows Friendica to display the smaller remote image if
|
|
||||||
// one exists, while still linking to the full-size image
|
|
||||||
if ($scale_replace) {
|
|
||||||
$scaled = str_replace($scale_replace[0], $scale_replace[1], $mtch[1]);
|
|
||||||
} else {
|
|
||||||
$scaled = $mtch[1];
|
|
||||||
}
|
|
||||||
$i = Network::fetchUrl($scaled);
|
|
||||||
if (!$i) {
|
if (!$i) {
|
||||||
return $srctext;
|
return $srctext;
|
||||||
}
|
}
|
||||||
|
@ -488,10 +472,8 @@ class BBCode
|
||||||
Logger::log('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], Logger::DEBUG);
|
Logger::log('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], Logger::DEBUG);
|
||||||
$s = str_replace(
|
$s = str_replace(
|
||||||
$mtch[0],
|
$mtch[0],
|
||||||
'[img=' . $new_width . 'x' . $new_height. ']' . $scaled . '[/img]'
|
'[img=' . $new_width . 'x' . $new_height. ']' . $mtch[1] . '[/img]'
|
||||||
. "\n" . (($include_link)
|
. "\n",
|
||||||
? '[url=' . $mtch[1] . ']' . L10n::t('view full size') . '[/url]' . "\n"
|
|
||||||
: ''),
|
|
||||||
$s
|
$s
|
||||||
);
|
);
|
||||||
Logger::log('scale_external_images: new string: ' . $s, Logger::DEBUG);
|
Logger::log('scale_external_images: new string: ' . $s, Logger::DEBUG);
|
||||||
|
@ -501,8 +483,6 @@ class BBCode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// replace the special char encoding
|
|
||||||
$s = htmlspecialchars($s, ENT_NOQUOTES, 'UTF-8');
|
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -119,7 +119,7 @@ class Markdown
|
||||||
$s = preg_replace('/(\[code\])+(.*?)(\[\/code\])+/ism', '[code]$2[/code]', $s);
|
$s = preg_replace('/(\[code\])+(.*?)(\[\/code\])+/ism', '[code]$2[/code]', $s);
|
||||||
|
|
||||||
// Don't show link to full picture (until it is fixed)
|
// Don't show link to full picture (until it is fixed)
|
||||||
$s = BBCode::scaleExternalImages($s, false);
|
$s = BBCode::scaleExternalImages($s);
|
||||||
|
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -297,10 +297,6 @@ return [
|
||||||
// Don't show smilies.
|
// Don't show smilies.
|
||||||
'no_smilies' => false,
|
'no_smilies' => false,
|
||||||
|
|
||||||
// no_view_full_size (Boolean)
|
|
||||||
// Don't add the link "View full size" under a resized image.
|
|
||||||
'no_view_full_size' => false,
|
|
||||||
|
|
||||||
// optimize_items (Boolean)
|
// optimize_items (Boolean)
|
||||||
// Triggers an SQL command to optimize the item table before expiring items.
|
// Triggers an SQL command to optimize the item table before expiring items.
|
||||||
'optimize_items' => false,
|
'optimize_items' => false,
|
||||||
|
|
Loading…
Reference in a new issue