Белые или пустые страницы

Перевод статьи о причинах возникновения «белых» страниц вместо страниц форума с vbulletin.com:

Известные причины появления пустых или «белых» страниц:

1. Вы неправильно загрузили файлы vBulletin. Заново загрузите все файлы vBulletin (кроме изображений) и убедитесь в том, что вы загрузили их в ASCII формате, а также в том, что вы перезаписали старые файлы. Убедитесь в том, что вы загрузили файлы «Панели администратора», в каталог панели администратора(admincp), которая указанна в config.php. Далее, если у вас есть доступ в «Панель Администратора», запустите «Подозрительные версии файлов» в «Диагностике», чтобы убедиться в том, что загружены все файлы, соответствующие Вашей версии форума:
Читать далее Белые или пустые страницы

Амперсанд в названиях разделов

Проблема: при использовании знака «&» (амперсанд) в названиях разделов форума возникает ошибка валидатора. (validator.w3.org)

Решение: создаем новый модуль (Админка — Продукты и модули — Управление модулями — Добавить модуль)

Продукт — vBulletin
Местоположение модуля — forumbit_display
Заголовок — Ampersand Fix
Порядок выполнения — 5
Код PHP модуля$forum[title] = htmlspecialchars($forum[title]);
Модуль включен — Да

Xenforo и кодировка при конвертации

Конвертировал vBulletin в Xenforo и столкнулся с проблемой, что даже при указании явной кодировки utf-8 при импорте, и корректном хранении всех данных vBulletin в utf-8, всё равно получаем кракозябры после импорта. После недолгих поисков в одном из скриптов импортера, а именно library/XenForo/Importer/Abstract.php была найдена функция _convertToUtf8, которая все импортируемые данные «насильно» пытается конвертировать в utf-8, чем и вызывает вышеупомянутую проблему. Следовательно, отучаем её это делать. = )

Из файла library/XenForo/Importer/Abstract.php вырезаем следующий кусочек кода:

// note: assumes charset is ascii compatible
if (preg_match(‘/[\x80-\xff]/’, $string))
{
if (function_exists(‘iconv’))
{
$string = @iconv($this->_charset, ‘utf-8//IGNORE’, $string);
}
else if (function_exists(‘mb_convert_encoding’))
{
$string = mb_convert_encoding($string, ‘utf-8’, $this->_charset);
}
}

и сохраняем. Повторяем процесс импорта.

Отображение всех тем по умолчанию

Задача: установить способ отображения тем «Отображать все темы» сразу во всех разделах.

Решение: Выполняем следующий SQL-запрос (Админка — Обслуживание — Выполнить SQL запрос):

UPDATE forum
SET daysprune = -1

и Перестраиваем информацию о разделах. (Админка — Обслуживание — Обновление счётчиков — Перестроить информацию о разделах)

P.S Не забывайте указывать префикс таблиц, если он используется.

Как отключить рейтинг тем

Задача: полностью отключить возможность оценивать темы на форуме.

Решение: Выполняем следующий SQL-запрос (Админка — Обслуживание — Выполнить SQL запрос):

UPDATE forum
SET options = options - 2048
WHERE options & 2048

и Перестраиваем информацию о разделах. (Админка — Обслуживание — Обновление счётчиков — Перестроить информацию о разделах)

Примечание: Чтобы обратно включить возможность оценивать темы, необходимо повторить те же действия, только со следующим запросом:

UPDATE forum
SET options=options + 2048
WHERE NOT(options & 2048);

P.S Не забывайте указывать префикс таблиц, если он используется.

Ссылки и BBCode [CODE]

Задача: Сделать так, чтобы ссылки внутри ббкода [CODE] были «кликабильными».

Реализация: Открываем файл includes/functions_newpost.php, находим:

function convert_url_to_bbcode($messagetext)
{
global $vbulletin;

и ниже добавляем:

$messagetext = str_replace(array(‘[CODE]’, ‘[/CODE]’), array(‘[QUOTE]’, ‘[/QUOTE]’), $messagetext);

Всё.

P.S: Если небходимо, то можно также добавить в массив для поиска и замены ббкоды написанные в нижнем регистре.

Восстановление темы/сообщения/пользователя.

Порой возникает необходимость восстановить какую-либо тему, сообщение или пользователя, после того, как кто-то их, случайно (или не случайно:)) удалил. Для этого нам понадобится дамп нашей БД n-дневной давности.
Нашли? Тогда поехали.
Читать далее Восстановление темы/сообщения/пользователя.

Проблема авторизации сразу у всех пользователей

Сегодня столкнулся с проблемой у клиента, что при попытке авторизоваться на форуме получаем следующее:

Неверное имя пользователя или пароль. Вы использовали предел попыток входа! Попробовать войти в следующий раз вы сможете не ранее, чем через 15 минут. Не забудьте, что пароль чувствителен к регистру. Забыли пароль? Нажмите здесь!

Первая мысль — брутят! Но не всех же пользователей сразу. Далее, смотрю, как форум распознает IP-пользователей, но и здесь все нормально. Захожу в табличку strikes, чтоб посмотреть зависимость блокировок от времени, и увидел, что у всех юзеров в поле «strikeip» записан IP-сервера. Собственно, все стало ясно.
Читать далее Проблема авторизации сразу у всех пользователей

Как отключить форум, не имея доступа к ACP

Иногда случается так, что нужно быстро отключить форум, но доступа к Панели Администратора нет, тогда в помощь приходит phpMyAdmin.

Подключаемся к БД и выполняем следующий SQL-запрос:
UPDATE datastore SET data=REPLACE(data,'s:8:"bbactive";i:1;','s:8:"bbactive";i:0;') WHERE title='options';
UPDATE setting SET value=0 WHERE varname='bbactive';

Все. = )

Замена ссылок-изображений на изображения.

Задача: реализовать отображение ссылок-изображений, которые отправляет пользователь через форму отправки сообщений, как изображения, а не как, собственно, ссылки. Читать далее Замена ссылок-изображений на изображения.