From ed09d73acd97df8a7fb4bd7df8718a7768162e9c Mon Sep 17 00:00:00 2001 From: Evg Date: Wed, 9 Jun 2021 00:24:58 +0300 Subject: [PATCH] =?UTF-8?q?DEV:=20=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controllers/AnswerController.php | 10 +++-- app/Controllers/CommentController.php | 10 +++-- app/Controllers/PostController.php | 10 +++-- app/Controllers/VotesAnswController.php | 42 +++++++------------ app/Controllers/VotesCommController.php | 35 +++++----------- app/Models/VotesAnswerModel.php | 31 +++++++------- app/Models/VotesCommentModel.php | 22 +++++----- public/assets/css/style.css | 44 ++++++-------------- resources/views/default/OpenGraph.php | 2 +- resources/views/default/admin/index.php | 4 +- resources/views/default/answer/answ-all.php | 4 +- resources/views/default/comment/comm-all.php | 4 +- resources/views/default/header.php | 20 ++++----- resources/views/default/home.php | 4 +- resources/views/default/user/favorite.php | 2 +- 15 files changed, 101 insertions(+), 143 deletions(-) diff --git a/app/Controllers/AnswerController.php b/app/Controllers/AnswerController.php index d91cc23e..5316f275 100644 --- a/app/Controllers/AnswerController.php +++ b/app/Controllers/AnswerController.php @@ -75,10 +75,12 @@ class AnswerController extends \MainController // Ограничим частоту добавления // Добавить условие TL - $num_answ = CommentModel::getCommentSpeed($uid['id']); - if(count($num_answ) > 35) { - Base::addMsg('Вы исчерпали лимит ответов (35) на сегодня', 'error'); - redirect('/'); + if($uid['trust_level'] < 2) { + $num_answ = AnswerModel::getAnswerSpeed($uid['id']); + if(count($num_answ) > 10) { + Base::addMsg('Вы исчерпали лимит ответов (10) на сегодня', 'error'); + redirect('/'); + } } // Записываем ответ и получаем его url diff --git a/app/Controllers/CommentController.php b/app/Controllers/CommentController.php index 2b1c2629..1cc1927f 100644 --- a/app/Controllers/CommentController.php +++ b/app/Controllers/CommentController.php @@ -78,10 +78,12 @@ class CommentController extends \MainController // Ограничим частоту добавления // Добавить условие TL - $num_comm = CommentModel::getCommentSpeed($uid['id']); - if(count($num_comm) > 35) { - Base::addMsg('Вы исчерпали лимит комментариев (35) на сегодня', 'error'); - redirect('/'); + if($uid['trust_level'] < 2) { + $num_comm = CommentModel::getCommentSpeed($uid['id']); + if(count($num_comm) > 10) { + Base::addMsg('Вы исчерпали лимит комментариев (15) на сегодня', 'error'); + redirect('/'); + } } // Записываем коммент и получаем его url diff --git a/app/Controllers/PostController.php b/app/Controllers/PostController.php index bc581ac1..13753ea1 100644 --- a/app/Controllers/PostController.php +++ b/app/Controllers/PostController.php @@ -373,10 +373,12 @@ class PostController extends \MainController // Ограничим частоту добавления // Добавить условие TL - $num_post = PostModel::getPostSpeed($uid['id']); - if(count($num_post) > 5) { - Base::addMsg(lang('limit-post-day'), 'error'); - redirect('/'); + if($uid['trust_level'] < 2) { + $num_post = PostModel::getPostSpeed($uid['id']); + if(count($num_post) > 3) { + Base::addMsg(lang('limit-post-day'), 'error'); + redirect('/'); + } } // Получаем SEO поста diff --git a/app/Controllers/VotesAnswController.php b/app/Controllers/VotesAnswController.php index 83ca4a6c..22f919a9 100644 --- a/app/Controllers/VotesAnswController.php +++ b/app/Controllers/VotesAnswController.php @@ -6,43 +6,30 @@ use App\Models\FlowModel; use App\Models\VotesAnswerModel; use Hleb\Constructor\Handlers\Request; use XdORM\XD; +use Lori\Base; class VotesAnswController extends \MainController { - // Голосование за комментарий + // Голосование за ответ public function votes() { - - $answ_id = \Request::getPostInt('answ_id'); - - // Проверяем - if (!$answ_id) - { - return false; - } + $answ_id = \Request::getPostInt('answ_id'); + $uid = Base::getUid(); - // id того, кто голосует за ответ - $account = Request::getSession('account'); - $user_id = $account['user_id']; - // Информация об ответе - $answ_info = VotesAnswerModel::infoAnsw($answ_id); + $answ_info = VotesAnswerModel::infoAnswerId($answ_id); // Пользователь не должен голосовать за свой ответ - if ($user_id == $answ_info['answer_user_id']) { + if ($uid['id'] == $answ_info['answer_user_id']) { return false; } // Проверяем, голосовал ли пользователь за ответ - $userup = VotesAnswerModel::getVoteStatus($answ_info['answer_id'], $user_id); + $userup = VotesAnswerModel::getVoteStatus($answ_info['answer_id'], $uid['id']); if($userup == 1) { - - // далее удаление строки в таблице голосования за ответ - // далее уменьшаем на -1 количество комментариев в самом ответе - // см. код ниже. А пока: - + // + если будет в минус return false; } else { @@ -50,20 +37,20 @@ class VotesAnswController extends \MainController $up = 1; $date = date("Y-m-d H:i:s"); $ip = Request::getRemoteAddress(); - VotesAnswerModel::saveVoteAnsw($answ_id, $up, $ip, $user_id, $date); + VotesAnswerModel::saveVoteUp($answ_id, $up, $ip, $uid['id'], $date); - // Получаем количество votes комментария + // Получаем количество $votes_num = $answ_info['answer_votes']; $votes = $votes_num + 1; - // Записываем новое значение Votes в строку комментария по id - XD::update(['answers'])->set(['answer_votes'], '=', $votes)->where(['answer_id'], '=', $answ_id)->run(); + // Записываем новое значение Votes по id + VotesAnswerModel::saveVoteAnswerQuantity($votes, $answ_id); // Добавим в чат и в поток $data_flow = [ 'flow_action_id' => 7, // в чат добавим ответ 'flow_content' => '', - 'flow_user_id' => $user_id, + 'flow_user_id' => $uid['id'], 'flow_pubdate' => $date, 'flow_url' => '', 'flow_target_id' => $answ_id, @@ -73,8 +60,7 @@ class VotesAnswController extends \MainController 'flow_ip' => $ip, ]; FlowModel::FlowAdd($data_flow); - - return false; + return true; } } diff --git a/app/Controllers/VotesCommController.php b/app/Controllers/VotesCommController.php index 538a635f..a38988f7 100644 --- a/app/Controllers/VotesCommController.php +++ b/app/Controllers/VotesCommController.php @@ -6,6 +6,7 @@ use App\Models\FlowModel; use App\Models\VotesCommentModel; use Hleb\Constructor\Handlers\Request; use XdORM\XD; +use Lori\Base; class VotesCommController extends \MainController { @@ -13,53 +14,39 @@ class VotesCommController extends \MainController // Голосование за комментарий public function votes() { - - $comm_id = \Request::getPostInt('comm_id'); - - // Проверяем - if (!$comm_id) - { - return false; - } - - // id того, кто голосует за комментарий - $account = Request::getSession('account'); - $user_id = $account['user_id']; + $comm_id = \Request::getPostInt('comm_id'); + $uid = Base::getUid(); // Информация об комментарии - $comm_info = VotesCommentModel::infoComm($comm_id); + $comm_info = VotesCommentModel::infoCommentId($comm_id); // Пользователь не должен голосовать за свой комментарий - if ($user_id == $comm_info['comment_user_id']) { + if ($uid['id'] == $comm_info['comment_user_id']) { return false; } // Проверяем, голосовал ли пользователь за комментарий - $userup = VotesCommentModel::getVoteStatus($comm_info['comment_id'], $user_id); + $userup = VotesCommentModel::getVoteStatus($comm_info['comment_id'], $uid['id']); if($userup == 1) { - // далее удаление строки в таблице голосования за комментарии - // далее уменьшаем на -1 количество комментариев в самом комментарии - // см. код ниже. А пока: - + // + если будет в минус return false; } else { - + $up = 1; $date = date("Y-m-d H:i:s"); $ip = Request::getRemoteAddress(); - VotesCommentModel::saveVote($comm_id, $up, $ip, $user_id, $date); + VotesCommentModel::saveVoteUp($comm_id, $up, $ip, $uid['id'], $date); // Получаем количество votes комментария $votes_num = $comm_info['comment_votes']; $votes = $votes_num + 1; // Записываем новое значение Votes в строку комментария по id - XD::update(['comments'])->set(['comment_votes'], '=', $votes)->where(['comment_id'], '=', $comm_id)->run(); - - return false; + VotesCommentModel::saveVoteCommQuantity($votes, $comm_id); + return true; } } diff --git a/app/Models/VotesAnswerModel.php b/app/Models/VotesAnswerModel.php index 2d121c52..641738d0 100644 --- a/app/Models/VotesAnswerModel.php +++ b/app/Models/VotesAnswerModel.php @@ -5,21 +5,15 @@ use XdORM\XD; class VotesAnswerModel extends \MainModel { - - // Информация по комментарию по его id - public static function infoAnsw($answ_id) { - - $q = XD::select('*')->from(['answers']); - $query = $q->where(['answer_id'], '=', $answ_id); - $info = $q->getSelectOne(); - - return $info; + // Информация по ответу по его id + public static function infoAnswerId($answ_id) + { + return XD::select('*')->from(['answers'])->where(['answer_id'], '=', $answ_id)->getSelectOne(); } - // Проверяем, голосовал ли пользователь за комментарий + // Проверяем, голосовал ли пользователь за ответ public static function getVoteStatus($answ_id, $uid) { - $q = XD::select('*')->from(['votes_answ']); $query = $q->where(['votes_answ_item_id'], '=', $answ_id)->and(['votes_answ_user_id'], '=', $uid); @@ -30,18 +24,21 @@ class VotesAnswerModel extends \MainModel } else { return false; } - } - // Записываем лайк за комментарий - public static function saveVoteAnsw($answ_id, $up, $ip, $user_id, $date) + // Записываем лайк за ответы + public static function saveVoteUp($answ_id, $up, $ip, $user_id, $date) { - - // var_dump() и для строки ->toString() используем XD::insertInto(['votes_answ'], '(', ['votes_answ_item_id'], ',', ['votes_answ_points'], ',', ['votes_answ_ip'], ',', ['votes_answ_user_id'], ',', ['votes_answ_date'], ')')->values( '(', XD::setList([$answ_id, $up, $ip, $user_id, $date]), ')' )->run(); return true; - } + // Записываем количество + public static function saveVoteAnswerQuantity($votes, $answ_id) + { + XD::update(['answers'])->set(['answer_votes'], '=', $votes)->where(['answer_id'], '=', $answ_id)->run(); + return true; + } + } \ No newline at end of file diff --git a/app/Models/VotesCommentModel.php b/app/Models/VotesCommentModel.php index 85d8d3e1..cbbae4a8 100644 --- a/app/Models/VotesCommentModel.php +++ b/app/Models/VotesCommentModel.php @@ -7,13 +7,9 @@ class VotesCommentModel extends \MainModel { // Информация по комментарию по его id - public static function infoComm($comm_id) { - - $q = XD::select('*')->from(['comments']); - $query = $q->where(['comment_id'], '=', $comm_id); - $info = $q->getSelectOne(); - - return $info; + public static function infoCommentId($comm_id) + { + return XD::select('*')->from(['comments'])->where(['comment_id'], '=', $comm_id)->getSelectOne(); } // Проверяем, голосовал ли пользователь за комментарий @@ -34,14 +30,18 @@ class VotesCommentModel extends \MainModel } // Записываем лайк за комментарий - public static function saveVote($comm_id, $up, $ip, $user_id, $date) + public static function saveVoteUp($comm_id, $up, $ip, $user_id, $date) { - - // var_dump() и для строки ->toString() используем XD::insertInto(['votes_comm'], '(', ['votes_comm_item_id'], ',', ['votes_comm_points'], ',', ['votes_comm_ip'], ',', ['votes_comm_user_id'], ',', ['votes_comm_date'], ')')->values( '(', XD::setList([$comm_id, $up, $ip, $user_id, $date]), ')' )->run(); return true; - + } + + // Записываем количество + public static function saveVoteCommQuantity($votes, $comm_id) + { + XD::update(['comments'])->set(['comment_votes'], '=', $votes)->where(['comment_id'], '=', $comm_id)->run(); + return true; } } \ No newline at end of file diff --git a/public/assets/css/style.css b/public/assets/css/style.css index b4ae2087..3eb61d7f 100644 --- a/public/assets/css/style.css +++ b/public/assets/css/style.css @@ -82,7 +82,7 @@ tt { } aside { - padding: 8px; + padding: 15px 8px 8px 8px; position: relative; float: right; width: 250px; @@ -200,7 +200,7 @@ a.add-post { } .nick span { - font-size: 13px; + font-size: 14px; margin-right: 5px; color: var(--tertiary); } @@ -211,9 +211,9 @@ a.add-post:hover { } a.link { - font-size: 13px; + font-size: 14px; color: var(--tertiary); - margin-left: 15px; + margin-left: 23px; } a.link:hover { @@ -298,7 +298,7 @@ a.home { .sb-date { margin-left: 20px; - font-size: 12px; + font-size: 13px; color: var(--tertiary); } @@ -326,7 +326,6 @@ a.home { .header-right i.icon { vertical-align: middle; - color: var(--tertiary); } .header-right i.icon.pencil { @@ -368,23 +367,12 @@ hr { height: 1px; } -/* Пагинация */ .pagination { margin: 5px 10px 10px 15px; float: left; clear: both; } -.pagination a { - padding: 0 3px; - color: var(--tertiary); - font-size: 15px; -} - -.pagination a:hover { - color: #333; -} - button, input[type="button"], input[type="reset"], @@ -927,11 +915,6 @@ img.img-post { color: var(--tertiary); } -.bar-space-telo:hover { - background: rgba(0, 154, 97, 0.08); - color: #1ca1f3; - text-decoration: none; -} .bar-space-telo img { margin-right: 6px; @@ -957,8 +940,7 @@ a.space-u:hover, } .bar-title { - margin-top: 15px; - color: #646464; + color: var(--tertiary); } /* Ответы */ @@ -1192,7 +1174,7 @@ ol.comment-telo { .qa-footer { width: 120px; margin: 0; - padding: 10px 0px 10px 0; + padding: 10px 0 10px 0; margin-left: 10px; border-radius: 3px; border: 1px solid #ddd; @@ -1562,7 +1544,6 @@ i.github { .dark h1.profile, .dark .nick span, .dark .header-right i.icon, -.dark .dropdown-menu a:hover, .dark .space-info-desc, .dark h3.recommend { color: #eee; @@ -1613,16 +1594,17 @@ i.github { display: block; } -.dropdown-menu a { +.dr-menu { color: var(--tertiary); display: block; - padding: 8px 9px 1px 6px; + padding: 5px 9px 5px 6px; font-size: 15px; } -.dropdown-menu a span.ti-angle-down:hover, -.dropdown-menu a:hover { - color: var(--primary); +.dr-menu:hover { + background: rgba(0, 154, 97, 0.08); + color: var(--quaternary); + text-decoration: none; } .login-nav-home { diff --git a/resources/views/default/OpenGraph.php b/resources/views/default/OpenGraph.php index 5afc3efc..6d722d57 100644 --- a/resources/views/default/OpenGraph.php +++ b/resources/views/default/OpenGraph.php @@ -1,7 +1,7 @@ - + diff --git a/resources/views/default/admin/index.php b/resources/views/default/admin/index.php index dfcdd948..ef2ebe1f 100644 --- a/resources/views/default/admin/index.php +++ b/resources/views/default/admin/index.php @@ -79,11 +79,11 @@ $data['pagesCount'])) { ?> diff --git a/resources/views/default/answer/answ-all.php b/resources/views/default/answer/answ-all.php index b1dcd4b1..d9073228 100644 --- a/resources/views/default/answer/answ-all.php +++ b/resources/views/default/answer/answ-all.php @@ -60,11 +60,11 @@ $data['pagesCount'])) { ?> diff --git a/resources/views/default/comment/comm-all.php b/resources/views/default/comment/comm-all.php index b8bac239..8a2b2244 100644 --- a/resources/views/default/comment/comm-all.php +++ b/resources/views/default/comment/comm-all.php @@ -61,11 +61,11 @@ $data['pagesCount'])) { ?> diff --git a/resources/views/default/header.php b/resources/views/default/header.php index ba276b92..189afabc 100644 --- a/resources/views/default/header.php +++ b/resources/views/default/header.php @@ -58,48 +58,48 @@
-

+