X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FTag.php;h=368be55ddd28f3a4f100c6b63d21b972fce7f742;hb=6aa1dcfad371f34fea1f8e39b73de2cc3dd05784;hp=6611245a0c69ff3268ddb2740ceeef39eb2b58e8;hpb=a7e9457ef2417b74aadfe3640f1ed2e2b332c1fd;p=friendica.git diff --git a/src/Model/Tag.php b/src/Model/Tag.php index 6611245a0c..368be55ddd 100644 --- a/src/Model/Tag.php +++ b/src/Model/Tag.php @@ -1,6 +1,6 @@ $uriId, 'hash' => $tags, 'callstack' => System::callstack()]); + $item = ['uri-id' => $uriId, 'body' => $body, 'quote-uri-id' => null]; + self::storeFromArray($item, $tags); + } + + /** + * Store tags and mentions from the item array + * + * @param array $item Item array + * @param string $tags Accepted tags + * @return void + */ + public static function storeFromArray(array $item, string $tags = null) + { + Logger::info('Check for tags', ['uri-id' => $item['uri-id'], 'hash' => $tags, 'callstack' => System::callstack()]); if (is_null($tags)) { $tags = self::TAG_CHARACTER[self::HASHTAG] . self::TAG_CHARACTER[self::MENTION] . self::TAG_CHARACTER[self::EXCLUSIVE_MENTION]; } - // Only remove the shared data from "real" reshares - $shared = BBCode::fetchShareAttributes($body); - if (!empty($shared['guid'])) { - $share_body = $shared['shared']; - $body = BBCode::removeSharedData($body); + foreach (self::getFromBody($item['body'], $tags) as $tag) { + self::storeByHash($item['uri-id'], $tag[1], $tag[3], $tag[2]); } - foreach (self::getFromBody($body, $tags) as $tag) { - self::storeByHash($uriId, $tag[1], $tag[3], $tag[2], $probing); - } + $shared = DI::contentItem()->getSharedPost($item, ['uri-id']); // Search for hashtags in the shared body (but only if hashtags are wanted) - if (!empty($share_body) && (strpos($tags, self::TAG_CHARACTER[self::HASHTAG]) !== false)) { - foreach (self::getFromBody($share_body, self::TAG_CHARACTER[self::HASHTAG]) as $tag) { - self::storeByHash($uriId, $tag[1], $tag[3], $tag[2], $probing); + if (!empty($shared) && (strpos($tags, self::TAG_CHARACTER[self::HASHTAG]) !== false)) { + foreach (self::getByURIId($shared['post']['uri-id'], [self::HASHTAG]) as $tag) { + self::store($item['uri-id'], $tag['type'], $tag['name'], $tag['url']); } } }