<?php
/**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
}
/**
- * Fills an array with data from an post query
+ * Fills an array with data from a post query
*
- * @param object $stmt statement object
- * @param bool $do_close
+ * @param object|bool $stmt Return value from Database->select
* @return array Data array
- * @todo Find proper type-hint for $stmt and maybe avoid boolean
+ * @throws \Exception
*/
- public static function toArray($stmt, bool $do_close = true)
+ public static function toArray($stmt): array
{
if (is_bool($stmt)) {
- return $stmt;
+ return [];
}
$data = [];
while ($row = self::fetch($stmt)) {
$data[] = $row;
}
- if ($do_close) {
- DBA::close($stmt);
- }
+
+ DBA::close($stmt);
+
return $data;
}
return self::selectView('post-thread-user-view', $selected, $condition, $params);
}
+ /**
+ * Select rows from the post-thread-view view
+ *
+ * @param array $selected Array of selected fields, empty for all
+ * @param array $condition Array of fields for condition
+ * @param array $params Array of several parameters
+ *
+ * @return boolean|object
+ * @throws \Exception
+ */
+ public static function selectPostThread(array $selected = [], array $condition = [], array $params = [])
+ {
+ return self::selectView('post-thread-view', $selected, $condition, $params);
+ }
+
/**
* Select rows from the given view for a given user
*
AND ((NOT `contact-readonly` AND NOT `contact-pending` AND (`contact-rel` IN (?, ?)))
OR `self` OR `gravity` != ? OR `contact-uid` = ?)
AND NOT `" . $view . "`.`uri-id` IN (SELECT `uri-id` FROM `post-user` WHERE `uid` = ? AND `hidden`)
- AND NOT `author-id` IN (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `blocked`)
- AND NOT `owner-id` IN (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `blocked`)
- AND NOT (`gravity` = ? AND `author-id` IN (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `ignored`))
- AND NOT (`gravity` = ? AND `owner-id` IN (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `ignored`))",
+ AND NOT `author-id` IN (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `blocked` AND `cid` = `author-id`)
+ AND NOT `owner-id` IN (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `blocked` AND `cid` = `owner-id`)
+ AND NOT (`gravity` = ? AND `author-id` IN (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `ignored` AND `cid` = `author-id`))
+ AND NOT (`gravity` = ? AND `owner-id` IN (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `ignored` AND `cid` = `owner-id`))",
0, Contact::SHARING, Contact::FRIEND, Item::GRAVITY_PARENT, 0, $uid, $uid, $uid, Item::GRAVITY_PARENT, $uid, Item::GRAVITY_PARENT, $uid]);
$select_string = implode(', ', array_map([DBA::class, 'quoteIdentifier'], $selected));