VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
В админке есть Выполнить SQL запрос, подскажите сам синтаксис создания SQL запроса.
Для примера, мне сечас надо поменять у всех юзеров язык интерфейса, и включить публичные сообщения(так получилось что по умолчанию был выключен)
А как написать такой запрос я не знаю, в поиске не нашел
Кури маны и изучай структуру базы данных vBulletin. Например, для смены языка потребуется следующее:
Определить ID для каждого языка
Code:
SELECT * FROM `language`
Записать ID языка в таблицу пользователей
Code:
UPDATE `user` SET `languageid` = XXX
Записать ID языка в таблицу сессий
Code:
UPDATE `session` SET `languageid` = XXX
Здесь 'XXX' -- число, ID языка из таблицы 'language'.
Ghost добавил 03.08.2009 в 18:24
З.Ы. И все равно это, кстати, не поможет до тех пор пока юзеры не перелогинятся, т.к. ID используемого ими языка хранится еще и в куках, а не только в базе данных.
Last edited by Ghost : 08-03-2009 at 07:24 PM.
Reason: Добавлено сообщение
@vasil
Простоузер
Join Date: Jun 2008
Posts: 5
Reputation:
Novice 0
Репутация в разделе: 0
0
Quote:
Originally Posted by Ghost
UPDATE `user` SET `languageid` = XXX
попробовал сделать
Code:
UPDATE `vb_user` SET `languageid` = `2`
выдало
Quote:
Во время выполнения вашего запроса произошла ошибка. Информация была возвращена.
номер ошибки: 1054
описание ошибки: Unknown column '2' in 'field list'
UPDATE `vb_user` SET `languageid` = '2' не те символы поставил
Таблица user - vb_user, languageid русского - 2
Какие символы тогда ставить?
vasil добавил 03.08.2009 в 19:52
Всем спасибо, разобрался, `` вокруг 2 были лишними
vasil добавил 03.08.2009 в 21:22
А как включить публичные сообщения, как я понял это задается в поле options, там много цифр,
Как это поле формируется?
Last edited by vasil : 08-03-2009 at 10:22 PM.
Reason: Добавлено сообщение
@Ghost
Гуру
Join Date: Feb 2008
Posts: 983
Версия vB: 3.8.1
Reputation:
Гуру 1014
Репутация в разделе: 896
1
vasil, ты прав, это определяется в поле options. если я не ошибаюсь, то число, которое там хранится, складывается из степеней двойки, каждая из которых обозначает какую-то настройку. тебе нужно сделать следующее:
включить ЛС у себя и выполнить запрос
Code:
SELECT options FROM vb_user WHERE userid = XXX
и записать найденное число (здесь XXX -- ID твоего пользователя)
выключить ЛС и снова выполнить тот же запрос -- число должно получиться другое
вычесть из первого числа второе -- получаем код опции "включить ЛС". у меня оно получилось равным 2048, т.е. 2^20 (скорее всего у тебя получится такое же, хотя хз зависит ли это от версии движка). обозначим это число YYY.
для того чтобы найти всех, у кого эта опция отключена, выполням запрос
Code:
SELECT * FROM vb_user WHERE NOT(options & YYY)
для того чтобы добавить эту опцию тем, у кого ее нет, запрос будет таким
Code:
UPDATE vb_user SET options = options + YYY WHERE userid IN (SELECT userid FROM vb_user WHERE NOT(options & YYY))