Выводить рядом с ником "забанено"

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
sharingan
phpBB 1.0.0
Сообщения: 3
Стаж: 16 лет 2 месяца

Выводить рядом с ником "забанено"

Сообщение sharingan »

Здравствуйте, такое вот дело, нужно сделать что бы рядом с ником забаненого юзера писало что он забанен, как это можно сделать?
Средствами пхп делать будет громоздко, прийдется делать сколько юзеров написало в теме столько запросов и делать (в файле виевтопик_бади) может можно как то по другому?
Аватара пользователя
DK7
Former team member
Сообщения: 1008
Стаж: 20 лет 2 месяца
Откуда: Кишинёв
Благодарил (а): 3 раза
Поблагодарили: 25 раз

Re: Выводить рядом с ником "забанено"

Сообщение DK7 »

Сделать звание "забаненый" и выдавать вручную пользователю.
sharingan
phpBB 1.0.0
Сообщения: 3
Стаж: 16 лет 2 месяца

Re: Выводить рядом с ником "забанено"

Сообщение sharingan »

А можете подсказать в каком файле выполняется запрос добавления забаненого человека в список забаненых? я хочу сразу там сделать запрос на изменение звания юзера.

Добавлено спустя 54 минуты 37 секунд:
Файлик уже нашел, теперь проблема с апдейтом пользователя.
Файл include/functions_user.php
строка 1067
после

Код: Выделить всё

$db->sql_multi_insert(BANLIST_TABLE, $sql_ary);
пишу

Код: Выделить всё

$mquery="UPDATE '.RANKS_TABLE.' SET user_rank='23' WHERE user_id='$user_id'";
		 $db->sql_query($mquery);
23 - звание забанен.
Но почему то апдейт не проходит, подумал может в переменной нет ид юзера, вписал напрямую туда id но все равно 0 реакции. Что я не так делаю?

Добавлено спустя 10 минут 29 секунд:
Все разобрался '.RANKS_TABLE. подвело, вписал название все нормально заработало. Правда ид юзера пришлось гетать $_GET['u']
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Выводить рядом с ником "забанено"

Сообщение Sheer »

sharingan писал(а):что бы рядом с ником забаненого юзера писало что он забанен
Сначала выполнить SQL

Код: Выделить всё

ALTER TABLE `phpbb_users` ADD `user_ban` TINYINT( 1 ) UNSIGNED DEFAULT '0' NOT NULL AFTER `user_form_salt` ;
Если уже есть забаненные пользователи, то вручную в этом поле выставить 1.
Файл viewtopic.php

Код: Выделить всё

// Найти
    if ($row['post_attachment'] && $config['allow_attachments'])
    {
        $attach_list[] = $row['post_id'];

        if ($row['post_approved'])
        {
            $has_attachments = true;
        }
    }
// После вставить
    if ($row['user_ban'])
    {
        $sqlban = 'SELECT MAX(ban_id) AS last, MAX(ban_end) AS end FROM '. BANLIST_TABLE .' WHERE ban_userid = '.  $row['user_id'] .' LIMIT 1';
        $res = $db->sql_query($sqlban);
        $r = $db->sql_fetchrow($res);
        $last_ban = $r['last'];
        $end = $r['end'];
        $db->sql_freeresult($res);
        $row['end'] =  $end;
        if ($end !=0)
        {
           if (!$last_ban || $end < time())
           {
               // ban Expired
              include_once($phpbb_root_path . 'includes/mcp/mcp_unban.' . $phpEx);
              mcp_unban($row['user_id']);
              $row['user_ban'] = 0;
            }
        }
    }
