Files
comment/templates/comments_tree_sub.tpl

184 lines
10 KiB
Smarty
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{foreach from=$subcomments item=c}
<div class="card mb-3 mod_comment_comment{if $c.parent_id} ms-2 ms-md-4{/if}"
id="comment_wrapper_{$c.Id}"
data-parent="{$c.parent_id|default:0}"
data-user-rating="{$c.user_rating|default:0}"
data-is-own="{if isset($c.is_my_own) && $c.is_my_own}1{else}0{/if}">
{if isset($smarty.request.subaction) && $smarty.request.subaction=='showonly' && isset($smarty.request.comment_id) && $smarty.request.comment_id==$c.Id}
<div class="border border-warning border-3 rounded p-0">
{/if}
<div id="comment_{$c.Id}" class="mod_comment_box">
<div class="card-body p-3 d-flex align-items-start">
{* БЛОК АВАТАРА *}
<div class="mod_comment_avatar">
{if isset($c.avatar) && $c.avatar != ''}
<img src="{$c.avatar}" alt="{$c.comment_author_name|escape}" class="rounded-circle">
{else}
<div class="mod_comment_avatar_letter av-c{$c.avatar_color_index|default:1}">
{$c.first_letter|default:'?'|upper}
</div>
{/if}
</div>
<div class="flex-grow-1 min-w-0">
{* Информация об авторе и дате *}
<div class="mod_comment_meta text-muted small d-flex flex-wrap align-items-center">
<span class="d-flex align-items-center">
<i class="bi bi-person me-1"></i>
<a title="{#COMMENT_INFO#}" href="javascript:void(0);" onclick="popup('{$ABS_PATH}index.php?module=comment&action=postinfo&pop=1&Id={$c.Id}&theme={$theme}','comment','500','300','1');" class="fw-bold link-dark text-decoration-none">{$c.comment_author_name|stripslashes|escape}</a>
{* ПРОВЕРКА ИСТОРИИ ИМЕН АНОНИМА *}
{if !empty($c.past_names)}
<span class="badge rounded-pill bg-light text-danger border border-danger ms-1"
style="font-size: 0.65rem; cursor: help;"
data-bs-toggle="tooltip"
data-bs-html="true"
title="Ранее этот гость использовал имена:<br/>{foreach $c.past_names as $pname}{$pname|escape}<br/>{/foreach}">
<i class="bi bi-exclamation-triangle-fill"></i> менял имя
</span>
{/if}
</span>
<span class="d-flex align-items-center"><i class="bi bi-clock me-1"></i> {$c.comment_published}</span>
{if $smarty.const.UGROUP==1}
<span class="text-secondary d-none d-sm-inline">• IP:{$c.comment_author_ip}</span>
{/if}
{if isset($c.comment_changed) && $c.comment_changed > 1}
<span class="badge bg-light text-secondary border fw-normal" id="changed_{$c.Id}">ред. {$c.comment_changed}</span>
{/if}
</div>
{* Текст комментария *}
<div class="mod_comment_text comment-text-content mb-2">
{$c.comment_text|stripslashes|nl2br}
</div>
{* Доп. поля (Сайт, Город) *}
{if $c.comment_author_website || $c.comment_author_city}
<div class="small text-muted mb-2 border-start ps-2">
{if $c.comment_author_website}<div><i class="bi bi-link-45deg"></i> {$c.comment_author_website}</div>{/if}
{if $c.comment_author_city}<div><i class="bi bi-geo-alt"></i> {$c.comment_author_city}</div>{/if}
</div>
{/if}
{* Вывод изображения (ИСПРАВЛЕНО ДЛЯ MULTIPLE) *}
{if !empty($c.comment_file)}
<div class="mod_comment_attached_images mt-2 d-flex flex-wrap gap-2" id="image_container_{$c.Id}">
{assign var="photos" value=","|explode:$c.comment_file}
{foreach from=$photos item=photo}
{if $photo|trim}
<div class="comment-image-item">
<a href="{$ABS_PATH}uploads/comments/{$photo|trim}" target="_blank" class="d-block">
<img src="{$ABS_PATH}uploads/comments/{$photo|trim}"
class="img-fluid rounded border shadow-sm"
style="max-height: 150px; width: auto; object-fit: cover;"
alt="Изображение" />
</a>
</div>
{/if}
{/foreach}
</div>
{/if}
</div>
</div>
{* ФУТЕР *}
<div class="card-footer bg-white border-top p-2 d-flex flex-wrap justify-content-between align-items-center gap-2">
<div class="d-flex align-items-center flex-wrap gap-2">
{* 1. Оценка автора *}
{if isset($c.user_rating) && $c.user_rating > 0}
<div class="rating-author-badge" title="Оценка автора: {$c.user_rating} из 5">
<span class="d-none d-sm-inline">Оценка:</span>
<div class="rating-author-stars">
{section name=r_star start=1 loop=6}
<i class="bi {if $smarty.section.r_star.index <= $c.user_rating}bi-star-fill{else}bi-star{/if}"></i>
{/section}
</div>
<span class="rating-value">{$c.user_rating}</span>
</div>
{/if}
{* 2. Рейтинг комментария *}
{if $comment_rating_type != 2}
<div class="comment-rating-container d-flex align-items-center py-1 px-2 bg-light rounded border" data-id="{$c.Id}">
{if $comment_rating_type == 1}
<div class="comment-like text-danger" style="cursor: pointer;">
<i class="star-item bi bi-heart-fill me-1" data-value="5"></i>
<span class="fw-bold small">{$c.rating_count|default:0}</span>
</div>
{else}
<div class="comment-stars text-warning" style="cursor: pointer;">
{assign var="avg_rating" value=0}
{if isset($c.rating_count) && $c.rating_count > 0}
{math equation="round(x / y)" x=$c.rating_sum y=$c.rating_count assign="avg_rating"}
{/if}
<div class="d-flex align-items-center me-1">
{section name=star start=1 loop=6}
<i class="star-item bi {if $smarty.section.star.index <= $avg_rating}bi-star-fill{else}bi-star{/if} me-1" data-value="{$smarty.section.star.index}"></i>
{/section}
</div>
{if isset($c.rating_count)}<span class="text-muted small">({$c.rating_count})</span>{/if}
</div>
{/if}
</div>
{/if}
{* 3. Таймер редактирования *}
{if $c.can_edit && isset($c.edit_time_left) && $c.edit_time_left > 0}
<div class="text-muted small d-flex align-items-center" id="timer_container_{$c.Id}">
<i class="bi bi-hourglass-split text-primary me-1"></i>
<span id="timer_{$c.Id}" data-left="{$c.edit_time_left}" class="timer-count fw-bold">
{math equation="floor(x/60)" x=$c.edit_time_left}:{if ($c.edit_time_left%60) < 10}0{/if}{math equation="x%60" x=$c.edit_time_left}
</span>
</div>
{/if}
</div>
{* КНОПКИ ДЕЙСТВИЙ *}
<div class="actions-buttons d-flex align-items-center gap-1">
{if ($cancomment==1 && $closed!=1) || $smarty.const.UGROUP==1}
{if !(isset($c.is_my_own) && $c.is_my_own)}
<a class="btn btn-sm btn-link text-primary text-decoration-none mod_comment_answer px-2" href="javascript:void(0);" data-id="{$c.Id}">
<i class="bi bi-reply-fill me-1"></i> <span class="d-none d-sm-inline">{#COMMENT_ANSWER_LINK#}</span>
</a>
{/if}
{/if}
{* Контейнер для кнопок, которые скрываются таймером *}
<span id="controls_{$c.Id}" class="d-flex align-items-center gap-1">
{if $c.can_edit}
<a class="btn btn-sm btn-link text-warning mod_comment_edit px-2" title="Редактировать" href="javascript:void(0);" data-id="{$c.Id}"><i class="bi bi-pencil-square"></i></a>
<a class="btn btn-sm btn-link text-danger mod_comment_delete px-2" title="Удалить" href="javascript:void(0);" data-id="{$c.Id}"><i class="bi bi-trash"></i></a>
{/if}
</span>
{if $smarty.const.UGROUP==1}
<a class="btn btn-sm btn-link {if $c.comment_status==1}text-success{else}text-danger{/if} mod_comment_toggle px-2"
href="javascript:void(0);"
data-id="{$c.Id}"
title="{if $c.comment_status==1}Скрыть{else}Показать{/if}">
<i class="bi bi-{if $c.comment_status==1}eye{else}eye-slash{/if}"></i>
</a>
{/if}
</div>
</div>
</div>
{if isset($smarty.request.subaction) && $smarty.request.subaction=='showonly' && isset($smarty.request.comment_id) && $smarty.request.comment_id==$c.Id}
</div>
{/if}
<span id="end{$c.Id}"></span>
{if isset($comments) && isset($comments[$c.Id])}
<div class="mt-2">
{include file="$subtpl" subcomments=$comments[$c.Id] sub=1}
</div>
{/if}
</div>
{/foreach}