в админку добавлен Рейтинг комментариев

This commit is contained in:
2026-01-19 00:41:59 +05:00
parent da8e2f369b
commit 81493320e6
4 changed files with 68 additions and 16 deletions

View File

@@ -5,11 +5,11 @@
* Разрешения задаются в Админпанели
* Аватар Пользователя
* если есть в системе - выведет его изображение, если нет выведет аватар с первой буквой имени пользователя или анонима
* Авторский рейтинг
* При создании комментария , Автор может поставить оценку - звезды 5 баллов
* Авторская оценка
* При создании комментария , Автор может поставить оценку материалу (документу) - звезды 1...5 баллов
* Права для Анонимов (разрешено/нет)настраиваются в Админпанели
* Разрешать Авторский рейтинг при ответах настраивается в Админпанели
* Рейтинг Пользователей
* Разрешать Авторскую оценку в ответах настраивается в Админпанели
* Рейтинг комментариев
* Пользователи и Анонимы могут ставить оценки комментариям других Авторов
* На выбор два варианта или пять звезд или лайк (сердечко)
* Права для Анонимов (разрешено участвовать/нет)настраиваются в Админпанели

View File

@@ -1587,6 +1587,15 @@ function commentAdminListShow($tpl_dir)
}
}
$comment_rating_type = $AVE_DB->Query("
SELECT comment_rating_type
FROM " . PREFIX . "_module_comments
LIMIT 1
")->GetCell();
$AVE_Template->assign('comment_rating_type', (int)$comment_rating_type);
$AVE_Template->assign([
'docs' => $docs,
'page_nav' => ($num > $limit) ? get_pagination($seiten, 'page', ' <a class="pnav" href="index.php?do=modules&action=modedit&mod=comment&moduleaction=1&cp=' . $session_id . '&page={s}">{t}</a> ') : '',
@@ -1601,11 +1610,6 @@ function commentAdminListShow($tpl_dir)
*
* @param string $tpl_dir - путь к шаблонам модуля
*/
/**
* Метод, предназначенный для редактирования комментариев в Административной части.
*
* @param string $tpl_dir - путь к шаблонам модуля
*/
function commentAdminPostEdit($tpl_dir)
{
global $AVE_DB, $AVE_Template;

View File

@@ -165,16 +165,16 @@ COMMENT_TITEL_FIELD_1 = "Заголовок поля 1:"
COMMENT_TITEL_FIELD_2 = "Заголовок поля 2:"
COMMENT_FIELD_SHOW = " Показывать"
COMMENT_FIELD_REQUIRED = " Обязательное"
COMMENT_SET_OVER_RATING_TITEL = "Настройка общего рейтинга"
COMMENT_OVER_RATING_TYPE = "Тип общего рейтинга:"
COMMENT_SET_OVER_RATING_TITEL = "Настройка Рейтинга комментариев"
COMMENT_OVER_RATING_TYPE = "Тип рейтинга комментариев:"
COMMENT_OVER_RATING_STAR = "Звезды (1-5)"
COMMENT_OVER_RATING_LIKE = "Лайк (Сердечко)"
COMMENT_OVER_RATING_OFF = "Выключить рейтинг"
COMMENT_VOTING_RIGHTS = "Права на голосование:"
COMMENT_VOTING_RIGHTS_ANONIM = "Разрешить анонимам голосовать"
COMMENT_SET_AVTOR_RATING_TITEL = "Настройка авторского рейтинга"
COMMENT_SET_AVTOR_ASSESS = "Авторская оценка:"
COMMENT_SET_AVTOR_ON = "Включить \"Авторские звезды\""
COMMENT_SET_AVTOR_RATING_TITEL = "Настройка Авторской оценки"
COMMENT_SET_AVTOR_ASSESS = "Авторская оценка (звезды):"
COMMENT_SET_AVTOR_ON = "Включить Авторскую оценку"
COMMENT_SET_AVTOR_ON_AVWER = "Использовать в ответах"
COMMENT_AVTOR_RIGHTS_ANONIM = "Разрешить анонимам ставить звезды"
COMMENT_FILES_TITEL = "Настройки загрузки файлов"
@@ -247,9 +247,10 @@ COMMENT_CONFIRM_ADM_NAME = "Удалить навсегда (вместе с
COMMENT_CONFIRM_ADM_DIR_SOFT = "Мягкое удаление комментария (ветка остается)"
COMMENT_CONFIRM_ADM_NAME_SOFT = "Удалить все данные и применить текст Комментарий удален администратором ?"
COMMENT_TABLE_STATUS = "Статус"
COMMENT_TABLE_AUTOR_RATING = "Автор и Рейтинг"
COMMENT_TABLE_AUTOR_RATING = "Автор и Авторская оценка"
COMMENT_TABLE_IP = "IP адрес"
COMMENT_TABLE_DATE_EDIT = "Дата Создания / Редактирования"
COMMENT_TABLE_TEXT_COMM = "Текст комментария"
COMMENT_TABLE_FILES = "Файлы"
COMMENT_TABLE_ACTIONS = "Действия"
COMMENT_RATING_ADMIN = "Рейтинг комментариев"

View File

@@ -128,7 +128,14 @@
gap: 6px;
}
.del-adm { background: #fff5f5; color: #c0392b; border: 1px solid #fadbd8; }
.del-aut { background: #f8f9fa; color: #7f8c8d; border: 1px solid #e5e8e8; font-style: italic; }
.del-aut { background: #f8f9fa; color: #7f8c8d; border: 1px solid #e5e8e8; font-style: italic; }
/* Рейтинг комментария в таблице */
.comm-rating-box { display: flex; align-items: center; justify-content: center; gap: 5px; min-width: 80px; }
.comm-stars { color: #f1c40f; font-size: 13px; text-align: center; }
.comm-likes { color: #e74c3c; font-size: 13px; font-weight: bold; display: flex; align-items: center; gap: 4px; justify-content: center; }
.rating-count-box { font-size: 10px; color: #999; font-weight: normal; margin-top: -2px; }
.bi-heart-fill { font-size: 12px; }
</style>
@@ -150,6 +157,7 @@
<td width="110">{#COMMENT_TABLE_IP#}</td>
<td width="130">{#COMMENT_TABLE_DATE_EDIT#}</td>
<td>{#COMMENT_TABLE_TEXT_COMM#}</td>
<td width="90" align="center">{#COMMENT_RATING_ADMIN#}</td>
<td width="100">{#COMMENT_TABLE_FILES#}</td>
<td width="140" align="right">{#COMMENT_TABLE_ACTIONS#}</td>
</tr>
@@ -234,6 +242,45 @@
</div>
</td>
<td align="center">
<div class="comm-rating-box">
{if $comment_rating_type == 0}
{* ТИП 0: ЗВЕЗДЫ *}
<div class="comm-stars">
{assign var="comm_avg" value=0}
{if $row.rating_count > 0}
{math equation="round(x / y)" x=$row.rating_sum y=$row.rating_count assign="comm_avg"}
{/if}
<div style="letter-spacing: -1px; line-height: 1; color: {if $row.rating_count > 0}#f1c40f{else}#ccc{/if};">
{section name=star start=1 loop=6}
{if $smarty.section.star.index <= $comm_avg}{else}<span class="star-grey">★</span>{/if}
{/section}
</div>
<div class="rating-count-box" style="color: {if $row.rating_count > 0}#666{else}#ccc{/if};">
({$row.rating_count|default:0})
</div>
</div>
{elseif $comment_rating_type == 1}
{* ТИП 1: ЛАЙКИ *}
<div class="comm-likes">
{if $row.rating_count > 0}
<span style="color: #e74c3c; font-size: 11px;">❤</span>
<span style="color: #e74c3c; font-size: 10px;">{$row.rating_count}</span>
{else}
<span style="color: #ccc; font-size: 11px;">❤</span>
<span style="color: #ccc; font-size: 11px;">0</span>
{/if}
</div>
{else}
{* ТИП 2 ИЛИ ЛЮБОЙ ДРУГОЙ: ВЫКЛЮЧЕНО *}
<span style="color: #bbb; font-size: 10px; ">—</span>
{/if}
</div>
</td>
<td align="center">
<div class="files-bundle">
{if $row.images}