Подключаем CDN хостинг для phpBB

post thumbnail

В нашем прошлом материале мы рассказывали о том, как можно подключить CDN хостинг к форуму Invision Power Board. Пришло время поделиться с вами методом, благодаря которому можно заставить работать в сети CDN другой популярный движок для форума — phpBB. В этой статье в качестве форума для теста мы использовали phpBB версии 3.0.7,  данный метод также будет работать и на более поздних версиях. 

Готового модуля который бы с лёгкостью перевёл работу форума под управлением phpBB как в случае с Invision Power Board нет. Поэтому следует сделать ряд изменений в скриптах вашего движка. Прежде чем вы начнёте вносить изменения в работу скриптов сайта, настоятельно рекомендуем вам сделать резервную копию.

Итак,  приступим.

Forum images

Для начала мы поменяем путь для изображений, которые хранятся на форуме. Необходимо отредактировать файл includes/functions_display.php:

Находим строки

[sourcecode language="php"]
'FORUM_IMAGE' => ($row['forum_image']) ? '</pre>
<img src="' . $phpbb_root_path . $row['forum_image'] . '" alt="' . $user->lang['FORUM_CAT'] . '" />
<pre>' : '',
'FORUM_IMAGE_SRC' => ($row['forum_image']) ? $phpbb_root_path . $row['forum_image'] : '',
[/sourcecode]

И меняем их на

[sourcecode language="php"]
'FORUM_IMAGE' => ($row['forum_image']) ? '</pre>
<img src="http://cdn.вашдомен.com/directory/path/' . $row['forum_image'] . '" alt="' . $user->lang['FORUM_CAT'] . '" />
<pre>' : '',
'FORUM_IMAGE_SRC' => ($row['forum_image']) ? 'http://cdn.вашдомен.com/directory/path/' . $row['forum_image'] : '',
[/sourcecode]

Smiles

Теперь меняем путь к смайликам фашего форума. Для этого отредактируем файл includes/functions_content.php:

[sourcecode language="php"]
/**
* Smiley processing
*/
function smiley_text($text, $force_option = false)
{
global $config, $user, $phpbb_root_path;

if ($force_option || !$config['allow_smilies'] || !$user->optionget('viewsmilies'))
{
return preg_replace('#<!--\-\- s(.*?) \-\---></pre>
<img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $text); } else { $root_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? generate_board_url() . '/' : $phpbb_root_path; return preg_replace('#<!\-\- s(.*?) \-\-><img src=" alt="" />
<pre><!--\-\- s\1 \-\--->#', '
[/sourcecode]

Делаем следующие исправления

[sourcecode language="php"]
/**
* Smiley processing
*/
function smiley_text($text, $force_option = false)
{
global $config, $user, $phpbb_root_path;

if ($force_option || !$config['allow_smilies'] || !$user->optionget('viewsmilies'))
{
return preg_replace('#<!--\-\- s(.*?) \-\---></pre>
<img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $text); } else { $root_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? generate_board_url() . '/' : $phpbb_root_path; return preg_replace('#<!\-\- s(.*?) \-\-><img src=" alt="" />
<pre><!--\-\- s\1 \-\--->#', '
[/sourcecode]

Теперь отредактируем файл includes/functions_posting.php:

[sourcecode language="php"]
'SMILEY_IMG' => $root_path . $config['smilies_path'] . '/' . $row['smiley_url'],
[/sourcecode]

Заменим на

[sourcecode language="php"]
'SMILEY_IMG' => 'http://cdn.вашдомен.com/directory/path/' . $config['smilies_path'] . '/' . $row['smiley_url'],
[/sourcecode]

Ranks

Для изменения пути к изображениям для званий следует отредактировать файл includes/functions_display.php:

[sourcecode language="php"]
$rank_img = (!empty($ranks['special'][$user_rank]['rank_image'])) ? '</pre>
<img title="' . $ranks['special'][$user_rank]['rank_title'] . '" src="' . $phpbb_root_path . $config['ranks_path'] . '/' . $ranks['special'][$user_rank]['rank_image'] . '" alt="' . $ranks['special'][$user_rank]['rank_title'] . '" />
<pre>' : '';
[/sourcecode]

Меняем на

[sourcecode language="php"]
$rank_img = (!empty($ranks['special'][$user_rank]['rank_image'])) ? '</pre>
<img title="' . $ranks['special'][$user_rank]['rank_title'] . '" src="http://cdn.вашдомен.com/directory/path/' . $ranks['special'][$user_rank]['rank_image'] . '" alt="' . $ranks['special'][$user_rank]['rank_title'] . '" />
<pre>' : '';
[/sourcecode]

ImageSet

Сейчас отредактируем файл includes/session.php:

[sourcecode language="php"]
$img_data['src'] = $root_path . 'styles/' . rawurlencode($this->theme['imageset_path']) . '/imageset/' . ($this->img_array[$img]['image_lang'] ? $this->img_array[$img]['image_lang'] .'/' : '') . $this->img_array[$img]['image_filename'];
[/sourcecode]

Поменяем на

[sourcecode language="php"]
$img_data['src'] = 'http://cdn.вашдомен.com/directory/path/' . rawurlencode($this->theme['imageset_path']) . '/imageset/' . ($this->img_array[$img]['image_lang'] ? $this->img_array[$img]['image_lang'] .'/' : '') . $this->img_array[$img]['image_filename'];
[/sourcecode]

Также вы можете изменить путь к вашему CSS, прописав в шаблоне вашего форума полный путь

[sourcecode language="html"]

[/sourcecode]
Telegram Hostpro

Наш телеграм

с важными анонсами, розыгрышами и мемами

Присоединиться

Возможно, вас заинтересует

Мы вынуждены вернуть автосуспенд
Мы вынуждены вернуть автосуспенд

Друзья! В условиях войны у нас возникли дополнительные расходы, связанные с резервированием данных и...

Встречаем обновленную панель управления ISPmanager 6
Встречаем обновленную панель управления ISPmanager 6

Поскольку ISPmanager – русская панель управления, мы обязаны прекратить сотрудничество с ней. Все действующие...

Что такое кластерный хостинг?
Что такое кластерный хостинг?

Обычный хостинг вынуждает вас делиться. Делиться диском, делиться памятью, делиться ресурсами сервера. И всё...