Удаление постов пользователя в IPB | IPB

Иногда приходится массово удалять сообщения от спаммеров на старом IPB1.3

Лучше делать это через опции модерации, но если постов много есть некрасивый вариант.
В админке делаем.

Выбираем посты чтобы удостовериться что удалим то что нужно
SELECT * FROM ibf_topics where last_poster_name="spammer"

Удаляем посты.
DELETE FROM ibf_topics where last_poster_name="spammer"

Удалить темы:
DELETE FROM ibf_topics WHERE starter_id=98451

Поскольку в статистике тем последние посты у нас будут от спамера, можно заменить поле last_poster_name на топикстартера (чисто косметическая история, не очень красиво, но как выбрать предыдущего постера пока не знаю). Условие tid – для конкретной записи, для замены всего массива – убираем.

UPDATE ibf_topics SET last_poster_name = starter_name where last_poster_name="spammer" and tid=2364

В админке в управлении форумами делаем ресинхрон.

Кто знает как выбрать реального последнего постера в теме и подставить значение а поле last_poster_name а также подставить дату предыдущего поста (перед постом спаммера) в поле обновления темы – добро пожаловать в комменты.

The table is full | IPB, MYSQL

Поймал ошибку Mysql: The table is full

По дефолту при создании таблицы в mysql (до 5-й вроде бы версии) существует ограничение на количество записей, размер таблицы. Таблица MyISAM. Достигли размера больше 4Гб и поймали ошибку: The table is full
Сервак на FreeBSD, по идее ограничений на размер файла в 4Гб для ffs нет.

Смотрим.

mysql> show table status like 'new_posts';

Обращаем внимание на Max_data_length он у нас 4294967295.

Вносим изменения в свойства таблицы:

mysql> alter table new_posts max_rows = 1000000000 avg_row_length = 1038;
Query OK, 4131562 rows affected (1 hour 20 min 36.41 sec)
Records: 4131562  Duplicates: 0  Warnings: 0

Запрос займет некоторое продолжительное время.

Проверяем опять.

mysql> show table status like 'new_posts';

Получаем Max_data_length равным 1099511627775. По идее ошибка должна уйти.

Даунгрейд php5 | FreeBSD, IPB

Проапдейтил php c 4 ветки до пятой (5.4), отвалился ipb. Пришлось откатиться до 5.3

Удаляем все пакеты php5 (с зависимостями)

pkg_deinstall -r -f php5

И ставим php53 и php53-extensions. Все.

 

IPB 1.3 знаки вопросов вместо символов | IPB

В продолжение темы про IPB 1.3 – на одном из серверов импортировал правильный дамп в честном cp1251 и получил знаки вопросов вместо кириллицы. Как решить писал ранее – http://adminlog.ru/?p=391
Но часть таблиц (например статусы пользователей) всё равно отображались неверно несмотря на то что всё остальное было в порядке.
Исправил только поставив phpmyadmin и просмотрев данные и структуру таблицы. Кодировка оказалась неверная – дефолтная, как для для всего сервера latin1. При этом в дампе данные в cp1251, чарсет – latin1, и импорт происходит корректно для одних таблиц и некорректно для других.
В общем лечится просто указанием правильной кодировки через phpmyadmin.

IPB 1.3 и кодировки Mysql | IPB

Если у вас на сервере дефолтная кодировка mysql – latin1, а в секции [mysqldump] в файле my.cnf указана кодировка дампа – cp1251 и дамп IPB у вас в правильном cp1251, то после того как мы залили дамп в базу (скажем во время восстановления из дампа) – можем получить знаки вопросов вместо кириллицы. И промучиться с кодировками можно довольно долго…

Лечится правкой файла IPB 1.3 – mySQL.php (лежит в sources/Drivers)

if ( !mysql_select_db($this->obj['sql_database'], $this->connection_id) )
{     echo ("ERROR: Cannot find database ".$this->obj['sql_database']);}
mysql_query("SET NAMES 'cp1251'");

За решение спасибо song’у:
http://www.sysman.ru/index.php?showtopic=7164

File Uploader IPB 1.3 | IPB

Перенес форум IPB 1.3 на новую площадку. Прописал новые пути однако мод file uploader начал ругаться:

Warning: filesize() [function.filesize]: Stat failed for /usr/local/www/apache22/data/forum/uploads/img-178-233724c5ad.jpg (errno=2 - No such file or directory) in /www/forum/sources/imageupload.php on line 187

Просмотрел все конфиги – переменной пути не нашёл. Значит путь прописан в базе. Смотрим исходник imageupload.php. Ищем переменную upload_dir в таблице ibf_image_settings:

select upload_dir from ibf_image_settings;

Меняем на то что нам нужно:

update ibf_image_settings set upload_dir = '/www/forum/uploads/';

Проверяем ещё раз селектом. Всё ок.

Администратор запретил Вам изменять репутацию других пользователей | IPB

В IPB 1.3 (Invision Power Board) с установленным модом репутации бывает такая штука – по непонятным причинам некоторым пользователям нельзя изменять репутацию других пользователей.

При попытке изменить репу получаем такое сообщение:

 Администратор запретил Вам изменять репутацию других пользователей

Лечится так: проверяем в базе – таблица – memebers, поля – allow_rep, allow_anon – нули поменять на единицы.