Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[BETA]BannedUser

Здесь авторы могут постить бета-версии своих расширений для phpBB. Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

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

Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 12 лет 10 месяцев
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Контактная информация:
Забанен: Бессрочно

[BETA]BannedUser

Сообщение deadromeo »

Название расширения: BannedUser
Описание расширения: Расширение добавит на ваш форум Бан-лист, а так же в профилях заблокированных пользователях будут отображаться соответствующие отметки.
Язык: ru
banneduser1.0.5.rar
(19.1 КБ) 281 скачивание
Последний раз редактировалось deadromeo 25.02.2017 16:58, всего редактировалось 9 раз.
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
xaocZ
phpBB 1.4.2
Сообщения: 71
Стаж: 10 лет 10 месяцев
Благодарил (а): 7 раз
Поблагодарили: 30 раз

Re: [BETA]BannedUser

Сообщение xaocZ »

Имхо конечно, разницы в принципе нет, но зачем в стилях:

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

<span class="corners-top"><span></span></span>
и т.п.
Нету ведь в 3.1* закруглений на картинках, можно было и вырезать.
phpbb 3.3
Аватара пользователя
Romnik
phpBB 2.0.2
Сообщения: 338
Стаж: 13 лет 1 месяц
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза
Контактная информация:

Re: [BETA]BannedUser

Сообщение Romnik »

Косяк "На форуме заблокированных пользователей: 260". Откуда?
На форуме всего 7 пользователей и заблокированных 0.

В мини-профиле информация о блокировке отсутствует.
Anvar
Former team member
Сообщения: 1965
Стаж: 14 лет
Благодарил (а): 67 раз
Поблагодарили: 799 раз
Контактная информация:

Re: [BETA] BannedUser

Сообщение Anvar »

В listener.php лишнее лучше удалить.
Скрытый текст

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

global $auth, $db;
	global $template, $user;

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

\phpbb\config\config $config,
\phpbb\auth\auth $auth, 
\phpbb\user $user,

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

$this->config = $config;
$this->auth = $auth;
$this->user = $user;
Событие core.viewtopic_modify_post_row, расположено в цикле. Запросы к базе будут выполнены столько раз, сколько постов в сообщении.

Используем ещё одно событие в listener:

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

'core.viewtopic_modify_post_data'	=> 'viewtopic_modify_post_data',
Заменяем свою функцию banmem2 на:

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

	public function viewtopic_modify_post_data($event)
	{
		$user_ids = array();
		$rowset = $event['rowset'];
		$post_list = $event['post_list'];
		for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
		{
			if (!isset($rowset[$post_list[$i]]))
			{
				continue;
			}
			$row = $rowset[$post_list[$i]];
			$poster_id = $row['user_id'];
			if ($poster_id != ANONYMOUS && !$row['foe'] && !$row['hide_post'])
			{
				$user_ids[] = $poster_id;
			}
			unset($rowset[$post_list[$i]]);
		}

		if (sizeof($user_ids))
		{
			$sql = 'SELECT ban_userid
				FROM ' . BANLIST_TABLE . '
				WHERE ' . $this->db->sql_in_set('ban_userid', $user_ids) . '
					AND ban_exclude = 0';
			$result = $this->db->sql_query($sql);
			while ($row = $this->db->sql_fetchrow($result))
			{
				$this->ban_userid[$row['ban_userid']] = $row['ban_userid'];
			}
			$this->db->sql_freeresult($result);
		}
	}
	public function banmem2($event)
	{
		if (!empty($this->ban_userid[$event['poster_id']]))
		{
			$post_row = array(
				'USERB_ID' => $this->ban_userid[$event['poster_id']],
			);
			$event['post_row'] += $post_row;
		}
	}
Теперь будет один запрос к базе вместо 10-15.
Последний раз редактировалось Anvar 30.11.2014 7:12, всего редактировалось 4 раза.
Причина: Очищено лишнее и удалён ban_userid
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 12 лет 10 месяцев
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Контактная информация:
Забанен: Бессрочно

Re: [BETA]BannedUser

Сообщение deadromeo »

xaocZ, спасибо, исправим
Romnik, странно, данные берутся то из таблицы ban_list, а точнее считаются все записи по количеству, форум же у вас чистый, из коробки, не конвертированный?
Anvar, спасибо за ценные советы, потиху опыта набираюсь, не все с первого раза выходит гладко

Добавлено спустя 11 минут 37 секунд:
Касательно подключения функции - после предложенных правок идет ошибка

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

SQL ERROR [ mysql4 ]

Unknown column 'user_id' in 'where clause' [1054]

SQL

