]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Tag.php
Dant try to add mentions on starting posts
[friendica.git] / src / Model / Tag.php
index 9b4b1eb41b806d127eb0b85c9653c56e2ba88cc0..41c6de11176056c4c444e6d296478f921f435c85 100644 (file)
@@ -325,6 +325,32 @@ class Tag
                }
        }
 
+       /**
+        * Create implicit mentions for a given post
+        *
+        * @param integer $uri_id
+        * @param integer $parent_uri_id
+        */
+       public static function createImplicitMentions(int $uri_id, int $parent_uri_id)
+       {
+               if ($uri_id == $parent_uri_id) {
+                       return;
+               }
+
+               // Always mention the direct parent author
+               $parent = Item::selectFirst(['author-link', 'author-name'], ['uri-id' => $parent_uri_id]);
+               self::store($uri_id, self::IMPLICIT_MENTION, $parent['author-name'], $parent['author-link']);
+
+               if (DI::config()->get('system', 'disable_implicit_mentions')) {
+                       return;
+               }
+
+               $tags = DBA::select('tag-view', ['name', 'url'], ['uri-id' => $parent_uri_id]);
+               while ($tag = DBA::fetch($tags)) {
+                       self::store($uri_id, self::IMPLICIT_MENTION, $tag['name'], $tag['url']);
+               }
+       }
+
        /**
         * Retrieves the terms from the provided type(s) associated with the provided item ID.
         *
@@ -339,6 +365,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 getCSVByURIId(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.