Лучший комментарий/Закрепить комментарий для DLE

Модуль Лучший комментарий/Закрепить комментарий для DLE v2024-01-05

Можно сделать выбор лучших комментариев, тем самым закрепляя его вверху списка
Версии DLE
  1. 15.x
1686727002505.png


С помощью данного модуля можно сделать выбор лучших комментариев, тем самым закрепляя его вверху списка среди всех остальных, что поможет выделить важную информацию или, например, использовать его для шаблонов типа Q/A (Вопрос-ответ).

Возможности модуля​

  • Возможность закрепить комментарий поверх остальных
  • Возможность открепить закрепленный комментарий
  • Закреплять комментарий может администратор и автор публикации
  • Работает на JS скрипте и с помощью вызова DLE Alert окон, без корректировок движка - всё происходит с помощью плагина и исполняющего PHP файла.

Настройка и установка​

Для установки и настройки модуля потребуется мало усилий. За вас всё сделает система плагинов DLE, нужно лишь внести небольшие правки.

1. Переместите папку engine в директорию Вашего сайта.
2. Загрузите файл commentrec.xml в плагины (Утилиты - Управление плагинами)
3. В файле comments.tpl Вашего шаблона заключите нужный Вам код в теги [best][/best]
Например: У вас есть div class="postcomments", добавьте к нему [best]style="background: green"[/best] чтобы сделать зелёный фон лучшему комментарию.

4. Добавьте тег [add-best] текст [/add-best] и [dell-best] текст [/dell-best]
С нужным текстом и стилем внутри, это будет исполняющим кодом. add-best = Вызов окна "Закрепление комментария", dell-best "Открепления".

5. Добавьте к файлу fullstory.tpl в самый низ код:

JavaScript:
<script>
function BestComments(a, b, c) {
if (c == 1) {
text = "Открепить данный комментарий?";
} else {
text = "Закрепить данный комментарий первым?";
}
DLEconfirm(text, dle_confirm, function() {
ShowLoading("");
$.post(dle_root + "engine/ajax/controller.php?mod=commsort", {
id: a,
post_id: b,
dell_comm: c,
user_hash: dle_login_hash
}, function(data) {
HideLoading("");
$("#dle-content").load(window.location.href + " #dle-content");
DLEalert(data, dle_info);
})
})
}
</script>

Вопрос/Ответ по работе модуля​

Порядок сортировки по умолчанию задан в формате - DESC.
Это означает, что сортировка идёт от старых комментариев к новым.
Если у Вас другой способ вывода, то замените DESC на ASC.
Для этого во вкладке "Действия в файлах" к плагину, отредактируйте первое действие в самом конце
" ORDER BY best DESC, " . PREFIX . "_comments.id";
Если у Вас версия DLE ниже 15.1, то плагин не будет работать.
Чтобы адаптировать это под более старые версии, нужно изменить код.
Откройте управление плагинами и в разделе "Действия в файлах"
Второе действие (по файлу engine/classes/comments.class.php), найти:
$row['name'] = isset($row['name']) ? stripslashes( $row['name'] ) : '';
Заменить на:
$row['name'] = stripslashes( $row['name'] );
Текст уведомлений изменяется в добавляемом скрипте в fullstory.tpl и загружаемом PHP файле в engine/ajax.
Сверху Снизу