]> git.mxchange.org Git - friendica.git/blob - src/Model/Term.php
Review updates
[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                 $messages = dba::select('item', ['uid', 'deleted', 'file'], ['id' => $itemid], ['limit' => 1]);
20                 if (!$messages) {
21                         return;
22                 }
23
24                 $message = $messages[0];
25
26                 // Clean up all tags
27                 q("DELETE FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d)",
28                         intval(TERM_OBJ_POST),
29                         intval($itemid),
30                         intval(TERM_FILE),
31                         intval(TERM_CATEGORY));
32
33                 if ($message["deleted"])
34                         return;
35
36                 if (preg_match_all("/\[(.*?)\]/ism", $message["file"], $files)) {
37                         foreach ($files[1] as $file) {
38                                 dba::insert('term', ['uid' => $message["uid"], 'oid' => $itemid, 'otype' => TERM_OBJ_POST, 'type' => TERM_FILE, 'term' => $file]);
39                         }
40                 }
41
42                 if (preg_match_all("/\<(.*?)\>/ism", $message["file"], $files)) {
43                         foreach ($files[1] as $file) {
44                                 dba::insert('term', ['uid' => $message["uid"], 'oid' => $itemid, 'otype' => TERM_OBJ_POST, 'type' => TERM_CATEGORY, 'term' => $file]);
45                         }
46                 }
47         }
48
49         /**
50          * @param string  $itemuri item uri
51          * @param integer $uid     uid
52          * @return void
53          */
54         public static function createFromItemURI($itemuri, $uid)
55         {
56                 $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid));
57
58                 if (count($messages)) {
59                         foreach ($messages as $message) {
60                                 self::createFromItem($message["id"]);
61                         }
62                 }
63         }
64 }