]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Post/Category.php
Merge pull request #12674 from nupplaphil/bug/config_typesafe
[friendica.git] / src / Model / Post / Category.php
index b653f43a754a6bdc2d760a2d4a10b5bd438277a1..2c35a40ad4b8756adc990ecfe01bce85982ed371 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -50,6 +50,23 @@ class Category
                return DBA::delete('post-category', ['uri-id' => $uri_id, 'uid' => $uid]);
        }
 
+       /**
+        * Delete all categories and files from a given uri-id and user
+        *
+        * @param int $uri_id
+        * @param int $uid
+        * @return boolean success
+        * @throws \Exception
+        */
+       public static function deleteFileByURIId(int $uri_id, int $uid, int $type, string $file)
+       {
+               $tagid = Tag::getID($file);
+               if (empty($tagid)) {
+                       return false;
+               }
+
+               return DBA::delete('post-category', ['uri-id' => $uri_id, 'uid' => $uid, 'type' => $type, 'tid' => $tagid]);
+       }
        /**
         * Generates the legacy item.file field string from an item ID.
         * Includes only file and category terms.
@@ -94,6 +111,11 @@ class Category
                return array_column($tags, 'name');
        }
 
+       public static function existsForURIId(int $uri_id, int $uid)
+       {
+               return DBA::exists('post-category', ['uri-id' => $uri_id, 'uid' => $uid]);
+       }
+
        /**
         * Generates an array of files or categories of a given uri-id
         *
@@ -166,18 +188,23 @@ class Category
 
                if (preg_match_all("/\<(.*?)\>/ism", $files, $result)) {
                        foreach ($result[1] as $file) {
-                               $tagid = Tag::getID($file);
-                               if (empty($tagid)) {
-                                       continue;
-                               }
-
-                               DBA::replace('post-category', [
-                                       'uri-id' => $uri_id,
-                                       'uid' => $uid,
-                                       'type' => self::CATEGORY,
-                                       'tid' => $tagid
-                               ]);
+                               self::storeFileByURIId($uri_id, $uid, self::CATEGORY, $file);
                        }
                }
        }
+
+       public static function storeFileByURIId(int $uri_id, int $uid, int $type, string $file)
+       {
+               $tagid = Tag::getID($file);
+               if (empty($tagid)) {
+                       return false;
+               }
+
+               return DBA::replace('post-category', [
+                       'uri-id' => $uri_id,
+                       'uid' => $uid,
+                       'type' => $type,
+                       'tid' => $tagid
+               ]);
+       }
 }