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

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


     02.12.2019    Все вопросы » Хаки    629

вопрос
Здравствуйте, подскажите, пожалуйста, возможно ли каким-нибудь способом, например, добавлением класса в css, пометить короткие новости определенной группы пользователей? Простой тег [group=X]текст[/group] не подходит, т. к. нужно, чтобы все пользователи из всех имеющихся групп видели это отличие.

Ответил: DevilOper


Вариант 1: Если нужно пометить все группы
Открываем engine/modules/show.short.php и ищем в нем код (первый найденный, примерно 970 строчка)

$tpl->compile( 'content' );

Выше в ставляем

$check_group = dle_cache( "check_group", $row['id'].$config['skin'], true );
if ( !$check_group ) {
	$author_group = $db->super_query( "SELECT user_group FROM " . PREFIX . "_users WHERE name = '{$row['autor']}'" );
	$tpl->set( '{author-group}', $author_group['user_group'] );
    create_cache( "check_group", $author_group['user_group'], $row['id'].$config['skin'], true );
}
else $tpl->set( '{author-group}', $check_group );

В shortstory.tpl используем тег внутри стиля блока
<article class="block story shortstory group-{author-group}">

Вариант 2: Если нужно пометить одну группу
Открываем engine/modules/show.short.php и ищем в нем код (первый найденный, примерно 970 строчка)

$tpl->compile( 'content' );

Выше в ставляем

$check_group = dle_cache( "check_group", $row['id'].$config['skin'], true );
if ( !$check_group ) {
	$author_group = $db->super_query( "SELECT user_group FROM " . PREFIX . "_users WHERE name = '{$row['autor']}'" );
	if ($author_group['user_group'] == 1) {
        $tpl->set( '{author-group}', 'vip' );
        create_cache( "check_group", 'vip', $row['id'].$config['skin'], true );
    }
    else {
        $tpl->set( '{author-group}', '' );
        create_cache( "check_group", 'no_vip', $row['id'].$config['skin'], true );
    }
}
else {
    if ($check_group == "vip") $tpl->set( '{author-group}', 'vip' );
    else $tpl->set( '{author-group}', '' );
}

В shortstory.tpl используем тег внутри стиля блока
<article class="block story shortstory {author-group}">

2 комментария

Mau
Юзер

Mau - 2 декабря 2019 19:51 -

Благодарю, проверил оба варианта, работает как надо. Только сейчас подумал, большая ли будет нагрузка, если на странице по 20-30 новостей?

DevilOper
Юзер

DevilOper - 2 декабря 2019 20:22 -

Mau,
Во избежания нагрузки варианты выше кешируются. Нагрузка в момент сбрасывания кеша. При выключенном кеше в каждой новости будет +1 запрос в бд. Если кратких новостей 20 то запросов будет 20

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

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

наверх