diff --git a/include/items.php b/include/items.php index 3ddb1f2793..83f7f76a85 100644 --- a/include/items.php +++ b/include/items.php @@ -12,6 +12,7 @@ use Friendica\Database\DBM; use Friendica\Model\Contact; use Friendica\Model\GContact; use Friendica\Model\Group; +use Friendica\Model\Term; use Friendica\Model\User; use Friendica\Object\Image; use Friendica\Protocol\DFRN; @@ -21,7 +22,6 @@ use Friendica\Util\ParseUrl; require_once 'include/bbcode.php'; require_once 'include/tags.php'; -require_once 'include/files.php'; require_once 'include/text.php'; require_once 'include/threads.php'; require_once 'include/plaintext.php'; @@ -1109,7 +1109,7 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f * This is not perfect - but a workable solution until we found the reason for the problem. */ create_tags_from_item($current_post); - create_files_from_item($current_post); + Term::createFromItem($current_post); /* * If this is now the last-child, force all _other_ children of this parent to *not* be last-child @@ -2157,7 +2157,7 @@ function drop_item($id, $interactive = true) { array('id' => $item['id'])); create_tags_from_item($item['id']); - create_files_from_item($item['id']); + Term::createFromItem($item['id']); delete_thread($item['id'], $item['parent-uri']); // clean up categories and tags so they don't end up as orphans @@ -2230,7 +2230,7 @@ function drop_item($id, $interactive = true) { array('parent-uri' => $item['parent-uri'], 'uid' => $item['uid'])); create_tags_from_itemuri($item['parent-uri'], $item['uid']); - create_files_from_itemuri($item['parent-uri'], $item['uid']); + Term::createFromItemURI($item['parent-uri'], $item['uid']); delete_thread_uri($item['parent-uri'], $item['uid']); // ignore the result } else { diff --git a/include/text.php b/include/text.php index 7ed561bbbb..f82a2ea3d3 100644 --- a/include/text.php +++ b/include/text.php @@ -10,6 +10,7 @@ use Friendica\Core\Config; use Friendica\Core\PConfig; use Friendica\Core\System; use Friendica\Database\DBM; +use Friendica\Model\Term; use Friendica\Util\Map; require_once "include/friendica_smarty.php"; @@ -1895,9 +1896,8 @@ function file_tag_update_pconfig($uid, $file_old, $file_new, $type = 'file') { return true; } -function file_tag_save_file($uid, $item, $file) { - require_once "include/files.php"; - +function file_tag_save_file($uid, $item, $file) +{ if (! intval($uid)) { return false; } @@ -1915,7 +1915,7 @@ function file_tag_save_file($uid, $item, $file) { ); } - create_files_from_item($item); + Term::createFromItem($item); $saved = PConfig::get($uid, 'system', 'filetags'); if (!strlen($saved) || !stristr($saved, '[' . file_tag_encode($file) . ']')) { @@ -1955,7 +1955,7 @@ function file_tag_unsave_file($uid, $item, $file, $cat = false) { intval($uid) ); - create_files_from_item($item); + Term::createFromItem($item); $r = q("SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d", dbesc($file), diff --git a/src/Model/Item.php b/src/Model/Item.php index 49cb499c30..2ad610ccac 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -7,10 +7,10 @@ namespace Friendica\Model; use Friendica\Core\Worker; +use Friendica\Model\Term; use dba; require_once 'include/tags.php'; -require_once 'include/files.php'; require_once 'include/threads.php'; class Item @@ -52,7 +52,7 @@ class Item } create_tags_from_item($item['id']); - create_files_from_item($item['id']); + Term::createFromItem($item['id']); update_thread($item['id']); Worker::add(PRIORITY_HIGH, "Notifier", 'edit_post', $item['id']); diff --git a/src/Model/Term.php b/src/Model/Term.php index 3b327b582c..8b007a93ae 100644 --- a/src/Model/Term.php +++ b/src/Model/Term.php @@ -4,15 +4,17 @@ */ namespace Friendica\Model; +use dba; + class Term { /** * @param integer $itemid item id * @return void */ - function create_files_from_item($itemid) + public static function createFromItem($itemid) { - $messages = q("SELECT `guid`, `uid`, `id`, `edited`, `deleted`, `file`, `parent` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid)); + $messages = dba::selectFirst('item', ['guid', 'uid', 'id', 'edited', 'deleted', 'file', 'parent'], ['id' => $itemid]); if (!$messages) { return; } @@ -31,15 +33,13 @@ class Term 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)); + dba::insert('term', ['uid' => $message["uid"], 'oid' => $itemid, 'otype' => TERM_OBJ_POST, 'type' => TERM_FILE, 'term' => $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)); + dba::insert('term', ['uid' => $message["uid"], 'oid' => $itemid, 'otype' => TERM_OBJ_POST, 'type' => TERM_CATEGORY, 'term' => $file]); } } } @@ -49,26 +49,26 @@ class Term * @param integer $uid uid * @return void */ - function create_files_from_itemuri($itemuri, $uid) + public static function createFromItemURI($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"]); + self::createFromItem($message["id"]); } } /** * @return void */ - function update_files_for_items() + private 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"]); + self::createFromItem($message["id"]); } } } \ No newline at end of file diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 4d63f2b0bb..509d05e6c6 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -17,6 +17,7 @@ use Friendica\Model\Contact; use Friendica\Model\GContact; use Friendica\Model\Group; use Friendica\Model\Profile; +use Friendica\Model\Term; use Friendica\Model\User; use Friendica\Object\Image; use Friendica\Protocol\OStatus; @@ -32,7 +33,6 @@ require_once "include/enotify.php"; require_once "include/threads.php"; require_once "include/items.php"; require_once "include/tags.php"; -require_once "include/files.php"; require_once "include/event.php"; require_once "include/text.php"; require_once "include/html2bbcode.php"; @@ -2912,7 +2912,7 @@ class DFRN intval($importer["uid"]) ); create_tags_from_itemuri($uri, $importer["uid"]); - create_files_from_itemuri($uri, $importer["uid"]); + Term::createFromItemURI($uri, $importer["uid"]); update_thread_uri($uri, $importer["uid"]); } else { $r = q( @@ -2925,7 +2925,7 @@ class DFRN intval($importer["uid"]) ); create_tags_from_itemuri($uri, $importer["uid"]); - create_files_from_itemuri($uri, $importer["uid"]); + Term::createFromItemURI($uri, $importer["uid"]); update_thread_uri($uri, $importer["importer_uid"]); if ($item["last-child"]) { // ensure that last-child is set in case the comment that had it just got wiped.