Пропустить

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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

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

Сообщение sharingan » 05.07.2010 17:01

Здравствуйте, такое вот дело, нужно сделать что бы рядом с ником забаненого юзера писало что он забанен, как это можно сделать?
Средствами пхп делать будет громоздко, прийдется делать сколько юзеров написало в теме столько запросов и делать (в файле виевтопик_бади) может можно как то по другому?

sharingan
phpBB 1.0.0
 
Сообщения: 3
Зарегистрирован: 05.07.2010 16:58
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение DK7 » 05.07.2010 17:14

Сделать звание "забаненый" и выдавать вручную пользователю.
Аватара пользователя
DK7
Модератор
Модератор
 
Сообщения: 939
Зарегистрирован: 17.07.2006 15:52
Откуда: Кишинёв
Благодарил (а): 6 раз.
Поблагодарили: 11 раз.

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

Сообщение sharingan » 05.07.2010 17:23

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

Добавлено спустя 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']

sharingan
phpBB 1.0.0
 
Сообщения: 3
Зарегистрирован: 05.07.2010 16:58
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение Sheer » 05.07.2010 20:59

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
Поддержка
Поддержка
 
Сообщения: 1552
Зарегистрирован: 18.11.2009 1:40
Откуда: Рига, Латвия (нелепая страна)
Благодарил (а): 9 раз.
Поблагодарили: 291 раз.

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

Сообщение Sheer » 06.07.2010 16:02

Да вот забыл еще.
Файл 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); 
Аватара пользователя
Sheer
Поддержка
Поддержка
 
Сообщения: 1552
Зарегистрирован: 18.11.2009 1:40
Откуда: Рига, Латвия (нелепая страна)
Благодарил (а): 9 раз.
Поблагодарили: 291 раз.

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

Сообщение Alek$ » 06.07.2010 18:42

Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
Alek$
Лидер модераторов
Лидер модераторов
 
Сообщения: 2653
Зарегистрирован: 03.08.2005 13:46
Откуда: Новосибирск
Благодарил (а): 3 раз.
Поблагодарили: 45 раз.

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

Сообщение владимир1983 » 06.07.2010 19:57

тут ошибка вроде:
// Найти
    $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 Мод нужный, может доработаете.
Сдаюсь в аренду или временно поживу за счет заказчика
Аватара пользователя
владимир1983
Поддержка
Поддержка
 
Сообщения: 1823
Зарегистрирован: 27.04.2010 2:17
Откуда: Сергиев Посад
Благодарил (а): 70 раз.
Поблагодарили: 205 раз.

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

Сообщение MAzZY » 06.07.2010 20:13

владимир1983, а ссылки, которые дал Alek$, Вам не видны?
Аватара пользователя
MAzZY
Former team member
 
Сообщения: 2952
Зарегистрирован: 14.05.2005 23:43
Благодарил (а): 61 раз.
Поблагодарили: 54 раз.
Предупреждения: 1

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

Сообщение владимир1983 » 06.07.2010 20:35

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

Добавлено спустя 3 минуты 54 секунды:
Про тот же самый Inactive and Banned Users` Custom Titles & Avatars русскоязычном инете найти не получилось, понятно что мод, но описание его найти не смог. На гуру про него тоже нет не чего.
Сдаюсь в аренду или временно поживу за счет заказчика
Аватара пользователя
владимир1983
Поддержка
Поддержка
 
Сообщения: 1823
Зарегистрирован: 27.04.2010 2:17
Откуда: Сергиев Посад
Благодарил (а): 70 раз.
Поблагодарили: 205 раз.

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

Сообщение Sheer » 07.07.2010 4:27

владимир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)
Аватара пользователя
Sheer
Поддержка
Поддержка
 
Сообщения: 1552
Зарегистрирован: 18.11.2009 1:40
Откуда: Рига, Латвия (нелепая страна)
Благодарил (а): 9 раз.
Поблагодарили: 291 раз.

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

Сообщение Пчелкин » 14.07.2010 19:55

Inactive_ Users_v1-0-0 Отличный мод !!!..куда положить перевод? Мож сюда или тему там начать?
Фанат phpBB. В HTML - без проблем, в CSS - так себе, учусь, в php - баран, помогает только дедукция
Аватара пользователя
Пчелкин
phpBB 3.0.7-PL1
 
Сообщения: 4901
Зарегистрирован: 15.01.2010 14:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 289 раз.
Поблагодарили: 557 раз.

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

Сообщение MAzZY » 14.07.2010 20:29

Для переводов есть отдельный раздел
Аватара пользователя
MAzZY
Former team member
 
Сообщения: 2952
Зарегистрирован: 14.05.2005 23:43
Благодарил (а): 61 раз.
Поблагодарили: 54 раз.
Предупреждения: 1

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

Сообщение Пчелкин » 14.07.2010 20:47

Фанат phpBB. В HTML - без проблем, в CSS - так себе, учусь, в php - баран, помогает только дедукция
Аватара пользователя
Пчелкин
phpBB 3.0.7-PL1
 
Сообщения: 4901
Зарегистрирован: 15.01.2010 14:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 289 раз.
Поблагодарили: 557 раз.


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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы