Files
comment/templates/comments_tree.tpl

290 lines
14 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.
{if $display_comments==1}
{* ===================================================================== *}
{* ПРОВЕРКА ПРАВ НА ЧТЕНИЕ *}
{* ===================================================================== *}
{if $no_read_permission == 1}
<div class="alert alert-warning" role="alert">{#COMMENT_READ_FALSE#}</div>
{else}
{* ===================================================================== *}
{* БЛОК КОММЕНТАРИЕВ *}
{* ===================================================================== *}
<h3 class="mb-3">
{#COMMENT_SITE_TITLE#}
{if $closed==1 && $smarty.const.UGROUP!=1}
<span class="badge bg-secondary ms-2">{#COMMENT_SITE_CLOSED#}</span>
{/if}
</h3>
<div class="d-flex mb-4 align-items-center">
<a href="#end" class="btn btn-sm btn-outline-primary">
<i class="bi bi-plus-circle me-1"></i> {#COMMENT_SITE_ADD#}
</a>
{if $smarty.const.UGROUP==1}
{if $closed==1}
<a id="mod_comment_open" href="javascript:void(0);" class="btn btn-sm btn-outline-success ms-3">
<i class="bi bi-lock-fill me-1"></i> {#COMMENT_SITE_OPEN#}
</a>
{else}
<a id="mod_comment_close" href="javascript:void(0);" class="btn btn-sm btn-outline-danger ms-3">
<i class="bi bi-unlock-fill me-1"></i> {#COMMENT_SITE_CLOSE#}
</a>
{/if}
{/if}
</div>
{if isset($comments[0])}
<div class="comments-list" id="comments_list">
{include file="$subtpl" subcomments=$comments[0]}
</div>
{/if}
<a id="end"></a>
{* ===================================================================== *}
{* ФОРМА ДОБАВЛЕНИЯ КОММЕНТАРИЯ *}
{* ===================================================================== *}
<div class="mt-5">
{if $closed==1 && $smarty.const.UGROUP!=1}
<div class="alert alert-info">{#COMMENT_NEW_CLOSED#}</div>
{elseif $cancomment!=1 && $smarty.const.UGROUP!=1}
<div class="alert alert-info">{#COMMENT_NEW_FALSE#}</div>
{else}
<div id="mod_comment_new" class="card shadow-sm">
<div class="card-header bg-light">
<h4 class="mb-0">{#COMMENT_NEW_TITLE#}</h4>
</div>
<div class="card-body p-4" id="forms">
<form method="post" action="{$ABS_PATH}" enctype="multipart/form-data">
<fieldset>
<legend class="d-none">Форма добавления комментария</legend>
{if $smarty.session.user_group != '2'}
<div class="row mb-3">
<div class="col-md-6 mb-3 mb-md-0">
<label for="in_author_name_display" class="form-label">{#COMMENT_YOUR_NAME#}</label>
<input type="text" id="in_author_name_display" class="form-control" value="{$smarty.session.user_name|default:''|escape|stripslashes}" readonly />
</div>
<div class="col-md-6">
<label for="in_author_email_display" class="form-label">{#COMMENT_YOUR_EMAIL#}</label>
<input type="email" id="in_author_email_display" class="form-control" value="{$smarty.session.user_email|default:''|escape|stripslashes}" readonly />
</div>
</div>
<input name="comment_author_name" type="hidden" id="in_author_name" value="{$smarty.session.user_name|default:''|escape|stripslashes}" />
<input name="comment_author_email" type="hidden" id="in_author_email" value="{$smarty.session.user_email|default:''|escape|stripslashes}" />
{else}
{* Блок для Анонимных пользователей (Гостей) *}
<div class="row mb-3">
<div class="col-md-6 mb-3 mb-md-0">
<label for="in_author_name" class="form-label">{#COMMENT_YOUR_NAME#}*</label>
<input name="comment_author_name" type="text" id="in_author_name" class="form-control"
placeholder="{#COMMENT_YOUR_NAME#}"
value="{(isset($saved_anon.name)) ? $saved_anon.name : ($smarty.request.comment_author_name|default:''|escape|stripslashes)}"
{if isset($saved_anon.exists) && $saved_anon.exists}readonly style="background-color: #f8f9fa;"{/if} />
{if isset($saved_anon.exists) && $saved_anon.exists}
<div class="form-text small text-muted">Имя зафиксировано по вашему ключу доступа.</div>
{/if}
</div>
<div class="col-md-6">
<label for="in_author_email" class="form-label">{#COMMENT_YOUR_EMAIL#}*</label>
<input name="comment_author_email" type="email" id="in_author_email" class="form-control"
placeholder="{#COMMENT_YOUR_EMAIL#}"
value="{(isset($saved_anon.email)) ? $saved_anon.email : ($smarty.request.comment_author_email|default:''|escape|stripslashes)}"
{if isset($saved_anon.exists) && $saved_anon.exists}readonly style="background-color: #f8f9fa;"{/if} />
</div>
</div>
{/if}
<div class="row mb-3">
{if $comment_show_f1 == 1}
<div class="col-md-6 mb-3 mb-md-0">
<label for="in_author_website" class="form-label">
{$comment_name_f1|default:#COMMENT_YOUR_SITE#} {if $comment_req_f1 == 1}*{else}(необязательно){/if}
</label>
<input name="comment_author_website" type="text" id="in_author_website" class="form-control" placeholder="{$comment_name_f1|default:#COMMENT_YOUR_SITE#}" value="{$smarty.request.comment_author_website|default:''|escape|stripslashes}" />
</div>
{/if}
{if $comment_show_f2 == 1}
<div class="col-md-6">
<label for="in_author_city" class="form-label">
{$comment_name_f2|default:#COMMENT_YOUR_FROM#} {if $comment_req_f2 == 1}*{else}(необязательно){/if}
</label>
<input name="comment_author_city" type="text" id="in_author_city" class="form-control" placeholder="{$comment_name_f2|default:#COMMENT_YOUR_FROM#}" value="{$smarty.request.comment_author_city|default:''|escape|stripslashes}" />
</div>
{/if}
</div>
<div class="mb-3">
<label for="in_message" class="form-label">{#COMMENT_YOUR_TEXT#}*</label>
<textarea rows="8" name="comment_text" id="in_message" class="form-control" placeholder="{#COMMENT_YOUR_TEXT#}"></textarea>
</div>
{* --- ВНЕДРЕНИЕ: ВЫБОР РЕЙТИНГА (ДОБАВЛЕН ID rating_wrapper) --- *}
{if $comment_show_user_rating == 1}
{if $smarty.session.user_group != '2' || $comment_rating_anon_set == 1}
<div class="mb-3" id="rating_wrapper">
<label class="form-label d-block small fw-bold text-muted text-uppercase mb-1">Оцените материал:</label>
<div class="d-flex align-items-center">
<div id="user_rating_stars" class="fs-4" style="color: #ffc107; display: inline-block;">
<i class="star-choice bi bi-star" data-value="1" title="Ужасно" style="cursor: pointer;"></i>
<i class="star-choice bi bi-star" data-value="2" title="Плохо" style="cursor: pointer;"></i>
<i class="star-choice bi bi-star" data-value="3" title="Нормально" style="cursor: pointer;"></i>
<i class="star-choice bi bi-star" data-value="4" title="Хорошо" style="cursor: pointer;"></i>
<i class="star-choice bi bi-star" data-value="5" title="Отлично" style="cursor: pointer;"></i>
</div>
<a href="javascript:void(0);" id="reset_stars" class="ms-3 text-decoration-none small text-muted" title="Убрать оценку">
<i class="bi bi-x-circle"></i> Сбросить
</a>
</div>
<input name="comment_user_rating" type="hidden" id="comment_user_rating" value="0" />
</div>
{/if}
{/if}
<p class="text-end text-muted small">
{#COMMENT_CHARS_LEFT#} <span class="charsLeft fw-bold" id="charsLeft_new"></span>
</p>
{if $comment_allow_files == 1}
{if $smarty.session.user_group != '2' || $comment_allow_files_anon == 1}
<div class="mb-3">
<label for="comment_image" class="form-label mb-1">
<span class="text-muted small"><i class="bi bi-paperclip me-1"></i> Прикрепить файлы</span>
</label>
<div class="small text-muted mb-2">
Разрешены: <span class="fw-bold">{$comment_allowed_extensions|default:'jpg, png, gif'}</span>.
Макс. размер: <span class="fw-bold">{$comment_max_file_size|default:'2048'} Кб</span>.
{* ВНЕДРЯЕМ ЛИМИТ КОЛИЧЕСТВА *}
Макс. количество: <span class="fw-bold text-primary">{$comment_max_files|default:'5'} шт.</span>
</div>
<input type="file" name="comment_image[]" id="comment_image" class="form-control form-control-sm" multiple>
<div id="image_preview_wrapper" class="mt-2 d-flex flex-wrap gap-2 d-none">
{* Сюда JS будет добавлять превью *}
</div>
<div id="upload_progress_container" class="mt-2 d-none">
<div class="progress" style="height: 8px;">
<div id="upload_progress_bar" class="progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar" style="width: 0%"></div>
</div>
</div>
<div id="file_error" class="text-danger small mt-1 d-none"></div>
</div>
{/if}
{/if}
{if $im}
<div class="row mb-3 align-items-center">
<div class="col-md-4">
<label for="securecode" class="form-label">{#COMMENT_FORM_CODE#}</label>
<div id="captcha_block">
<span id="captcha" class="d-block mb-1">
<img src="{$ABS_PATH}inc/captcha.php" alt="{#COMMENT_FORM_CODE#}" class="img-fluid border rounded" style="cursor: pointer;" width="120" height="60" border="0" />
</span>
<a href="javascript:void(0);" id="reload_captcha" class="small text-decoration-none text-muted"><i class="bi bi-arrow-clockwise"></i> Обновить код</a>
</div>
</div>
<div class="col-md-8">
<label for="securecode" class="form-label">{#COMMENT_FORM_CODE_ENTER#}*</label>
<input name="securecode" type="text" id="securecode" maxlength="10" class="form-control" placeholder="{#COMMENT_FORM_CODE_ENTER#}" />
</div>
</div>
{/if}
<div class="mt-4">
<button type="submit" class="btn btn-success me-2">
<i class="bi bi-send-fill me-1"></i> {#COMMENT_BUTTON_ADD#}
</button>
<button type="reset" id="buttonReset" class="btn btn-secondary">
<i class="bi bi-x-circle me-1"></i> Сбросить
</button>
</div>
<input name="module" type="hidden" value="comment" />
<input name="action" type="hidden" value="comment" />
<input name="sub" type="hidden" value="send" />
<input name="doc_id" type="hidden" value="{$smarty.request.id|escape}" />
<input name="parent_id" id="parent_id" type="hidden" value="" />
<input name="page" type="hidden" value="{$page}" />
</fieldset>
</form>
</div>
</div>
{/if}
</div>
{if $page_nav}
<div class="page_navigation_box mt-4">
<nav aria-label="Comment Page Navigation">{$page_nav}</nav>
</div>
{/if}
{* Модальное окно удаления *}
<div class="modal fade" id="deleteCommentModal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header bg-danger text-white">
<h5 class="modal-title">Подтверждение удаления</h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">Вы уверены? Это действие необратимо.</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Отмена</button>
<button type="button" class="btn btn-danger" id="confirmDeleteButton">Удалить</button>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var COMMENT_SITE_CLOSE = '{#COMMENT_SITE_CLOSE#}';
var COMMENT_SITE_OPEN = '{#COMMENT_SITE_OPEN#}';
var COMMENT_LOCK_LINK = '{#COMMENT_LOCK_LINK#}';
var COMMENT_EDIT_LINK = '{#COMMENT_EDIT_LINK#}';
var COMMENT_EDIT_TITLE = '{#COMMENT_EDIT_TITLE#}';
var COMMENT_UNLOCK_LINK = '{#COMMENT_UNLOCK_LINK#}';
var COMMENT_ERROR_AUTHOR = '{#COMMENT_ERROR_AUTHOR#}';
var COMMENT_ERROR_EMAIL = '{#COMMENT_ERROR_EMAIL#}';
var COMMENT_ERROR_TEXT = '{#COMMENT_ERROR_TEXT#}';
var COMMENT_ERROR_CAPTCHA = '{#COMMENT_ERROR_CAPTCHA#}';
var COMMENT_BUTTON_EDIT = '{#COMMENT_BUTTON_EDIT#}';
var COMMENT_BUTTON_CANCEL = '{#COMMENT_BUTTON_CANCEL#}';
var COMMENT_CHARS_LEFT = '{#COMMENT_CHARS_LEFT#}';
var COMMENT_DATE_TIME_FORMAT = '{#COMMENT_DATE_TIME_FORMAT#}';
var COMMENT_TEXT_CHANGED = '{#COMMENT_TEXT_CHANGED#}';
var COMMENT_WRONG_CODE = '{#COMMENT_WRONG_CODE#}';
var REQ_F1 = '{$comment_req_f1}';
var REQ_F2 = '{$comment_req_f2}';
var NAME_F1 = '{$comment_name_f1|default:#COMMENT_YOUR_SITE#}';
var NAME_F2 = '{$comment_name_f2|default:#COMMENT_YOUR_FROM#}';
var UGROUP = '{$smarty.const.UGROUP}';
var IS_IM = '{$im}';
var DOC_ID = '{$doc_id}';
var MAX_CHARS = '{$comment_max_chars}';
var aveabspath = '{$ABS_PATH}';
// --- ОБНОВЛЕННЫЕ ПЕРЕМЕННЫЕ ---
var SHOW_USER_RATING = '{$comment_show_user_rating|default:0}';
var SHOW_USER_RATING_REPLIES = '{$comment_show_user_rating_replies|default:0}';
var RATING_ANON_SET = '{$comment_rating_anon_set|default:0}';
var ALLOW_FILES_ANON = '{$comment_allow_files_anon|default:0}';
// --- ПЕРЕМЕННЫЕ ДЛЯ ВАЛИДАЦИИ ФАЙЛОВ ---
var ALLOWED_EXTENSIONS = '{$comment_allowed_extensions|default:"jpg,jpeg,png,gif"}';
var MAX_FILE_SIZE_KB = '{$comment_max_file_size|default:2048}';
var MAX_FILES_COUNT = '{$comment_max_files|default:5}';
</script>
<script src="{$ABS_PATH}modules/comment/js/comment.js" type="text/javascript"></script>
{/if}
{/if}