]> git.mxchange.org Git - friendica.git/blob - src/Model/Term.php
selectFirst
[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 class Term
10 {
11         /**
12          * @param integer $itemid item id
13          * @return void
14          */
15         public static function createFromItem($itemid)
16         {
17                 $messages = dba::select('item', ['guid', 'uid', 'id', 'edited', 'deleted', 'file', 'parent'], ['id' => $itemid], ['limit' => 1]);
18                 if (!$messages) {
19                         return;
20                 }
21
22                 $message = $messages[0];
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                 if (preg_match_all("/\[(.*?)\]/ism", $message["file"], $files)) {
35                         foreach ($files[1] as $file) {
36                                 dba::insert('term', ['uid' => $message["uid"], 'oid' => $itemid, 'otype' => TERM_OBJ_POST, 'type' => TERM_FILE, 'term' => $file]);
37                         }
38                 }
39
40                 if (preg_match_all("/\<(.*?)\>/ism", $message["file"], $files)) {
41                         foreach ($files[1] as $file) {
42                                 dba::insert('term', ['uid' => $message["uid"], 'oid' => $itemid, 'otype' => TERM_OBJ_POST, 'type' => TERM_CATEGORY, 'term' => $file]);
43                         }
44                 }
45         }
46
47         /**
48          * @param string  $itemuri item uri
49          * @param integer $uid     uid
50          * @return void
51          */
52         public static function createFromItemURI($itemuri, $uid)
53         {
54                 $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid));
55
56                 if (count($messages)) {
57                         foreach ($messages as $message)
58                                 self::createFromItem($message["id"]);
59                 }
60         }
61
62         /**
63          * @return void
64          */
65         private function update_files_for_items()
66         {
67                 $messages = q("SELECT `id` FROM `item` where file !=''");
68
69                 foreach ($messages as $message) {
70                         echo $message["id"] . "\n";
71                         self::createFromItem($message["id"]);
72                 }
73         }
74 }