DEV: Мелкие изменения

This commit is contained in:
Evg 2021-06-09 00:24:58 +03:00
parent 277dee174c
commit ed09d73acd
15 changed files with 101 additions and 143 deletions

View file

@ -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

View file

@ -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

View file

@ -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 поста

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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 {

View file

@ -1,7 +1,7 @@
<meta property="og:title" content="<?= $data['meta_title']; ?>"/>
<meta property="og:description" content="<?= $data['meta_desc']; ?>"/>
<meta property="og:site_name" content="<?= Lori\Config::get(Lori\Config::PARAM_HOME_TITLE); ?>"/>
<meta property="og:url" content="<?= $data['canonical']; ?>"/>
<meta property="og:url" content="<?= $data['canonical']; ?>"/>
<?php if ($data['sheet'] == 'article') { ?>
<meta property="og:type" content="article"/>

View file

@ -79,11 +79,11 @@
<?php if(!($data['pNum'] > $data['pagesCount'])) { ?>
<div class="pagination">
<?php if($data['pNum'] != 1) { ?>
<a href="/admin/<?= $data['pNum'] - 1; ?>"> << <?= lang('Page'); ?> <?= $data['pNum'] - 1; ?></a>
<a class="link" href="/admin/<?= $data['pNum'] - 1; ?>"> << <?= lang('Page'); ?> <?= $data['pNum'] - 1; ?></a>
<?php } ?>
<?php if($data['pagesCount'] != $data['pNum'] && $data['pNum'] != 1) { ?>|<?php } ?>
<?php if($data['pagesCount'] > $data['pNum']) { ?>
<a href="/admin/<?= $data['pNum'] + 1; ?>"><?= lang('Page'); ?> <?= $data['pNum'] + 1; ?> >></a>
<a class="link" href="/admin/<?= $data['pNum'] + 1; ?>"><?= lang('Page'); ?> <?= $data['pNum'] + 1; ?> >></a>
<?php } ?>
</div>
<?php } ?>

View file

@ -60,11 +60,11 @@
<?php if(!($data['pNum'] > $data['pagesCount'])) { ?>
<div class="pagination">
<?php if($data['pNum'] != 1) { ?>
<a href="/comments/<?= $data['pNum'] - 1; ?>"> << <?= lang('Page'); ?> <?= $data['pNum'] - 1; ?></a>
<a class="link" href="/comments/<?= $data['pNum'] - 1; ?>"> << <?= lang('Page'); ?> <?= $data['pNum'] - 1; ?></a>
<?php } ?>
<?php if($data['pagesCount'] != $data['pNum'] && $data['pNum'] != 1) { ?>|<?php } ?>
<?php if($data['pagesCount'] > $data['pNum']) { ?>
<a href="/comments/<?= $data['pNum'] + 1; ?>"><?= lang('Page'); ?> <?= $data['pNum'] + 1; ?> >></a>
<a class="link" href="/comments/<?= $data['pNum'] + 1; ?>"><?= lang('Page'); ?> <?= $data['pNum'] + 1; ?> >></a>
<?php } ?>
</div>
<?php } ?>

View file

@ -61,11 +61,11 @@
<?php if(!($data['pNum'] > $data['pagesCount'])) { ?>
<div class="pagination">
<?php if($data['pNum'] != 1) { ?>
<a href="/comments/<?= $data['pNum'] - 1; ?>"> << <?= lang('Page'); ?> <?= $data['pNum'] - 1; ?></a>
<a class="link" href="/comments/<?= $data['pNum'] - 1; ?>"> << <?= lang('Page'); ?> <?= $data['pNum'] - 1; ?></a>
<?php } ?>
<?php if($data['pagesCount'] != $data['pNum'] && $data['pNum'] != 1) { ?>|<?php } ?>
<?php if($data['pagesCount'] > $data['pNum']) { ?>
<a href="/comments/<?= $data['pNum'] + 1; ?>"><?= lang('Page'); ?> <?= $data['pNum'] + 1; ?> >></a>
<a class="link" href="/comments/<?= $data['pNum'] + 1; ?>"><?= lang('Page'); ?> <?= $data['pNum'] + 1; ?> >></a>
<?php } ?>
</div>
<?php } ?>

View file

@ -58,48 +58,48 @@
</div>
<div class="dropdown-menu">
<span class="st"></span>
<a href="/u/<?= $uid['login']; ?>">
<a class="dr-menu" href="/u/<?= $uid['login']; ?>">
<i class="icon user"></i>
<?= lang('Profile'); ?>
</a>
<a href="/u/<?= $uid['login']; ?>/setting">
<a class="dr-menu" href="/u/<?= $uid['login']; ?>/setting">
<i class="icon settings"></i>
<?= lang('Settings'); ?>
</a>
<a href="/u/<?= $uid['login']; ?>/drafts">
<a class="dr-menu" href="/u/<?= $uid['login']; ?>/drafts">
<i class="icon book-open"></i>
<?= lang('Drafts'); ?>
</a>
<a href="/u/<?= $uid['login']; ?>/notifications">
<a class="dr-menu" href="/u/<?= $uid['login']; ?>/notifications">
<i class="icon bell"></i>
<?= lang('Notifications'); ?>
</a>
<a href="/u/<?= $uid['login']; ?>/messages">
<a class="dr-menu" href="/u/<?= $uid['login']; ?>/messages">
<i class="icon envelope"></i>
<?= lang('Messages-m'); ?>
</a>
<a href="/u/<?= $uid['login']; ?>/comments">
<a class="dr-menu" href="/u/<?= $uid['login']; ?>/comments">
<i class="icon bubbles"></i>
<?= lang('Comments-n'); ?>
</a>
<a href="/u/<?= $uid['login']; ?>/favorite">
<a class="dr-menu" href="/u/<?= $uid['login']; ?>/favorite">
<i class="icon star"></i>
<?= lang('Favorites'); ?>
</a>
<?php if($uid['trust_level'] > 1) { ?>
<a href="/u/<?= $uid['login']; ?>/invitation">
<a class="dr-menu" href="/u/<?= $uid['login']; ?>/invitation">
<i class="icon link"></i>
<?= lang('Invites'); ?>
</a>
<?php } ?>
<?php if($uid['trust_level'] == 5) { ?>
<a href="/admin" target="_black">
<a class="dr-menu" href="/admin" target="_black">
<i class="icon shield"></i>
<?= lang('Admin'); ?>
</a>
<?php } ?>
<hr>
<a href="/logout" class="logout" target="_self" title="<?= lang('Sign out'); ?>">
<a class="dr-menu" href="/logout" class="logout" title="<?= lang('Sign out'); ?>">
<i class="icon logout"></i>
<?= lang('Sign out'); ?>
</a>

View file

@ -148,11 +148,11 @@
<?php if(!($data['pNum'] > $data['pagesCount'])) { ?>
<div class="pagination">
<?php if($data['pNum'] != 1) { ?>
<a href="/<?= $data['pNum'] - 1; ?>"> << <?= lang('Page'); ?> <?= $data['pNum'] - 1; ?></a>
<a class="link" href="/<?= $data['pNum'] - 1; ?>"> << <?= lang('Page'); ?> <?= $data['pNum'] - 1; ?></a>
<?php } ?>
<?php if($data['pagesCount'] != $data['pNum'] && $data['pNum'] != 1) { ?>|<?php } ?>
<?php if($data['pagesCount'] > $data['pNum']) { ?>
<a href="/<?= $data['pNum'] + 1; ?>"><?= lang('Page'); ?> <?= $data['pNum'] + 1; ?> >></a>
<a class="link" href="/<?= $data['pNum'] + 1; ?>"><?= lang('Page'); ?> <?= $data['pNum'] + 1; ?> >></a>
<?php } ?>
</div>
<?php } ?>

View file

@ -52,7 +52,7 @@
</div>
<div class="post-telo fav-answ">
<a class="u-url" href="/post/<?= $fav['post']['post_id']; ?>/<?= $fav['post']['post_slug']; ?>#answ_<?= $fav['answer_id']; ?>">
<h3 class="titl"><?= $fav['post']['post_title']; ?></h3>
<h3 class="title"><?= $fav['post']['post_title']; ?></h3>
</a>
<div class="space-color space_<?= $fav['post']['space_color'] ?>"></div>
<a class="space-u" href="/s/<?= $fav['post']['space_slug']; ?>" title="<?= $fav['post']['space_name']; ?>">