[BETA]BannedUser

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

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

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

[BETA]BannedUser

Сообщение deadromeo » 29.11.2014 14:29

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

xaocZ
phpBB 1.4.2
Сообщения: 60
Зарегистрирован: 19.05.2013 14:50
Благодарил (а): 7 раз
Поблагодарили: 26 раз

Re: [BETA]BannedUser

Сообщение xaocZ » 29.11.2014 15:43

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

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

<span class="corners-top"><span></span></span>
и т.п.
Нету ведь в 3.1* закруглений на картинках, можно было и вырезать.
phpbb 3.1

Аватара пользователя
Romnik
phpBB 2.0.2
Сообщения: 338
Зарегистрирован: 30.01.2011 9:24
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза

Re: [BETA]BannedUser

Сообщение Romnik » 29.11.2014 16:09

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

В мини-профиле информация о блокировке отсутствует.

Аватара пользователя
Anvar
Former team member
Сообщения: 1962
Зарегистрирован: 26.03.2010 9:09
Благодарил (а): 67 раз
Поблагодарили: 784 раза

Re: [BETA] BannedUser

Сообщение Anvar » 29.11.2014 16:32

В 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
Зарегистрирован: 08.05.2011 19:41
Благодарил (а): 28 раз
Поблагодарили: 40 раз
Забанен: Бессрочно

Re: [BETA]BannedUser

Сообщение deadromeo » 29.11.2014 17:23

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
Зарегистрирован: 30.01.2011 9:24
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза

Re: [BETA]BannedUser

Сообщение Romnik » 29.11.2014 17:35

deadromeo писал(а):форум же у вас чистый, из коробки, не конвертированный?
С нуля.

deadromeo
phpBB 2.0.0
Сообщения: 237
Зарегистрирован: 08.05.2011 19:41
Благодарил (а): 28 раз
Поблагодарили: 40 раз
Забанен: Бессрочно

Re: [BETA]BannedUser

Сообщение deadromeo » 29.11.2014 17:47

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

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

$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
Зарегистрирован: 30.01.2011 9:24
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза

Re: [BETA]BannedUser

Сообщение Romnik » 29.11.2014 17:54

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

Я думаю красный (броский) блок надо заменить на кнопку под аватарой.

Аватара пользователя
djkent
phpBB 2.0.2
Сообщения: 320
Зарегистрирован: 11.04.2013 17:25
Откуда: Алтайский край г.Рубцовск
Благодарил (а): 10 раз
Поблагодарили: 5 раз

Re: [BETA]BannedUser

Сообщение djkent » 29.11.2014 18:09

У меня вообще при просмотре сколько людей в бане выходит такой косяк
2014-11-29_210546.png

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9776
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2719 раз

Re: [BETA]BannedUser

Сообщение Татьяна5 » 29.11.2014 18:12

djkent, скопируйте эти белые строчки, и вставьте их в сообщение текстом в [code][/code]. На скрине не разобрать что написано

Аватара пользователя
djkent
phpBB 2.0.2
Сообщения: 320
Зарегистрирован: 11.04.2013 17:25
Откуда: Алтайский край г.Рубцовск
Благодарил (а): 10 раз
Поблагодарили: 5 раз

Re: [BETA]BannedUser

Сообщение djkent » 29.11.2014 18:14

Татьяна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
Зарегистрирован: 30.01.2011 9:24
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза

Re: [BETA]BannedUser

Сообщение Romnik » 29.11.2014 18:14

В моём косяке.
Я думаю не из этого-ли расширения ноги ростут - "Activity Stats 1.2.4-DEV "

Аватара пользователя
Anvar
Former team member
Сообщения: 1962
Зарегистрирован: 26.03.2010 9:09
Благодарил (а): 67 раз
Поблагодарили: 784 раза

Re: [BETA]BannedUser

Сообщение Anvar » 29.11.2014 18:38

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

Тот код сообразил по быстрому в качестве примера и не проверял.

Аватара пользователя
djkent
phpBB 2.0.2
Сообщения: 320
Зарегистрирован: 11.04.2013 17:25
Откуда: Алтайский край г.Рубцовск
Благодарил (а): 10 раз
Поблагодарили: 5 раз

Re: [BETA]BannedUser

Сообщение djkent » 29.11.2014 18:40

Anvar А что мне сделать как исправить эти ошибки которые я указал?

Аватара пользователя
Romnik
phpBB 2.0.2
Сообщения: 338
Зарегистрирован: 30.01.2011 9:24
Откуда: Москва/Выдропужск
Благодарил (а): 39 раз
Поблагодарили: 64 раза

Re: [BETA]BannedUser

Сообщение Romnik » 29.11.2014 18:43

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

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