<?php /** * @file src/Model/Term */ namespace Friendica\Model; class Term { /** * @param integer $itemid item id * @return void */ function create_files_from_item($itemid) { $messages = q("SELECT `guid`, `uid`, `id`, `edited`, `deleted`, `file`, `parent` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid)); if (!$messages) { return; } $message = $messages[0]; // Clean up all tags q("DELETE FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d)", intval(TERM_OBJ_POST), intval($itemid), intval(TERM_FILE), intval(TERM_CATEGORY)); if ($message["deleted"]) return; if (preg_match_all("/\[(.*?)\]/ism", $message["file"], $files)) { foreach ($files[1] as $file) { q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')", intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_FILE), dbesc($file)); } } if (preg_match_all("/\<(.*?)\>/ism", $message["file"], $files)) { foreach ($files[1] as $file) { q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')", intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CATEGORY), dbesc($file)); } } } /** * @param string $itemuri item uri * @param integer $uid uid * @return void */ function create_files_from_itemuri($itemuri, $uid) { $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid)); if (count($messages)) { foreach ($messages as $message) create_files_from_item($message["id"]); } } /** * @return void */ function update_files_for_items() { $messages = q("SELECT `id` FROM `item` where file !=''"); foreach ($messages as $message) { echo $message["id"] . "\n"; create_files_from_item($message["id"]); } } }