]> git.mxchange.org Git - friendica.git/blob - src/Model/Term.php
Merge pull request #4376 from MrPetovan/task/3878-move-include-like-to-src
[friendica.git] / src / Model / Term.php
1 <?php
2 /**
3  * @file src/Model/Term
4  */
5 namespace Friendica\Model;
6
7 use dba;
8
9 require_once "include/dba.php";
10
11 class Term
12 {
13         /**
14          * @param integer $itemid item id
15          * @return void
16          */
17         public static function createFromItem($itemid)
18         {
19                 $message = dba::selectFirst('item', ['uid', 'deleted', 'file'], ['id' => $itemid]);
20                 if (!\Friendica\Database\DBM::is_result($message)) {
21                         return;
22                 }
23
24                 // Clean up all tags
25                 q("DELETE FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d)",
26                         intval(TERM_OBJ_POST),
27                         intval($itemid),
28                         intval(TERM_FILE),
29                         intval(TERM_CATEGORY));
30
31                 if ($message["deleted"]) {
32                         return;
33                 }
34
35                 if (preg_match_all("/\[(.*?)\]/ism", $message["file"], $files)) {
36                         foreach ($files[1] as $file) {
37                                 dba::insert('term', [
38                                         'uid' => $message["uid"],
39                                         'oid' => $itemid,
40                                         'otype' => TERM_OBJ_POST,
41                                         'type' => TERM_FILE,
42                                         'term' => $file
43                                 ]);
44                         }
45                 }
46
47                 if (preg_match_all("/\<(.*?)\>/ism", $message["file"], $files)) {
48                         foreach ($files[1] as $file) {
49                                 dba::insert('term', [
50                                         'uid' => $message["uid"],
51                                         'oid' => $itemid,
52                                         'otype' => TERM_OBJ_POST,
53                                         'type' => TERM_CATEGORY,
54                                         'term' => $file
55                                 ]);
56                         }
57                 }
58         }
59
60         /**
61          * @param string  $itemuri item uri
62          * @param integer $uid     uid
63          * @return void
64          */
65         public static function createFromItemURI($itemuri, $uid)
66         {
67                 $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid));
68
69                 if (count($messages)) {
70                         foreach ($messages as $message) {
71                                 self::createFromItem($message["id"]);
72                         }
73                 }
74         }
75 }