diff --git a/mod/photos.php b/mod/photos.php index 8f968d0c08..f4983a8380 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -1307,9 +1307,10 @@ function photos_content(App $a) } $tags = null; + $tag_text = Tag::tagTextFromItemId($link_item['uri-id']); - if (!empty($link_item['id']) && !empty($link_item['tag'])) { - $arr = explode(',', $link_item['tag']); + if (!empty($link_item['id']) && !empty($tag_text)) { + $arr = explode(',', $tag_text); // parse tags and add links $tag_arr = []; foreach ($arr as $tag) { diff --git a/mod/tagrm.php b/mod/tagrm.php index 7e8ae8524b..3aefe0680f 100644 --- a/mod/tagrm.php +++ b/mod/tagrm.php @@ -97,15 +97,16 @@ function tagrm_content(App $a) // NOTREACHED } - $item = Item::selectFirst(['tag'], ['id' => $item_id, 'uid' => local_user()]); + $item = Item::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => local_user()]); if (!DBA::isResult($item)) { DI::baseUrl()->redirect($_SESSION['photo_return']); } - $arr = explode(',', $item['tag']); + $tag_text = Tag::tagTextFromItemId($item['uri-id']); + $arr = explode(',', $tag_text); - if (empty($item['tag'])) { + if (empty($arr)) { DI::baseUrl()->redirect($_SESSION['photo_return']); } diff --git a/src/Model/Tag.php b/src/Model/Tag.php index 9b4b1eb41b..f21d2ffec6 100644 --- a/src/Model/Tag.php +++ b/src/Model/Tag.php @@ -339,6 +339,23 @@ class Tag return DBA::selectToArray('tag-view', ['type', 'name', 'url'], $condition); } + /** + * Return a string with all tags and mentions + * + * @param integer $uri_id + * @return string tags and mentions + */ + public static function tagTextFromItemId(int $uri_id) + { + $tag_list = []; + $tags = self::getByURIId($uri_id); + foreach ($tags as $tag) { + $tag_list[] = self::TAG_CHARACTER[$tag['type']] . '[url=' . $tag['url'] . ']' . $tag['name'] . '[/url]'; + } + + return implode(',', $tag_list); + } + /** * Sorts an item's tags into mentions, hashtags and other tags. Generate personalized URLs by user and modify the * provided item's body with them.