-
-function item_add_implicit_mentions(array $tags, array $thread_parent_contact, $thread_parent_uriid)
-{
- if (DI::config()->get('system', 'disable_implicit_mentions')) {
- // Add a tag if the parent contact is from ActivityPub or OStatus (This will notify them)
- if (in_array($thread_parent_contact['network'], [Protocol::OSTATUS, Protocol::ACTIVITYPUB])) {
- $contact = Tag::TAG_CHARACTER[Tag::MENTION] . '[url=' . $thread_parent_contact['url'] . ']' . $thread_parent_contact['nick'] . '[/url]';
- if (!stripos(implode($tags), '[url=' . $thread_parent_contact['url'] . ']')) {
- $tags[] = $contact;
- }
- }
- } else {
- $implicit_mentions = [
- $thread_parent_contact['url'] => $thread_parent_contact['nick']
- ];
-
- $parent_terms = Tag::getByURIId($thread_parent_uriid, [Tag::MENTION, Tag::IMPLICIT_MENTION]);
-
- foreach ($parent_terms as $parent_term) {
- $implicit_mentions[$parent_term['url']] = $parent_term['name'];
- }
-
- foreach ($implicit_mentions as $url => $label) {
- if ($url != \Friendica\Model\Profile::getMyURL() && !stripos(implode($tags), '[url=' . $url . ']')) {
- $tags[] = Tag::TAG_CHARACTER[Tag::IMPLICIT_MENTION] . '[url=' . $url . ']' . $label . '[/url]';
- }
- }
- }
-
- return $tags;
-}