Обновление phpBB 3.0.x на phpBB 3.1.x

Обновлял недавно phpBB 3.0.12 на 3.1.8, авто обновление тут не поможет, поэтому опишу по пунктам процедуру обновления:

1) Обязательно сделаем резервную копию файлов и базы данных форума. Cделаем стандартной темой prosilver, отключим остальные стили и модули, так как они не будут работать на новой версии phpBB.

2) Скачаем архив с новой версией phpBB с официального сайта «https://www.phpbb.com/downloads/».

3) На сервере удалим все файлы и папки форума кроме файла config.php и директорий images, files, store.

4) Распакуем скачанный архив, удалим файл config.php и директории images, files, store. Переместим остальные файлы на сервер.

5) В браузере откроем адрес форума указав на скрипт обновления базы, например http://FORUM/install/database_update.php и следуя инструкциям выполним обновление.
На этом этапе у меня произошла ошибка:

PHP Fatal error:  Uncaught exception 'Twig_Error_Loader' with message 'Unable to find template "login_body.html" ...
...

Подозреваю что информация в базе данных, в таблице phpbb_migrations не дала скрипту полностью выполнить обновление. По этому решил проблему восстановив старую базу форума, очистив эту таблицу phpbb_migrations через phpMyAdmin или можно sql запросом:

TRUNCATE TABLE phpbb_migrations

И снова выполнив скрипт обновления базы http://FORUM/install/database_update.php, который на этот раз выполнил обновление правильно.

По окончанию обновления удалим директорию install и очистим кеш через панель администрирования форума. Готово.

Смотрите также:
Решение ошибки «A module already exists» и «The installer detected a timeout» при обновлении phpBB

Установка OneALL Social Login в phpBB

Кратко опишу по пунктам как установить расширение OneALL Social Login, позволяющее входить на форум используя учетные записи социальных сетей.

Читать далее «Установка OneALL Social Login в phpBB»

Как установить движок форума phpBB в Ubuntu

Приведу пример простой установки phpBB в Ubuntu.

Обновим списки пакетов и установим phpBB:

sudo apt-get update
sudo apt-get install imagemagick apache2 mysql-server mysql-client phpbb3

После предыдущей команды установки автоматически будет создан файл конфигурации в директории /etc/apache2/conf-enabled/phpbb3.conf, благодаря которому форум уже можно открыть набрав в адресной строке http://ХОСТ/phpbb (где ХОСТ — домен или IP вашего сервера).

Если конфигурационный файл не был создан, то можно вручную сделать символическую ссылку на директорию с http-файлами phpBB, например:

sudo ln -s /usr/share/phpbb3/www /var/www/forum

Перезапустим web-сервер apache2 чтобы изменения вступили в силу:

sudo /etc/init.d/apache2 restart

Стандартный логин к phpBB: admin
Стандартный пароль к phpBB: admin

Вот и все.

Как убрать статистику с главной страницы форума phpBB

Чтобы убрать статистику с главной страницы форума phpBB, закомментируем определенные строки в файле шаблона используемой темы.
Переходим в папку template и откроем в текстовом или html редакторе файл index_body.html.
Найдем следующие строки:

<h3>{L_STATISTICS}</h3>
<p>{TOTAL_POSTS} &bull; {TOTAL_TOPICS} &bull; {TOTAL_USERS} &bull; {NEWEST_USER}</p>

И закомментируем их:

<!-- <h3>{L_STATISTICS}</h3> -->
<!-- <p>{TOTAL_POSTS} &bull; {TOTAL_TOPICS} &bull; {TOTAL_USERS} &bull; {NEWEST_USER}</p> -->

После изменений в файлах обязательно нужно очистить кэш через панель управления или вручную.

Список пользователей онлайн, легенду модераторов и администраторов, дни рождения можно отключить в панели управления форумом: «Главная» -> «Нагрузка на сервер«.

Вставка рекламы между сообщениями форума phpBB

Вставка рекламы между сообщениями форума phpBB делается элементарно, необходимо всего лишь в файле активной темы viewtopic_body.html найти фрагмент кода:

<!-- END postrow -->

И перед ним вставить следующее:

<!-- IF (postrow.S_ROW_COUNT eq 0) || (S_USER_LOGGED_IN eq 0 && postrow.S_ROW_COUNT eq 4) -->

<table class="tablebg" width="100%" cellspacing="0">
<tr class="row1">

<td class="profile" align="center" valign="middle">
<b class="postauthor">Реклама</b>
</td>
<td class="row3h" width="100%">
</td>
</tr>

<tr class="row1">

<td valign="top" class="profile">
<table cellspacing="4" align="center" width="150">

</table>

<span class="postdetails">

</span>

</td>
<td valign="top" colspan="2">
<table width="100%" cellspacing="5">
<tr>
<td>
<table width="100%" cellspacing="0">
<tr valign="middle">
<td class="gensmall" align="{S_CONTENT_FLOW_END}">

</td>
</tr>
</table>

<div class="postbody">

КОД РЕКЛАМЫ

</div>
</td>
</tr>
</table>
</td>
</tr>

<tr class="row1">

<td align="center" class="profile">

</td>
<td colspan="2"></td>
</tr>

<tr>
<td class="spacer" colspan="3" height="1"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
</tr>
</table>
<!-- ENDIF -->

В итоге зарегистрированным пользователям после первого сообщения будет отображаться реклама, а гостям после первого и пятого.
Порядок можно изменить отредактировав строку (где 0 означает после первого, 4 после пятого):

<!— IF (postrow.S_ROW_COUNT eq 0) || (S_USER_LOGGED_IN eq 0 && postrow.S_ROW_COUNT eq 4) —>

После изменения файла шаблона необходимо очистить кэш через админку либо в директории cache, чтобы не ждать когда он обновится и изменения вступят в силу.