Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Шаблоны (TPL) » Как из lastcomments убрать комментарии определенной категории новостей?

Как из lastcomments убрать комментарии определенной категории новостей?


     21.11.2015    Все вопросы » Шаблоны (TPL)    2139

вопрос
И чтобы не было видно уже добавленных ранее комментариев из этой категории, и новые не добавлялись.

Ответил: vitnet


1.0 Открыть файл engine/modules/lastcomments.php

найти
if( $allow_list[0] != "all" ) {

добавить выше
$allow_cat = array();
$black_list = array(1,2,46,47); // <-- игнорируемые категории
    
if( $allow_list[0] != "all" ) {
    foreach($allow_list as $cat_id) {
        if( in_array($cat_id, $black_list) ) continue;
        $allow_cat[] = $cat_id;
    }

    $allow_list = $allow_cat;
} else {
    $join = "LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id ";
    
    if( $config['allow_multi_category'] ) {
        $where[] = PREFIX . "_post.category NOT regexp '[[:<:]](" . implode( '|', $black_list ) . ")[[:>:]]'";
    } else {
        $where[] = PREFIX . "_post.category NOT IN ('" . implode( "','", $black_list ) . "')";
    }
}

далее найти
    $join = "";

заменить на
    $join = $join ? $join : "";

6 комментариев

vitnet
PHP-developer

vitnet - 22 ноября 2015 13:38 -

***Комментарий удален***

Dusty
Юзер

Dusty - 22 ноября 2015 18:45 -

vitnet Душевное спасибо! наконец-то реальный способ который сработал. способ Сандера не работает.

Sander
PHP-developer

Sander - 22 ноября 2015 20:01 -

Открыть файл engine/modules/lastcomments.php
Найти строку:
$where = array ();

После нее вставить:
(Если новость отмечается в одной категории)
$where[] = PREFIX . "_post.category NOT IN (1,3,4,5,8)";

Если новость отмечается в нескольких категориях
$where[] = PREFIX . "_post.category NOT regexp '[[:<:]](1|3|4|5|8)[[:>:]]'";

где 1,3,4,5,8 - ID отвергнутых категорий.

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

Dusty
Юзер

Dusty - 3 марта 2017 22:50 -

Хак хороший и многим пригодится, но есть минус.
Отвергнутые категории в lastcomments, так же не видны в "ленте комментариев пользователя" что очень плохо.
Может есть вариант как убрать комменты ненужной категории из lastcomments но при этом чтобы комментарии из отвергнутых категорий отображались в "все комментарии пользователя" ?

nowheremany
Эксперт

nowheremany - 4 марта 2017 11:56 -

После
$not_allow_cats = explode ( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );

вставляем
if(!$userid)$not_allow_cats = array_merge($not_allow_cats,array(1,2,3,4,5));


новости из категорий 1,2,3,4,5 - будут игнорироваться только в последних новостях, но не в ленте

Благодарность принимаю тут Связь

Dusty
Юзер

Dusty - 6 марта 2017 20:50 -

Цитата: nowheremany



Это с новостями... а с комментариями можно так же сделать?

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

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

наверх