// Найти
    $rowset[$row['post_id']] = array(
// После вставить
        'user_ban'        => $row['user_ban'],
        'end'                => $row['end'],
// Найти
            $user_cache[$poster_id] = array(
// После вставить
        'user_ban'        => $row['user_ban'],
        'end'                => $row['end'],
// Найти
    $postrow = array(
// После вставить
'BAN_END'     => ($user_cache[$poster_id]['end']) ? $user->format_date($user_cache[$poster_id]['end']) : '<span style="color: red;">'.$user->lang['PERMANENT'].'</span>',
'S_BAN'         => $user_cache[$poster_id]['user_ban'],
 
Файл language/ru/common.php
// Найти

Код: Выделить всё

$lang = array_merge($lang, array(
// После вставить
     'BANNED'            => '&nbsp;Забанен до:&nbsp;',
    'PERMANENT'      => 'Бессрочно', 
Файл includes/functions_user.php

Код: Выделить всё

// Найти, строка 791
$banlist_ary[] = (int) $row['user_id'];
// После вставить
// set user_ban to 1
$sqlban = 'UPDATE ' . USERS_TABLE . ' SET user_ban = 1 WHERE ' . $db->sql_in_set('username_clean', $sql_usernames);
$result = $db->sql_query($sqlban); 
// Найти
        $l_unban_list = '';
        while ($row = $db->sql_fetchrow($result))
        {
            $l_unban_list .= (($l_unban_list != '') ? ', ' : '') . $row['unban_info'];
            $unban_info[] = $row['unban_info'];
        }
        $db->sql_freeresult($result);
// После вставить
        if ($mode == 'user')
        {   // set 'user_ban' to zero
            $unban_name = array_map(NULL, $unban_info);
            $sql_unban = 'UPDATE '. USERS_TABLE .' SET user_ban = 0 WHERE '. $db->sql_in_set('username', $unban_name);
            $db->sql_query($sql_unban);
        } 
Создать файл includes/mcp/mcp_unban.php

Код: Выделить всё

<?php
if (!defined('IN_PHPBB'))
{
    exit;
}

/**
* @package mcp
*/

    function mcp_unban($id)
    {
        global $config, $db, $user, $auth, $template, $cache;
        global $phpbb_root_path, $phpEx;
        $mode = 'user';
        $sql = 'SELECT username FROM '. USERS_TABLE .' WHERE user_id = ' .$id;
        $result = $db->sql_query($sql);
        $row = $db->sql_fetchrow($result);
        $user_name = $row['username'];

        $sql = 'UPDATE '. USERS_TABLE .' SET user_ban = 0 WHERE user_id = ' .$id;
        $db->sql_query($sql);
        $sql = 'DELETE FROM ' . BANLIST_TABLE . '
        WHERE ban_userid = ' .$id;
        $db->sql_query($sql);

        // Add to moderator and admin log
        add_log('admin', 'LOG_UNBAN_' . strtoupper($mode),  $user_name);
        add_log('mod', 0, 0, 'LOG_UNBAN_' . strtoupper($mode), $user_name);
    }

?>
Файл styles/subsilver2/template/viewtopic_body.html
Найти

Код: Выделить всё

<span class="postdetails">
После вставить

Код: Выделить всё

<!-- IF postrow.S_BAN --><br /><b><span style="background: red;"><span style="color: white;">{L_BANNED}</span></span></b><br>{postrow.BAN_END}<hr /><!-- ENDIF -->
Уф.... Вроде все...
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Выводить рядом с ником "забанено"

Сообщение Sheer »

Да вот забыл еще.
Файл includes/auth_db.php

Код: Выделить всё

// Найти
// Successful login... set user_login_attempts to zero
// После вставить
//set user_ban to zero
        $sql = 'UPDATE ' . USERS_TABLE . '
        SET user_ban = 0
        WHERE user_id = ' . $row['user_id'];
        $db->sql_query($sql); 
Аватара пользователя
Alek$
Former team member
Сообщения: 2616
Стаж: 21 год 1 месяц
Откуда: Новосибирск
Поблагодарили: 37 раз

Re: Выводить рядом с ником "забанено"

Сообщение Alek$ »

Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Выводить рядом с ником "забанено"

Сообщение владимир1983 »

тут ошибка вроде:

Код: Выделить всё

// Найти
    $rowset[$row['post_id']] = array(
// После вставить
        'user_ban'        => $row['user_ban'],
        'end'                => $row['end'],
Посмотрите пожалуйста ещё не точности в инструкции. Поставил, работает, нормально отображает временный бан, бессрочный.Вот так например отображает бессрочный бан:
Изображение
Sheer
Есть проблема с снятием бана(удаления пользователя из чёрного списка). При удалении выдаёт ошибку:
Общая ошибка
SQL ERROR [ mysql4 ]

[0]

SQL

No values specified for SQL IN comparison

BACKTRACE

FILE: includes/db/dbal.php
LINE: 379
CALL: dbal->sql_error()

FILE: includes/functions_user.php
LINE: 1249
CALL: dbal->sql_in_set()

FILE: includes/acp/acp_ban.php
LINE: 71
CALL: user_unban()

FILE: includes/functions_module.php
LINE: 507
CALL: acp_ban->main()

FILE: adm/index.php
LINE: 78
CALL: p_master->load_active()
Sheer Мод нужный, может доработаете.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 21 год 4 месяца
Благодарил (а): 79 раз
Поблагодарили: 69 раз
Забанен: Бессрочно

Re: Выводить рядом с ником "забанено"

Сообщение MAzZY »

владимир1983, а ссылки, которые дал Alek$, Вам не видны?
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Выводить рядом с ником "забанено"

Сообщение владимир1983 »

MAzZY
Видны замечательно. Но не знание мной английского делает их для меня мало информативными. Переводчики онлайн переводят ужасно коряво.

Добавлено спустя 3 минуты 54 секунды:
Про тот же самый Inactive and Banned Users` Custom Titles & Avatars русскоязычном инете найти не получилось, понятно что мод, но описание его найти не смог. На гуру про него тоже нет не чего.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Выводить рядом с ником "забанено"

Сообщение Sheer »

владимир1983 писал(а):Есть проблема с снятием бана(удаления пользователя из чёрного списка). При удалении выдаёт ошибку:
Странно... У меня работает без проблем. А что у вас записывается в этом месте

Код: Выделить всё

        if ($mode == 'user')
        {   // set 'user_ban' to zero
            $unban_name = array_map(NULL, $unban_info);
            $sql_unban = 'UPDATE '. USERS_TABLE .' SET user_ban = 0 WHERE '. $db->sql_in_set('username', $unban_name);
            $db->sql_query($sql_unban);
        } 
в переменную $sql_unban ? Похоже, что $unban_name пусто. Непонятно почему?
У меня например это выглядит так, и все работает

Код: Выделить всё

UPDATE phpbb_users SET user_ban = 0 WHERE username IN ('nigugu', 'Zzorg') 
Если снимать бан сраз с двоих, например
или так, если с одного

Код: Выделить всё

UPDATE phpbb_users SET user_ban = 0 WHERE username = 'nigugu' 
А до этого работало без проблем?
Попробуй так (у меня тоже работает)

Код: Выделить всё

        if ($mode == 'user')
        {   // set 'user_ban' to zero
            $sql_unban = 'UPDATE '. USERS_TABLE .' SET user_ban = 0 WHERE '. $db->sql_in_set('username', $unban_info);
            $db->sql_query($sql_unban);
        } 
Собственно, это все измениния в функции function user_unban($mode, $ban)
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Выводить рядом с ником "забанено"

Сообщение Пчелкин »

Inactive_ Users_v1-0-0 Отличный мод !!!..куда положить перевод? Мож сюда или тему там начать?
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 21 год 4 месяца
Благодарил (а): 79 раз
Поблагодарили: 69 раз
Забанен: Бессрочно

Re: Выводить рядом с ником "забанено"

Сообщение MAzZY »

Для переводов есть отдельный раздел
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Выводить рядом с ником "забанено"

Сообщение Пчелкин »

NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70

Вернуться в «Запросы модов для phpBB 3.0.x»