<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* Check if post data exists
*
* @param array $condition array of fields for condition
+ * @param bool $user_mode true = post-user-view, false = post-view
*
* @return boolean Are there rows for that condition?
* @throws \Exception
*/
- public static function exists($condition) {
- return DBA::exists('post-user-view', $condition);
+ public static function exists($condition, bool $user_mode = true) {
+ return DBA::exists($user_mode ? 'post-user-view' : 'post-view', $condition);
}
/**
*
* @param array $condition array of fields for condition
* @param array $params Array of several parameters
+ * @param bool $user_mode true = post-user-view, false = post-view
*
* @return int
*
* $count = Post::count($condition);
* @throws \Exception
*/
- public static function count(array $condition = [], array $params = [])
+ public static function count(array $condition = [], array $params = [], bool $user_mode = true)
{
- return DBA::count('post-user-view', $condition, $params);
+ return DBA::count($user_mode ? 'post-user-view' : 'post-view', $condition, $params);
}
/**
* @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
+ * @param bool $user_mode true = post-user-view, false = post-view
*
* @return boolean|object
* @throws \Exception
*/
- public static function select(array $selected = [], array $condition = [], $params = [])
+ public static function select(array $selected = [], array $condition = [], $params = [], bool $user_mode = true)
{
- return self::selectView('post-user-view', $selected, $condition, $params);
+ return self::selectView($user_mode ? 'post-user-view' : 'post-view', $selected, $condition, $params);
}
/**
AND NOT EXISTS (SELECT `cid` FROM `user-contact` WHERE `uid` = ? AND `cid` = `owner-id` AND `ignored` AND `gravity` = ?)",
0, Contact::SHARING, Contact::FRIEND, GRAVITY_PARENT, 0, $uid, $uid, $uid, $uid, GRAVITY_PARENT, $uid, GRAVITY_PARENT]);
- $select_string = '';
-
- if (in_array('pinned', $selected)) {
- $selected = array_flip($selected);
- unset($selected['pinned']);
- $selected = array_flip($selected);
-
- $select_string = "(SELECT `pinned` FROM `post-thread-user` WHERE `uri-id` = `" . $view . "`.`uri-id` AND uid=`" . $view . "`.`uid`) AS `pinned`, ";
- }
-
- $select_string .= implode(', ', array_map([DBA::class, 'quoteIdentifier'], $selected));
+ $select_string = implode(', ', array_map([DBA::class, 'quoteIdentifier'], $selected));
$condition_string = DBA::buildCondition($condition);
$param_string = DBA::buildParameter($params);
if (!DBA::isResult($postthreaduser)) {
return $postthreaduser;
}
-
+
$pinned = [];
while ($useritem = DBA::fetch($postthreaduser)) {
$pinned[] = $useritem['uri-id'];