From 95825b4b927f9aff75c64dce5aaf40229e4a9065 Mon Sep 17 00:00:00 2001 From: lalka2016 <99399973+lalka2016@users.noreply.github.com> Date: Tue, 30 May 2023 12:39:36 +0300 Subject: [PATCH] fiksy bagiv --- Web/Models/Repositories/Comments.php | 16 +++-- Web/Models/Repositories/Posts.php | 17 +++-- Web/Models/Repositories/Users.php | 86 +++++++++++++++++------ Web/Models/Repositories/Videos.php | 19 +++-- Web/Presenters/SearchPresenter.php | 3 - Web/Presenters/templates/Search/Index.xml | 1 - Web/static/js/openvk.cls.js | 2 +- 7 files changed, 104 insertions(+), 40 deletions(-) diff --git a/Web/Models/Repositories/Comments.php b/Web/Models/Repositories/Comments.php index 4b4dfc57..f4b8e5ac 100644 --- a/Web/Models/Repositories/Comments.php +++ b/Web/Models/Repositories/Comments.php @@ -66,20 +66,28 @@ class Comments $notNullParams = []; - foreach($pars as $paramName => $paramValue) { + foreach($pars as $paramName => $paramValue) if($paramName != "before" && $paramName != "after") $paramValue != NULL ? $notNullParams+=["$paramName" => "%$paramValue%"] : NULL; else $paramValue != NULL ? $notNullParams+=["$paramName" => "$paramValue"] : NULL; - } $result = $this->comments->where("content LIKE ?", $query)->where("deleted", 0); $nnparamsCount = sizeof($notNullParams); if($nnparamsCount > 0) { - !is_null($notNullParams["before"]) ? $result->where("created < ?", $notNullParams["before"]) : NULL; - !is_null($notNullParams["after"]) ? $result->where("created > ?", $notNullParams["after"]) : NULL; + foreach($notNullParams as $paramName => $paramValue) { + switch($paramName) { + case "before": + $result->where("created < ?", $paramValue); + break; + case "after": + $result->where("created > ?", $paramValue); + break; + } + } } + return new Util\EntityStream("Comment", $result->order("$sort")); } } diff --git a/Web/Models/Repositories/Posts.php b/Web/Models/Repositories/Posts.php index 8056264a..c354f152 100644 --- a/Web/Models/Repositories/Posts.php +++ b/Web/Models/Repositories/Posts.php @@ -106,20 +106,29 @@ class Posts $notNullParams = []; - foreach($pars as $paramName => $paramValue) { + foreach($pars as $paramName => $paramValue) if($paramName != "before" && $paramName != "after") $paramValue != NULL ? $notNullParams+=["$paramName" => "%$paramValue%"] : NULL; else $paramValue != NULL ? $notNullParams+=["$paramName" => "$paramValue"] : NULL; - } $result = $this->posts->where("content LIKE ?", $query)->where("deleted", 0); $nnparamsCount = sizeof($notNullParams); if($nnparamsCount > 0) { - !is_null($notNullParams["before"]) ? $result->where("created < ?", $notNullParams["before"]) : NULL; - !is_null($notNullParams["after"]) ? $result->where("created > ?", $notNullParams["after"]) : NULL; + foreach($notNullParams as $paramName => $paramValue) { + switch($paramName) { + case "before": + $result->where("created < ?", $paramValue); + break; + case "after": + $result->where("created > ?", $paramValue); + break; + } + } } + + return new Util\EntityStream("Post", $result->order("$sort")); } diff --git a/Web/Models/Repositories/Users.php b/Web/Models/Repositories/Users.php index c98c5a47..07fa2eff 100644 --- a/Web/Models/Repositories/Users.php +++ b/Web/Models/Repositories/Users.php @@ -57,37 +57,79 @@ class Users $notNullParams = []; $nnparamsCount = 0; - foreach($pars as $paramName => $paramValue) { + foreach($pars as $paramName => $paramValue) if($paramName != "before" && $paramName != "after" && $paramName != "gender") $paramValue != NULL ? $notNullParams += ["$paramName" => "%$paramValue%"] : NULL; else $paramValue != NULL ? $notNullParams += ["$paramName" => "$paramValue"] : NULL; - } $nnparamsCount = sizeof($notNullParams); if($nnparamsCount > 0) { - !is_null($notNullParams["hometown"]) ? $result->where("hometown LIKE ?", $notNullParams["hometown"]) : NULL; - !is_null($notNullParams["city"]) ? $result->where("city LIKE ?", $notNullParams["city"]) : NULL; - !is_null($notNullParams["maritalstatus"]) ? $result->where("marital_status LIKE ?", $notNullParams["maritalstatus"]) : NULL; - !is_null($notNullParams["status"]) ? $result->where("status LIKE ?", $notNullParams["status"]) : NULL; - !is_null($notNullParams["politViews"]) ? $result->where("polit_views LIKE ?", $notNullParams["politViews"]) : NULL; - !is_null($notNullParams["email"]) ? $result->where("email_contact LIKE ?", $notNullParams["email"]) : NULL; - !is_null($notNullParams["telegram"]) ? $result->where("telegram LIKE ?", $notNullParams["telegram"]) : NULL; - !is_null($notNullParams["site"]) ? $result->where("website LIKE ?", $notNullParams["site"]) : NULL; - !is_null($notNullParams["address"]) ? $result->where("address LIKE ?", $notNullParams["address"]) : NULL; - !is_null($notNullParams["is_online"]) ? $result->where("online >= ?", time() - 900) : NULL; - !is_null($notNullParams["interests"]) ? $result->where("interests LIKE ?", $notNullParams["interests"]) : NULL; - !is_null($notNullParams["fav_mus"]) ? $result->where("fav_music LIKE ?", $notNullParams["fav_mus"]) : NULL; - !is_null($notNullParams["fav_films"]) ? $result->where("fav_films LIKE ?", $notNullParams["fav_films"]) : NULL; - !is_null($notNullParams["fav_shows"]) ? $result->where("fav_shows LIKE ?", $notNullParams["fav_shows"]) : NULL; - !is_null($notNullParams["fav_books"]) ? $result->where("fav_books LIKE ?", $notNullParams["fav_books"]) : NULL; - !is_null($notNullParams["fav_quote"]) ? $result->where("fav_quote LIKE ?", $notNullParams["fav_quote"]) : NULL; - !is_null($notNullParams["before"]) ? $result->where("UNIX_TIMESTAMP(since) < ?", $notNullParams["before"]) : NULL; - !is_null($notNullParams["after"]) ? $result->where("UNIX_TIMESTAMP(since) > ?", $notNullParams["after"]) : NULL; - !is_null($notNullParams["gender"]) ? $result->where("sex ?", $notNullParams["gender"]) : NULL; - # !is_null($notNullParams["has_avatar"]) ? $result->related(): NULL; + foreach($notNullParams as $paramName => $paramValue) { + switch($paramName) { + case "hometown": + $result->where("hometown LIKE ?", $paramValue); + break; + case "city": + $result->where("city LIKE ?", $paramValue); + break; + case "maritalstatus": + $result->where("marital_status LIKE ?", $paramValue); + break; + case "status": + $result->where("status LIKE ?", $paramValue); + break; + case "politViews": + $result->where("polit_views LIKE ?", $paramValue); + break; + case "email": + $result->where("email_contact LIKE ?", $paramValue); + break; + case "telegram": + $result->where("telegram LIKE ?", $paramValue); + break; + case "site": + $result->where("telegram LIKE ?", $paramValue); + break; + case "address": + $result->where("address LIKE ?", $paramValue); + break; + case "is_online": + $result->where("online >= ?", time() - 900); + break; + case "interests": + $result->where("interests LIKE ?", $paramValue); + break; + case "fav_mus": + $result->where("fav_music LIKE ?", $paramValue); + break; + case "fav_films": + $result->where("fav_films LIKE ?", $paramValue); + break; + case "fav_shows": + $result->where("fav_shows LIKE ?", $paramValue); + break; + case "fav_books": + $result->where("fav_books LIKE ?", $paramValue); + break; + case "fav_quote": + $result->where("fav_quote LIKE ?", $paramValue); + break; + case "before": + $result->where("UNIX_TIMESTAMP(since) < ?", $paramValue); + break; + case "after": + $result->where("UNIX_TIMESTAMP(since) > ?", $paramValue); + break; + case "gender": + $result->where("sex ?", $paramValue); + break; + } + } } + + return new Util\EntityStream("User", $result->order($sort)); } diff --git a/Web/Models/Repositories/Videos.php b/Web/Models/Repositories/Videos.php index 92ebc11c..30753371 100644 --- a/Web/Models/Repositories/Videos.php +++ b/Web/Models/Repositories/Videos.php @@ -52,20 +52,29 @@ class Videos $notNullParams = []; - foreach($pars as $paramName => $paramValue) { + foreach($pars as $paramName => $paramValue) if($paramName != "before" && $paramName != "after") $paramValue != NULL ? $notNullParams+=["$paramName" => "%$paramValue%"] : NULL; else $paramValue != NULL ? $notNullParams+=["$paramName" => "$paramValue"] : NULL; - } - + $result = $this->videos->where("name OR description LIKE ?", $query)->where("deleted", 0); $nnparamsCount = sizeof($notNullParams); if($nnparamsCount > 0) { - !is_null($notNullParams["before"]) ? $result->where("created < ?", $notNullParams["before"]) : NULL; - !is_null($notNullParams["after"]) ? $result->where("created > ?", $notNullParams["after"]) : NULL; + foreach($notNullParams as $paramName => $paramValue) { + switch($paramName) { + case "before": + $result->where("created < ?", $paramValue); + break; + case "after": + $result->where("created > ?", $paramValue); + break; + } + } } + + return new Util\EntityStream("Video", $result->order("$sort")); } } diff --git a/Web/Presenters/SearchPresenter.php b/Web/Presenters/SearchPresenter.php index f029edc8..fadf9954 100644 --- a/Web/Presenters/SearchPresenter.php +++ b/Web/Presenters/SearchPresenter.php @@ -57,9 +57,6 @@ final class SearchPresenter extends OpenVKPresenter case "id": $sort = "id " . $invert; break; - case "random": - $sort = "RAND()"; - break; case "name": $sort = "first_name " . $invert; break; diff --git a/Web/Presenters/templates/Search/Index.xml b/Web/Presenters/templates/Search/Index.xml index 4d9ade92..bf30bb35 100644 --- a/Web/Presenters/templates/Search/Index.xml +++ b/Web/Presenters/templates/Search/Index.xml @@ -249,7 +249,6 @@