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

Удаление модератора группы

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Brain
phpBB 1.0.0
Сообщения: 8
Стаж: 18 лет 4 месяца

Удаление модератора группы

Сообщение Brain »

Нашел интересную штуку.
Пытаюсь удалить пользователя, который является модератором группы. Вот код admin/admin_users.php

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

			$sql = "SELECT group_id
				FROM " . GROUPS_TABLE . "
				WHERE group_moderator = $user_id";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not select groups where user was moderator', '', __LINE__, __FILE__, $sql);
			}
			
			while ( $row_group = $db->sql_fetchrow($result) )
			{
				$group_moderator[] = $row_group['group_id'];
			}
			
			if ( count($group_moderator) )
			{
				$update_moderator_id = implode(', ', $group_moderator);
				
				$sql = "UPDATE " . GROUPS_TABLE . "
					SET group_moderator = " . $userdata['user_id'] . "
					WHERE group_moderator IN ($update_moderator_id)";
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql);
				}
			}
Какая интересная фенечка. Сначала отбираются group_id,
потом делается $group_moderator[] = $row_group['group_id'];,
т.е. все идентификаторы групп впихиваются в один массив, а потом - выбираются группы, в которых

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

WHERE group_moderator IN ($update_moderator_id)"
О как! Т.е. group_moderator - идентификатор пользователя, должен быть равен идентификатору группы!!!
А может сделать совсем просто:

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

                // Если пользователь является модератором группы, то модератором станет текущий пользователь
                // Если таковых групп нет, то и хрен с ними
                $sql = "UPDATE " . GROUPS_TABLE . "
                    SET group_moderator = " . $userdata['user_id'] . "
                    WHERE group_moderator = $user_id";
                if( !$db->sql_query($sql) )
                {
                    message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql);
                }
Добавлено спустя 5 минут 7 секунд:

Или я пропустил какое-то критическое обновление. Сейчас свято верю, что у меня 2.0.22

Добавлено спустя 1 минуту 48 секунд:

Re: Удаление модератора группы

[quote="Brain"]Нашел интересную штуку.
Пытаюсь удалить пользователя, который является модератором группы. Вот код admin/admin_users.php

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

			$sql = "SELECT group_id
				FROM " . GROUPS_TABLE . "
				WHERE group_moderator = $user_id";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not select groups where user was moderator', '', __LINE__, __FILE__, $sql);
			}
			
			while ( $row_group = $db->sql_fetchrow($result) )
			{
				$group_moderator[] = $row_group['group_id'];
			}
			
			if ( count($group_moderator) )
			{
				$update_moderator_id = implode(', ', $group_moderator);
				
				$sql = "UPDATE " . GROUPS_TABLE . "
					SET group_moderator = " . $userdata['user_id'] . "
					WHERE group_moderator IN ($update_moderator_id)";
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql);
				}
			}
Какая интересная фенечка. Сначала отбираются group_id,
потом делается $group_moderator[] = $row_group['group_id'];,
т.е. все идентификаторы групп впихиваются в один массив, а потом - выбираются группы, в которых

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

WHERE group_moderator IN ($update_moderator_id)"
О как! Т.е. group_moderator - идентификатор пользователя, должен быть равен идентификатору группы!!!
А может сделать совсем просто:

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

                // Если пользователь является модератором группы, то модератором станет текущий пользователь
                // Если таковых групп нет, то и хрен с ними
                $sql = "UPDATE " . GROUPS_TABLE . "
                    SET group_moderator = " . $userdata['user_id'] . "
                    WHERE group_moderator = $user_id";
                if( !$db->sql_query($sql) )
                {
                    message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql);
                }
Только что посмотрел чистый 2.0.22 - там такая фигня есть, т.е. обновления я по-укурке не прозевал.
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение Coagulant »

Brain, совершенно верно.
Я уверен, что сабмитил репорт об этом в багтрек в прошлом году, но найти не могу... :oops:

Нашёл :lol:

http://www.phpbb.com/bugs/viewreport.php?b=280

Добавлено спустя 56 секунд:

http://www.phpbbguru.net/community/viewtopic.php?t=4534
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 18 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

Сообщение Поручик »

Мдя, спят они на ходу что-ли? :shock:
Кстати, в Admin UserList 2.0.6 такой фигни нет, там все правильно.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение Coagulant »