SELECT ban_userid FROM phpbb_banlist WHERE ban_userid = user_id IN ('2', '48', '2', '50', '2', '50', '2', '50', '2', '53') AND ban_exclude = 0
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
Аватара пользователя
Romnik
phpBB 2.0.2
Сообщения: 338
Стаж: 13 лет 1 месяц
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза
Контактная информация:

Re: [BETA]BannedUser

Сообщение Romnik »

deadromeo писал(а):форум же у вас чистый, из коробки, не конвертированный?
С нуля.
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 12 лет 10 месяцев
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Контактная информация:
Забанен: Бессрочно

Re: [BETA]BannedUser

Сообщение deadromeo »

Печально, вроде и запрос прозрачный с выборкой

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

$sql = 'SELECT COUNT(ban_userid) as total_banned_users
			FROM ' . BANLIST_TABLE . '
			WHERE ban_exclude = 0';
		$result = $this->db->sql_query($sql);
		$row = $this->db->sql_fetchrow($result);
		$total_banned_users = (int) $row['total_banned_users'];
		$this->db->sql_freeresult($result);	
		
	$this->template->assign_vars(array(
		
		'TOTAL_BANNED_USERS'	=> $total_banned_users,
	));
Где тут беда не могу найти, обычный подсчет ....
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
Аватара пользователя
Romnik
phpBB 2.0.2
Сообщения: 338
Стаж: 13 лет 1 месяц
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза
Контактная информация:

Re: [BETA]BannedUser

Сообщение Romnik »

Если блокирую одного юзера, то отображает: 261.
Откуда берутся 260, тоже пока не найду.

Я думаю красный (броский) блок надо заменить на кнопку под аватарой.
Аватара пользователя
djkent
phpBB 2.0.2
Сообщения: 320
Стаж: 10 лет 11 месяцев
Откуда: Алтайский край г.Рубцовск
Благодарил (а): 10 раз
Поблагодарили: 5 раз
Контактная информация:

Re: [BETA]BannedUser

Сообщение djkent »

У меня вообще при просмотре сколько людей в бане выходит такой косяк
2014-11-29_210546.png
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: [BETA]BannedUser

Сообщение Татьяна5 »

djkent, скопируйте эти белые строчки, и вставьте их в сообщение текстом в [code][/code]. На скрине не разобрать что написано
Аватара пользователя
djkent
phpBB 2.0.2
Сообщения: 320
Стаж: 10 лет 11 месяцев
Откуда: Алтайский край г.Рубцовск
Благодарил (а): 10 раз
Поблагодарили: 5 раз
Контактная информация:

Re: [BETA]BannedUser

Сообщение djkent »

Татьяна5

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

[phpBB Debug] PHP Notice: in file [ROOT]/ext/phpbbworld/banneduser/controller/banneduser.php on line 125: Undefined variable: user
[phpBB Debug] PHP Notice: in file [ROOT]/ext/phpbbworld/banneduser/controller/banneduser.php on line 125: Trying to get property of non-object
[phpBB Debug] PHP Notice: in file [ROOT]/ext/phpbbworld/banneduser/controller/banneduser.php on line 130: Undefined variable: user
[phpBB Debug] PHP Notice: in file [ROOT]/ext/phpbbworld/banneduser/controller/banneduser.php on line 130: Trying to get property of non-object
Аватара пользователя
Romnik
phpBB 2.0.2
Сообщения: 338
Стаж: 13 лет 1 месяц
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза
Контактная информация:

Re: [BETA]BannedUser

Сообщение Romnik »

В моём косяке.
Я думаю не из этого-ли расширения ноги ростут - "Activity Stats 1.2.4-DEV "
Anvar
Former team member
Сообщения: 1965
Стаж: 14 лет
Благодарил (а): 67 раз
Поблагодарили: 799 раз
Контактная информация:

Re: [BETA]BannedUser

Сообщение Anvar »

deadromeo писал(а):Unknown column 'user_id' in 'where clause' [1054]
Опечатка. Изменил user_id на ban_userid.

Тот код сообразил по быстрому в качестве примера и не проверял.
Аватара пользователя
djkent
phpBB 2.0.2
Сообщения: 320
Стаж: 10 лет 11 месяцев
Откуда: Алтайский край г.Рубцовск
Благодарил (а): 10 раз
Поблагодарили: 5 раз
Контактная информация:

Re: [BETA]BannedUser

Сообщение djkent »

Anvar А что мне сделать как исправить эти ошибки которые я указал?
Аватара пользователя
Romnik
phpBB 2.0.2
Сообщения: 338
Стаж: 13 лет 1 месяц
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза
Контактная информация:

Re: [BETA]BannedUser

Сообщение Romnik »

djkent писал(а): А что мне сделать как исправить эти ошибки которые я указал?
Ждать когда автор исправит...
Ответить

Вернуться в «Бета-версии расширений для phpBB»