Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Модули » Как поправить сортировку в модуле Лучший комментарий?

Как поправить сортировку в модуле Лучший комментарий?


     10.05.2023    Все вопросы » Модули    292

вопрос
Здравствуйте. Помогите пожалуйста с модулем Лучший комментарий от ув. sx2.name. Суть такова. Модуль работает если стоит сортировка комментов по возрастанию. А если поставить по убыванию, то комментарий закрепляется в самом низу. Подскажите что добавить в код, чтобы заработало с сортировкой по убыванию.

Такой код в engine/classes/comments.class.php

if (!empty($row['best'])) {
    $tpl->set('[best]', "");
    $tpl->set('[/best]', "");
} else {
    $tpl->set_block("'\\[best\\](.*?)\\[/best\\]'si", "");
}
if ($is_logged AND ($member_id['user_id'] == $news_author) OR ($user_group[$member_id['user_group']]['admin_editusers'])) {
    if (empty($row['best'])) {
        $tpl->set('[add-best]', "<a href=\"javascript:BestComments('{$row['id']}', '{$row['post_id']}', '0')\">");
        $tpl->set('[/add-best]', "</a>");
        $tpl->set_block("'\\[dell-best\\](.*?)\\[/dell-best\\]'si", "");
    } else {
        $tpl->set('[dell-best]', "<a href=\"javascript:BestComments('{$row['id']}', '{$row['post_id']}', '1')\">");
        $tpl->set('[/dell-best]', "</a>");
        $tpl->set_block("'\\[add-best\\](.*?)\\[/add-best\\]'si", "");
    }
} else {
    $tpl->set_block("'\\[add-best\\](.*?)\\[/add-best\\]'si", "");
    $tpl->set_block("'\\[dell-best\\](.*?)\\[/dell-best\\]'si", "");
}


Такой в .js

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);
        })
    })
}

А такой в файле модуля который закинут по пути \engine\ajax

if (!defined('DATALIFEENGINE')) {
    header("HTTP/1.1 403 Forbidden");
    header('Location: ../../');
    die("Hacking attempt!");
}

if ($_REQUEST['user_hash'] == "" OR $_REQUEST['user_hash'] != $dle_login_hash) {
    die("Error! Not user_hash.");
}

if (!$is_logged)
    die("У вас нет прав для закрепления комментария.");

$id        = intval($_REQUEST['id']);
$post_id   = intval($_REQUEST['post_id']);
$dell_comm = intval($_REQUEST['dell_comm']);

if (!$post_id OR $post_id < 1)
    die("Новость с ID {$post_id} не существует!");

if (!$id OR $id < 1)
    die("Комментарий с ID {$id} не существует!");

$db->query("UPDATE " . PREFIX . "_comments SET best = '0' WHERE post_id = {$post_id}");
if (empty($dell_comm))
    $db->query("UPDATE " . PREFIX . "_comments SET best='1' WHERE id = {$id}");

if ($config['allow_cache']);
clear_cache(array(
    'full_',
    'comm_'
));

if (!empty($dell_comm))
    echo "Комментарий откреплен. Он будет отображаться по дате публикации.";
else
    echo "Комментарий закреплён. Теперь он будет отображаться первым.";

?>

Ответил: dasdeman


ORDER BY best ASC

1 комментарий

dasdeman
Юзер

dasdeman - 11 мая 2023 05:50 -

Все решил, не актуально.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх