добавлены права могут ли Анонимы загружать изображение
This commit is contained in:
@@ -1245,6 +1245,9 @@ function commentAdminSettingsEdit($tpl_dir)
|
||||
|
||||
// НОВОЕ: Настройка разрешения загрузки файлов
|
||||
$post_allow_files = $_POST['comment_allow_files'] ?? 0;
|
||||
|
||||
// ДОБАВЛЕНО: Разрешение анонимам загружать изображения
|
||||
$post_allow_files_anon = $_POST['comment_allow_files_anon'] ?? 0;
|
||||
|
||||
// НОВОЕ: Тип рейтинга (0 - звезды, 1 - лайки)
|
||||
$post_rating_type = $_POST['comment_rating_type'] ?? 0;
|
||||
@@ -1286,6 +1289,7 @@ function commentAdminSettingsEdit($tpl_dir)
|
||||
comment_use_page_nav = '" . (int)$post_use_page_nav . "',
|
||||
comment_page_nav_count = '" . (int)$post_page_nav_count . "',
|
||||
comment_allow_files = '" . (int)$post_allow_files . "',
|
||||
comment_allow_files_anon = '" . (int)$post_allow_files_anon . "',
|
||||
comment_rating_type = '" . (int)$post_rating_type . "',
|
||||
comment_show_user_rating = '" . (int)$post_show_user_rating . "',
|
||||
comment_rating_anon_vote = '" . (int)$post_rating_anon_vote . "',
|
||||
|
||||
@@ -317,6 +317,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
// ВНЕДРЕНИЕ: Проверка прав на загрузку изображения при редактировании
|
||||
var fileInputHtml = '';
|
||||
if (typeof UGROUP !== 'undefined' && (UGROUP != '2' || (typeof ALLOW_FILES_ANON !== 'undefined' && ALLOW_FILES_ANON == '1'))) {
|
||||
fileInputHtml = `<input type="file" id="new_file_${cid}" class="form-control form-control-sm mb-3" accept="image/*">`;
|
||||
}
|
||||
|
||||
var editHtml = `
|
||||
<div class="edit-form-container border rounded p-3 bg-light mt-2 mb-2">
|
||||
<textarea rows="5" id="ta_${cid}" class="form-control mb-2">${cleanText}</textarea>
|
||||
@@ -324,7 +330,7 @@
|
||||
${starsEditBlock}
|
||||
|
||||
${currentImg ? `<div class="form-check mb-2"><input class="form-check-input" type="checkbox" id="del_img_${cid}"><label class="form-check-label small text-danger" for="del_img_${cid}">Удалить фото</label></div>` : ''}
|
||||
<input type="file" id="new_file_${cid}" class="form-control form-control-sm mb-3" accept="image/*">
|
||||
${fileInputHtml}
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" class="btn btn-sm btn-primary saveButton" data-id="${cid}">Сохранить</button>
|
||||
<button type="button" class="btn btn-sm btn-secondary cancelButton">Отмена</button>
|
||||
@@ -355,8 +361,13 @@
|
||||
}
|
||||
|
||||
fd.append('delete_image', $('#del_img_' + cid).is(':checked') ? 1 : 0);
|
||||
var file = $('#new_file_' + cid)[0].files[0];
|
||||
if (file) fd.append('comment_image', file);
|
||||
|
||||
// Проверяем наличие инпута перед попыткой чтения файла
|
||||
var fileInput = $('#new_file_' + cid);
|
||||
if (fileInput.length) {
|
||||
var file = fileInput[0].files[0];
|
||||
if (file) fd.append('comment_image', file);
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: aveabspath + 'index.php?ajax=1',
|
||||
|
||||
15
sql.php
15
sql.php
@@ -6,7 +6,8 @@
|
||||
* Обновленная структура с поддержкой выбора типа рейтинга (звезды/лайки),
|
||||
* идентификации анонимных пользователей, загрузки файлов и защиты по IP.
|
||||
* Добавлена поддержка "Авторских звезд" (user_rating) и настройки их отображения.
|
||||
* ДОБАВЛЕНО: Настройка разрешения голосования для анонимов и выставления ими звезд.
|
||||
* ДОБАВЛЕНО: Настройка разрешения голосования для анонимов, выставления ими звезд
|
||||
* и ПРАВА НА ЗАГРУЗКУ ИЗОБРАЖЕНИЙ ДЛЯ АНОНИМОВ.
|
||||
*/
|
||||
|
||||
$module_sql_install = array();
|
||||
@@ -40,8 +41,9 @@ $module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_comments` (
|
||||
`comment_file_max_size` int(10) NOT NULL default '2048',
|
||||
`comment_rating_type` tinyint(1) NOT NULL default '0', /* 0 - звезды, 1 - лайки, 2 - выключен */
|
||||
`comment_show_user_rating` tinyint(1) NOT NULL default '0', /* ВКЛ/ВЫКЛ авторских звезд */
|
||||
`comment_rating_anon_vote` tinyint(1) NOT NULL default '0', /* РАЗРЕШИТЬ АНОНИМАМ ГОЛОСОВАТЬ (лайк/дизлайк) */
|
||||
`comment_rating_anon_set` tinyint(1) NOT NULL default '0', /* РАЗРЕШИТЬ АНОНИМАМ СТАВИТЬ ЗВЕЗДЫ ПРИ СОЗДАНИИ */
|
||||
`comment_rating_anon_vote` tinyint(1) NOT NULL default '0', /* РАЗРЕШИТЬ АНОНИМАМ ГОЛОСОВАТЬ */
|
||||
`comment_rating_anon_set` tinyint(1) NOT NULL default '0', /* РАЗРЕШИТЬ АНОНИМАМ СТАВИТЬ ЗВЕЗДЫ */
|
||||
`comment_allow_files_anon` tinyint(1) NOT NULL default '0', /* РАЗРЕШИТЬ АНОНИМАМ ЗАГРУЖАТЬ ФАЙЛЫ */
|
||||
PRIMARY KEY (`Id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||||
|
||||
@@ -88,8 +90,8 @@ $module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_comment_votes` (
|
||||
KEY `remote_addr` (`remote_addr`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||||
|
||||
/* Настройки по умолчанию (добавлен еще один 0 в конце для comment_rating_anon_set) */
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_comments` VALUES (1, 1000, '1,3', '1,2,3,4', '0', '1', '1' , '0', '', 1, 0, '', 1, 0, '', 0, 2048, 0, 1, 0, 0);";
|
||||
/* Настройки по умолчанию (добавлен 0 для comment_allow_files_anon в конце) */
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_comments` VALUES (1, 1000, '1,3', '1,2,3,4', '0', '1', '1' , '0', '', 1, 0, '', 1, 0, '', 0, 2048, 0, 1, 0, 0, 0);";
|
||||
|
||||
// =================================================================================
|
||||
// 2. ОБНОВЛЕНИЕ МОДУЛЯ (ALTER TABLE)
|
||||
@@ -105,11 +107,12 @@ $module_sql_update[] = "
|
||||
LIMIT 1;
|
||||
";
|
||||
|
||||
/* Добавляем настройки рейтинга в таблицу конфигурации */
|
||||
/* Добавляем настройки рейтинга и файлов в таблицу конфигурации */
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comments` ADD COLUMN IF NOT EXISTS `comment_rating_type` TINYINT(1) NOT NULL DEFAULT '0';";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comments` ADD COLUMN IF NOT EXISTS `comment_show_user_rating` TINYINT(1) NOT NULL DEFAULT '0';";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comments` ADD COLUMN IF NOT EXISTS `comment_rating_anon_vote` TINYINT(1) NOT NULL DEFAULT '0';";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comments` ADD COLUMN IF NOT EXISTS `comment_rating_anon_set` TINYINT(1) NOT NULL DEFAULT '0';";
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comments` ADD COLUMN IF NOT EXISTS `comment_allow_files_anon` TINYINT(1) NOT NULL DEFAULT '0';";
|
||||
|
||||
/* Добавляем поля для оценки и голосования в таблицу инфо */
|
||||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comment_info` ADD COLUMN IF NOT EXISTS `user_rating` TINYINT(1) NOT NULL DEFAULT '0' AFTER `comment_file`;";
|
||||
|
||||
@@ -166,13 +166,18 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Разрешить загрузку фото:</td>
|
||||
<td>
|
||||
<input name="comment_allow_files" type="checkbox" value="1" {if $comment_allow_files=='1'}checked{/if} />
|
||||
<span style="color: #888; font-size: 11px; margin-left: 10px;">(позволяет прикреплять изображения к комментариям)</span>
|
||||
<td style="border-right: 1px solid #ddd;">
|
||||
<label style="cursor: pointer; display: flex; align-items: center; font-weight: normal;">
|
||||
<input name="comment_allow_files" type="checkbox" value="1" {if $comment_allow_files=='1'}checked{/if} style="margin-right: 10px;" />
|
||||
Включить загрузку изображений
|
||||
</label>
|
||||
</td>
|
||||
<td>Папка для хранения:</td>
|
||||
<td>Права на загрузку изображений:</td>
|
||||
<td>
|
||||
<code style="color: #555; background: #eee; padding: 2px 5px; border-radius: 3px;">/uploads/comments/</code>
|
||||
<label style="cursor: pointer; display: flex; align-items: center; font-weight: normal;">
|
||||
<input name="comment_allow_files_anon" type="checkbox" value="1" {if $comment_allow_files_anon=='1'}checked{/if} style="margin-right: 10px;" />
|
||||
Разрешить анонимам загружать изображения
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@@ -155,23 +155,26 @@
|
||||
|
||||
{* Блок загрузки изображения *}
|
||||
{if $comment_allow_files == 1}
|
||||
<div class="mb-3">
|
||||
<label for="comment_image" class="form-label text-muted small">
|
||||
<i class="bi bi-camera me-1"></i> Прикрепить изображение (JPG, PNG, GIF)
|
||||
</label>
|
||||
|
||||
<input type="file" name="comment_image" id="comment_image" class="form-control form-control-sm" accept="image/*">
|
||||
|
||||
{* Контейнер для превью *}
|
||||
<div id="image_preview_wrapper" class="mt-2 d-none position-relative" style="width: fit-content;">
|
||||
<img id="image_preview_img" src="#" alt="Предпросмотр" class="img-thumbnail" style="max-height: 120px;">
|
||||
<button type="button" id="remove_image_btn" class="btn btn-danger btn-sm position-absolute top-0 end-0"
|
||||
style="padding: 0 5px; margin: 2px;" title="Удалить фото">
|
||||
<i class="bi bi-x-lg"></i>
|
||||
</button>
|
||||
{* ПРОВЕРКА: Разрешено ли текущему пользователю загружать файлы *}
|
||||
{if $smarty.session.user_group != '2' || $comment_allow_files_anon == 1}
|
||||
<div class="mb-3">
|
||||
<label for="comment_image" class="form-label text-muted small">
|
||||
<i class="bi bi-camera me-1"></i> Прикрепить изображение (JPG, PNG, GIF)
|
||||
</label>
|
||||
|
||||
<input type="file" name="comment_image" id="comment_image" class="form-control form-control-sm" accept="image/*">
|
||||
|
||||
{* Контейнер для превью *}
|
||||
<div id="image_preview_wrapper" class="mt-2 d-none position-relative" style="width: fit-content;">
|
||||
<img id="image_preview_img" src="#" alt="Предпросмотр" class="img-thumbnail" style="max-height: 120px;">
|
||||
<button type="button" id="remove_image_btn" class="btn btn-danger btn-sm position-absolute top-0 end-0"
|
||||
style="padding: 0 5px; margin: 2px;" title="Удалить фото">
|
||||
<i class="bi bi-x-lg"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div id="file_error" class="text-danger small mt-1 d-none"></div>
|
||||
</div>
|
||||
<div id="file_error" class="text-danger small mt-1 d-none"></div>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{* CAPTCHA *}
|
||||
@@ -278,6 +281,8 @@
|
||||
// Глобальная переменная для JS
|
||||
var SHOW_USER_RATING = '{$comment_show_user_rating|default:0}';
|
||||
var RATING_ANON_SET = '{$comment_rating_anon_set|default:0}';
|
||||
// ДОБАВЛЕНО: Настройка прав на загрузку для JS
|
||||
var ALLOW_FILES_ANON = '{$comment_allow_files_anon|default:0}';
|
||||
</script>
|
||||
<script src="{$ABS_PATH}modules/comment/js/comment.js" type="text/javascript"></script>
|
||||
<style>
|
||||
|
||||
Reference in New Issue
Block a user