X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FPost.php;h=7b77276de83c38528a410958174d5f2a6da6915a;hb=2647514603852fe5fb9f47f0bf153dd20c124ce6;hp=aae847664db2093efee10ebc45575a2fa44a39ad;hpb=f69dab6d1c51d54a9647bc2f191c34954cce2023;p=friendica.git diff --git a/src/Model/Post.php b/src/Model/Post.php index aae847664d..7b77276de8 100644 --- a/src/Model/Post.php +++ b/src/Model/Post.php @@ -124,24 +124,43 @@ class Post } /** - * Check if post data exists + * Check if post-user-view records 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, bool $user_mode = true) { - return DBA::exists($user_mode ? 'post-user-view' : 'post-view', $condition); + public static function exists($condition) { + return DBA::exists('post-user-view', $condition); + } + + /** + * Counts the post-user-view records satisfying the provided condition + * + * @param array $condition array of fields for condition + * @param array $params Array of several parameters + * + * @return int + * + * Example: + * $condition = ["uid" => 1, "network" => 'dspr']; + * or: + * $condition = ["`uid` = ? AND `network` IN (?, ?)", 1, 'dfrn', 'dspr']; + * + * $count = Post::count($condition); + * @throws \Exception + */ + public static function count(array $condition = [], array $params = []) + { + return DBA::count('post-user-view', $condition, $params); } /** - * Counts the posts satisfying the provided condition + * Counts the post-thread-user-view records satisfying the provided 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 * @@ -153,17 +172,39 @@ class Post * $count = Post::count($condition); * @throws \Exception */ - public static function count(array $condition = [], array $params = [], bool $user_mode = true) + public static function countThread(array $condition = [], array $params = []) { - return DBA::count($user_mode ? 'post-user-view' : 'post-view', $condition, $params); + return DBA::count('post-thread-user-view', $condition, $params); } /** - * Retrieve a single record from the post table and returns it in an associative array + * Counts the post-view records satisfying the provided condition + * + * @param array $condition array of fields for condition + * @param array $params Array of several parameters + * + * @return int + * + * Example: + * $condition = ["network" => 'dspr']; + * or: + * $condition = ["`network` IN (?, ?)", 1, 'dfrn', 'dspr']; + * + * $count = Post::count($condition); + * @throws \Exception + */ + public static function countPosts(array $condition = [], array $params = []) + { + return DBA::count('post-view', $condition, $params); + } + + /** + * Retrieve a single record from the post-user-view view and returns it in an associative array * * @param array $fields * @param array $condition * @param array $params + * @param bool $user_mode true = post-user-view, false = post-view * @return bool|array * @throws \Exception * @see DBA::select @@ -184,7 +225,32 @@ class Post } /** - * Retrieve a single record from the post-thread table and returns it in an associative array + * Retrieve a single record from the post-view view and returns it in an associative array + * + * @param array $fields + * @param array $condition + * @param array $params + * @return bool|array + * @throws \Exception + * @see DBA::select + */ + public static function selectFirstPost(array $fields = [], array $condition = [], $params = []) + { + $params['limit'] = 1; + + $result = self::selectPosts($fields, $condition, $params); + + if (is_bool($result)) { + return $result; + } else { + $row = self::fetch($result); + DBA::close($result); + return $row; + } + } + + /** + * Retrieve a single record from the post-thread-user-view view and returns it in an associative array * * @param array $fields * @param array $condition @@ -209,7 +275,7 @@ class Post } /** - * Select rows from the post table and returns them as an array + * Select rows from the post-user-view view and returns them as an array * * @param array $selected Array of selected fields, empty for all * @param array $condition Array of fields for condition @@ -262,23 +328,37 @@ class Post } /** - * Select rows from the post table + * Select rows from the post-user-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 - * @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 = [], bool $user_mode = true) + public static function select(array $selected = [], array $condition = [], $params = []) + { + return self::selectView('post-user-view', $selected, $condition, $params); + } + + /** + * Select rows from the post-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 selectPosts(array $selected = [], array $condition = [], $params = []) { - return self::selectView($user_mode ? 'post-user-view' : 'post-view', $selected, $condition, $params); + return self::selectView('post-view', $selected, $condition, $params); } /** - * Select rows from the post table + * Select rows from the post-thread-user-view view * * @param array $selected Array of selected fields, empty for all * @param array $condition Array of fields for condition @@ -335,7 +415,7 @@ class Post } /** - * Select rows from the post view for a given user + * Select rows from the post-user-view view for a given user * * @param integer $uid User ID * @param array $selected Array of selected fields, empty for all @@ -350,8 +430,24 @@ class Post return self::selectViewForUser('post-user-view', $uid, $selected, $condition, $params); } - /** - * Select rows from the post view for a given user + /** + * Select rows from the post-view view for a given user + * + * @param integer $uid User ID + * @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 selectPostsForUser($uid, array $selected = [], array $condition = [], $params = []) + { + return self::selectViewForUser('post-view', $uid, $selected, $condition, $params); + } + + /** + * Select rows from the post-thread-user-view view for a given user * * @param integer $uid User ID * @param array $selected Array of selected fields, empty for all @@ -367,7 +463,7 @@ class Post } /** - * Retrieve a single record from the post view for a given user and returns it in an associative array + * Retrieve a single record from the post-user-view view for a given user and returns it in an associative array * * @param integer $uid User ID * @param array $selected @@ -393,7 +489,7 @@ class Post } /** - * Select pinned rows from the item table for a given user + * Select pinned rows from the post-thread-user table for a given user * * @param integer $uid User ID * @param array $selected Array of selected fields, empty for all