diff --git a/class/comment.php b/class/comment.php
index b611d86..e60eb62 100644
--- a/class/comment.php
+++ b/class/comment.php
@@ -1238,12 +1238,33 @@ function commentAdminDelete($comment_id)
if (empty($ids)) return;
- // Читаем тип удаления из запроса (для одиночных кликов по иконкам)
+ // Путь к папке с файлами
+ $upload_dir = $_SERVER['DOCUMENT_ROOT'] . "/uploads/comments/";
+ // Читаем тип удаления из запроса
$delete_type = $_REQUEST['admin_action_type'] ?? 'auto';
foreach ($ids as $id) {
if ($id <= 0) continue;
+ // --- БЛОК УДАЛЕНИЯ ФАЙЛОВ (НАЧАЛО) ---
+ // Получаем имена файлов перед любым действием в БД
+ $comment_files = $AVE_DB->Query("SELECT comment_file FROM " . PREFIX . "_module_comment_info WHERE Id = '$id' LIMIT 1")->GetCell();
+
+ if (!empty($comment_files)) {
+ $files_to_delete = explode(',', $comment_files);
+ foreach ($files_to_delete as $filename) {
+ $filename = trim($filename);
+ if (empty($filename)) continue;
+
+ $full_path = $upload_dir . $filename;
+ $thumb_path = $upload_dir . "thumbs/" . $filename; // Удаляем и миниатюру, если есть
+
+ if (file_exists($full_path)) @unlink($full_path);
+ if (file_exists($thumb_path)) @unlink($thumb_path);
+ }
+ }
+ // --- БЛОК УДАЛЕНИЯ ФАЙЛОВ (КОНЕЦ) ---
+
// Проверяем наличие детей
$has_children = $AVE_DB->Query("SELECT COUNT(*) FROM " . PREFIX . "_module_comment_info WHERE parent_id = '$id'")->GetCell();
@@ -1262,7 +1283,6 @@ function commentAdminDelete($comment_id)
}
// Если детей нет или принудительно выбран 'full' — удаляем физически
else {
- // Собираем дерево (на случай если это Full Delete для родителя)
$all_tree_ids = [$id];
$parents = [$id];
while (!empty($parents)) {
@@ -1281,8 +1301,8 @@ function commentAdminDelete($comment_id)
}
}
+ // Редирект с сохранением фильтров
$session_id = SESSION ?? '';
- // --- Сохраняем состояние фильтров ---
$s_query = $_REQUEST['search_query'] ?? '';
$s_order = $_REQUEST['sort_order'] ?? 'new';
$f_type = $_REQUEST['filter_type'] ?? '';
@@ -1823,7 +1843,7 @@ $row = $AVE_DB->Query("
$clean_name = function_exists('prepare_fname') ? prepare_fname(pathinfo($fname, PATHINFO_FILENAME)) : 'file';
if (empty($clean_name)) $clean_name = 'file';
- $new_name = $clean_name . '_' . time() . '_' . rand(100,999) . '.' . $ext;
+ $new_name = $clean_name . '_' . time() . '.' . $ext;
if (move_uploaded_file($tmp_name, $upload_dir . $new_name)) {
$current_files[] = $new_name;
diff --git a/templates/admin_edit.tpl b/templates/admin_edit.tpl
index 5825fd1..7b1070a 100644
--- a/templates/admin_edit.tpl
+++ b/templates/admin_edit.tpl
@@ -12,6 +12,7 @@ $(document).ready(function(){
var maxFileSize = {/literal}{$row.comment_max_file_size|default:2048}{literal} * 1024;
var allowedExts = {/literal}'{$row.comment_allowed_extensions|default:"jpg,jpeg,png,gif,webp"}'{literal}.split(',');
var existingFilesCount = {/literal}{$row.file_list|@count|default:0}{literal};
+ var dt = new DataTransfer();
var left = {/literal}{$comment_max_chars|default:1000}{literal};
$('#text_counter').text(left);
@@ -48,7 +49,7 @@ $(document).ready(function(){
var $previewContainer = $('#new_images_preview');
var $uploadBox = $input.closest('.upload-info-box');
- $previewContainer.empty();
+ //$previewContainer.empty();
var deletedCount = $('input[name="delete_files[]"]:checked').length;
var currentTotal = existingFilesCount - deletedCount;
@@ -77,6 +78,8 @@ $(document).ready(function(){
return false;
}
+ var fileIndex = dt.items.length;
+ dt.items.add(file);
// Если ошибок нет, читаем превью (FileReader)
var reader = new FileReader();
reader.onload = function(e) {
@@ -85,20 +88,23 @@ $(document).ready(function(){
? ''
: '