Подключаем CDN хостинг для phpBB
В нашем прошлом материале мы рассказывали о том, как можно подключить 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]
Возможно, вас заинтересует
Друзья! В условиях войны у нас возникли дополнительные расходы, связанные с резервированием данных и...
Поскольку ISPmanager – русская панель управления, мы обязаны прекратить сотрудничество с ней. Все действующие...
Обычный хостинг вынуждает вас делиться. Делиться диском, делиться памятью, делиться ресурсами сервера. И всё...
Наш телеграм
с важными анонсами, розыгрышами и мемами
Присоединиться