diff --git a/mod/photos.php b/mod/photos.php index 18118bcd96..0a8dc472d7 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -375,7 +375,7 @@ function photos_post(App $a) $arr['visible'] = 0; $arr['origin'] = 1; - $arr['body'] = Images::getImageUrl($photo['resource-id'], $user['nickname'], $photo['scale'], $ext, ''); + $arr['body'] = Images::getBBCodeByResource($photo['resource-id'], $user['nickname'], $photo['scale'], $ext); $item_id = Item::insert($arr); } diff --git a/src/Model/Post/Media.php b/src/Model/Post/Media.php index 5e867d26cf..e040f2b113 100644 --- a/src/Model/Post/Media.php +++ b/src/Model/Post/Media.php @@ -489,7 +489,7 @@ class Media if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]\s*\[/url\]#ism", $body, $pictures, PREG_SET_ORDER)) { foreach ($pictures as $picture) { if (self::isLinkToImagePage($picture[1], $picture[2])) { - $body = str_replace($picture[0], Images::getPictureUrl(str_replace(['-1.', '-2.'], '-0.', $picture[2]), $picture[2], $picture[3]), $body); + $body = str_replace($picture[0], Images::getBBCodeByUrl(str_replace(['-1.', '-2.'], '-0.', $picture[2]), $picture[2], $picture[3]), $body); } } } @@ -497,7 +497,7 @@ class Media if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img\]([^\[]+?)\[/img\]\s*\[/url\]#ism", $body, $pictures, PREG_SET_ORDER)) { foreach ($pictures as $picture) { if (self::isLinkToImagePage($picture[1], $picture[2])) { - $body = str_replace($picture[0], Images::getPictureUrl(str_replace(['-1.', '-2.'], '-0.', $picture[2]), $picture[2], ''), $body); + $body = str_replace($picture[0], Images::getBBCodeByUrl(str_replace(['-1.', '-2.'], '-0.', $picture[2]), $picture[2]), $body); } } } @@ -1004,15 +1004,7 @@ class Media } if ($media['type'] == self::IMAGE) { - if (!empty($media['preview'])) { - $body .= "\n" . Images::getPictureUrl($media['url'], $media['preview'], $media['description']); - } else { - if (!empty($media['description'])) { - $body .= "\n[img=" . $media['url'] . ']' . $media['description'] . '[/img]'; - } else { - $body .= "\n[img]" . $media['url'] . '[/img]'; - } - } + $body .= "\n" . Images::getBBCodeByUrl($media['url'], $media['preview'], $media['description']); } elseif ($media['type'] == self::AUDIO) { $body .= "\n[audio]" . $media['url'] . "[/audio]\n"; } elseif ($media['type'] == self::VIDEO) { diff --git a/src/Module/Media/Photo/Upload.php b/src/Module/Media/Photo/Upload.php index 8ea079c6cf..e53ca35b86 100644 --- a/src/Module/Media/Photo/Upload.php +++ b/src/Module/Media/Photo/Upload.php @@ -34,7 +34,6 @@ use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Object\Image; use Friendica\Util\Images; use Friendica\Util\Profiler; -use Friendica\Util\Strings; use Psr\Log\LoggerInterface; /** @@ -180,7 +179,7 @@ class Upload extends \Friendica\BaseModule } $this->logger->info('upload done'); - $this->return(200, "\n\n" . Images::getImageUrl($resource_id, $owner['nickname'], $preview, $image->getExt(), '') . "\n\n"); + $this->return(200, "\n\n" . Images::getBBCodeByResource($resource_id, $owner['nickname'], $preview, $image->getExt()) . "\n\n"); } /** diff --git a/src/Module/Profile/Photos.php b/src/Module/Profile/Photos.php index 720efa060b..9d8b27592c 100644 --- a/src/Module/Profile/Photos.php +++ b/src/Module/Profile/Photos.php @@ -273,7 +273,7 @@ class Photos extends \Friendica\Module\BaseProfile $arr['visible'] = $visible; $arr['origin'] = 1; - $arr['body'] = Images::getImageUrl($resource_id, $this->owner['nickname'], $preview, $image->getExt(), ''); + $arr['body'] = Images::getBBCodeByResource($resource_id, $this->owner['nickname'], $preview, $image->getExt()); $item_id = Item::insert($arr); // Update the photo albums cache diff --git a/src/Util/Images.php b/src/Util/Images.php index 08553a1a9c..90c2aae9db 100644 --- a/src/Util/Images.php +++ b/src/Util/Images.php @@ -318,30 +318,36 @@ class Images } /** - * Get a link to a an image link with a preview + * Get a BBCode tag for an local photo page URL with a preview thumbnail and an image description * * @param string $resource_id - * @param string $nickname - * @param integer $preview - * @param string $ext + * @param string $nickname The local user owner of the resource + * @param int $preview Preview image size identifier, either 0, 1 or 2 in decreasing order of size + * @param string $ext Image file extension * @param string $description * @return string */ - public static function getImageUrl(string $resource_id, string $nickname, int $preview, string $ext, string $description): string + public static function getBBCodeByResource(string $resource_id, string $nickname, int $preview, string $ext, string $description = ''): string { - return '[url=' . DI::baseUrl() . '/photos/' . $nickname . '/image/' . $resource_id . '][img=' . DI::baseUrl() . '/photo/' . $resource_id . '-' . $preview. '.' . $ext . ']' . $description . '[/img][/url]'; + return self::getBBCodeByUrl( + DI::baseUrl() . '/photos/' . $nickname . '/image/' . $resource_id, + DI::baseUrl() . '/photo/' . $resource_id . '-' . $preview. '.' . $ext, + $description + ); } /** - * Get a link to a picture with a preview + * Get a BBCode tag for an image URL with a preview thumbnail and an image description * - * @param string $photo - * @param string $preview + * @param string $photo Full image URL + * @param string $preview Preview image URL * @param string $description * @return string - */ - public static function getPictureUrl(string $photo, string $preview, string $description): string + */ public static function getBBCodeByUrl(string $photo, string $preview = null, string $description = ''): string { - return '[url=' . $photo . '][img=' . $preview . ']' . $description . '[/img][/url]'; + if (!empty($preview)) { + return '[url=' . $photo . '][img=' . $preview . ']' . $description . '[/img][/url]'; + } + return '[img=' . $photo . ']' . $description . '[/img]'; } }