Засабмитил по-новой
http://www.phpbb.com/bugs/viewreport.php?b=6602
Поручик писал(а):Мдя, спят они на ходу что-ли?
Они Олимпус делают, фиксы для 2.0.x - это неприоритетная задача. Если только они не касаются sucurity форума.
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 6 месяцев
Поблагодарили: 1 раз

Сообщение Gisher »

заюзал поиск, скорей всего пишу по теме...
после удаления пользователя с форума, в группе, где он был модератором появился глюк...
невозможно даже открыть управление группой в админке выдаёт следующее

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

Could not obtain user info for moderator list

DEBUG MODE

SELECT user_id, username FROM phpbb_users WHERE user_id = 87

Line : 120
File : admin_groups.php
а с форума при нажатии на эту группу выдаёт

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

 
Error getting user list for group

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY u.username' at line 7

SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending, u.user_allow_viewonline, u.user_session_time FROM phpbb_users u, phpbb_user_group ug WHERE ug.group_id = 144 AND u.user_id = ug.user_id AND ug.user_pending = 0 AND ug.user_id <> ORDER BY u.username

Line : 815
File : groupcp.php 
в остальных группах всё нормально. Как можно это исправить?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Сообщение rxu »

Gisher
Найдите в таблице phpbb_group эту группу и поменяйте в поле group_moderator значение на user_id пользователя, которого Вы хотите сделать там модератором, или на свой.
Изображение
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 6 месяцев
Поблагодарили: 1 раз

Сообщение Gisher »

rxu
спасибо большое, всё встало на своё место. Это глюк форума, или у меня что то не правильно стоит?
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение Coagulant »

Gisher
Это древний глюк. Метод его лечения в первом сообщении темы.
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 6 месяцев
Поблагодарили: 1 раз

Сообщение Gisher »

Coagulant
спасибо за ответ
Аватара пользователя
go
phpBB 2.0.1
Сообщения: 261
Стаж: 18 лет 1 месяц

Сообщение go »

rxu писал(а):Найдите в таблице phpbb_group эту группу
после тщательного поиска нужной мне темы,наконец-то нашел нужную мне тему)
Не подскажете, как выйти на группы которые существуют на форуме?
Проблема в следующем:
был удален модератор большиства группу форума..и теперь при заходе на просомотр информации о группе-пишется о несуществовании пользователя с id=2 (в данном случае)..в phpAdmine не нашел перечисление групп..не подскажете?
Аватара пользователя
chipp
phpBB 1.4.3
Сообщения: 89
Стаж: 17 лет 1 месяц
Откуда: Беларусь, Минск

Сообщение chipp »

go, phpbb_group
в поле group_name пишется имя
group_moderator - номер пользователя
Хочешь задать вопрос? Подумай! Может его уже задавали? Поиск жжет! И еще: если ошибка на буржуйском, на то есть словарь:!:
Аватара пользователя
go
phpBB 2.0.1
Сообщения: 261
Стаж: 18 лет 1 месяц

Сообщение go »

chipp
у меня phpbb_groups вопрос .скорее некорректный.ибо относится к phpAdmin но возможность внести имя группы и его модератора-не могу найти.
Изображение
Это лох-неское чудовище потеряло свое озеро и бегает, пока его кто-нибудь не пристрелит.
Vadim808
phpBB 1.0.0
Сообщения: 2
Стаж: 16 лет 9 месяцев

Сообщение Vadim808 »

Здравствуйте!
Я админ phpbb. Удалил по ошибке модератора всех групп.
Теперь пишет:
Could not obtain user info for moderator list

DEBUG MODE

SELECT user_id, username FROM phpbb_users WHERE user_id = 5

Line : 119
File : admin_groups.php

Что сделать, чтобы удалить все группы эти теперь или нового модератора им назначить? Удобнее было бы через админ часть починить конечно.

Спасибо заранее
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 19 лет 9 месяцев
Откуда: Бердск

Сообщение crash »

Vadim808
а вы вообще читать умеете?
Vadim808 писал(а):Что сделать, чтобы удалить все группы эти теперь или нового модератора им назначить?
rxu писал(а):Найдите в таблице phpbb_group эту группу и поменяйте в поле group_moderator значение на user_id пользователя, которого Вы хотите сделать там модератором, или на свой.
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Vadim808
phpBB 1.0.0
Сообщения: 2
Стаж: 16 лет 9 месяцев

Сообщение Vadim808 »

crash
Большое спасибо!
Мало опыта и поэтому не сразу понял, что написано. Ваш конкретный ответ сразу мне помог

Вернуться в «Поддержка phpBB 2.0.x»