phpBB Teddi Bear

Вы стали счастливым администратором форума phpBB или любого другого аналога? Спешу вам сообщить, что поводов для радости мало, т.к. практически все проекты с открытым кодом имеют ряд недостатков, важнейшим из которых является большой размер генерируемого кода. Это не особенно заметно для небольших проектов, но ставновится катострофически важным, если проект (в т.ч. форум) пользуется популярность. Таким образом, задача оптимизации форума phpBB является очень востребованной, но к сожалению в большинстве случаев никак не решается в силу разных причин, в т.ч. из-за плохой освещенности этого вопроса и слабого уровеня подготовки основной массы администраторов для ее самостоятельного решения.

Процесс оптимизации заключается в оптимизации скриптов и шаблонов. Первый позволяет существенно снизить нагрузку на MySQL (или другую используемую СУБД), а воторой уменьшить размер html-кода и тем самым значительно снизить требования по трафику. В этой статье рассмотрим несколько простых в использовании приемов оптимизации шаблонов форума phpBB.

Если вы думаете, что оптимизация вам не нужна, то просто вспомните, что чаще всего на форуме бывает администратор, т.е. вы заботитесь в первую очередь о себе.

Шаблоны располагаются в каталоге forumtemplatessubSilver или аналогичном каталоге другого скина. Рассмотрим методы оптимизации.

Вынесение стилей в css файл — дает максимальный эффект. Если вы посмотрите html код страниц, который формируется по умолчанию, то заметите, что в каждой странице есть огромный разде междру тегами <style> </style>. Он занимает около 8кб, которые загружаются браузером пользователя каждый раз! Что забавно, рекомендация создания внешнего CSS файла содержится прямо здесь. Процесс очень простой:

  • открываем файл overall_header.tpl
  • удаляем в нем все между <style type=»text/css»> и </style>;
  • строку
    <!— link rel=»stylesheet» href=»templates/subSilver/{T_HEAD_STYLESHEET}» type=»text/css» —>
    заменяем на
    <link rel=»stylesheet» href=»templates/subSilver/{T_HEAD_STYLESHEET}» type=»text/css»>

Вот и все изменения, а в результат вы заметите сразу же, особенно на мелких страницах. Дело в том, что CSS файл кешируется на машине пользователя и будет загружаться только один раз. Недостаток только один — при использовании CSS файла нельзя использовать встроенный в административную панель редактор стилей. Поэтому рекомендуется вначале сделать нужные настройки (чаще всего стандартный стиль не меняют), а потом скопировать полученный код в этот CSS файл (subSilver.css).

Не забудьте провести аналогичные изменения для упрощенного дизайна simple_header.tpl и для панели администратора adminpage_header.tpl, в которой строка примет немного другую форму:
<link rel=»stylesheet» href=»../templates/subSilver/{T_HEAD_STYLESHEET}» type=»text/css»>
Отличие в пути к CSS файлу, т.к. шаблоны администратора, лежат в отдельном каталоге.

Это изменение не затрудняет последующего обновления скриптов форума, в отличии от последующих.

phpBB smiles
Удаление пустого места и комментариев в шаблонах — очень простой и эффективный прием. Посмотрите содержимое шаблонов (файла *.tpl), в некоторых случаях отступы слева и пустые строки, которые никак не выводятся на экран, занимают более 50% места! И это все вынуждены загружать ваши пользователи и вы сами. Естественно вручную удалять их очень долго, можно написать маленькую программу или воспользоваться редактором, имеющим такую возможность. Для этого я применяю в Far Manager сдвиг текста с помощью комбинации клавиш Alt +U (влево) Alt + I (вправо). За 10 минут, можно ужать все шаблоны.

В шаблнах встречаются html и JavaScript комментарии, которые совершенно не нужны для работы, но съдают ваш трафик. Их можно смело удалять, только не трогайте комментарии вида <!— BEGIN avatar_row —>, они используются для разметки шаблонов и без не будет создано корректного кода.

Для ключевых шаблонов, можно вручную уплотнить код, ведь дополнительная экономия в 200-400 байт, на странице, которая загружается тысячи раз в день даст ощутимый эффект.

Оптимизация языкового файла — очень проста и полеза, так же это хороший повод исправить чужие ошибки и опечатки. Файлы шаблонов расположены в каталоге forumlanguagelang_russian. Смысл оптимизации очень прост замена строк их более короткими синонимами. Зачем это нужно? Давайте рассмотрим простой пример — если в фруме не сообщений, то выводится строка «нет сообщений», можно заменить ее на понятный всем символ тире. Эта ситуация очень часто встречается, на каждой такой замене разница составит 13-1=12 байт. Другой пример, замена текстов вида «Отправить Email пользователю» или «Отправить личное сообщение участнику». Эти сообщения выводятся под каждым постом и не кешируются, без потери смысла и наглядности их можно ужать. Суммарный эффект таких замен потрясающий — до нескольких килобайт на страницу, особенно в популярных разделах!

Рекомендую просмотреть длинные сообщения, которые воводятся, для информирования пользователей при написании поста, удалении и т.п. Как правило, они все черезмерно избыточны, т.к. переводчик часто переводил «слово в слово». Естественно полная правка текста утомительна, поэтому чаще всего стоит ограничиться оптимизацией наиболее популярных текстов и сообщений, на них эффект будет наиболее заметен.

Оптимизация административной панели — это в первую очередь съэкономит время и нервы администратора, хотя похожий прием можно использовать и для оптимизаии отдельных форм пользователя. Вот те приемы, которые я использовал у себя:

  • Вверху в панели навигации стоит графическая картинка, ее естественно надо убрать (см. index_navigate.tpl).
  • В панели навигации очень неудобны скроллбары, чтобы убрать горизонтальный нужно просто сократить надписи, у меня оказалось достаточным заменить слово «Администрирование» на «Админка». Чтобы убрать вертикальный в index_navigate.tpl, установите cellpadding=»0″.
  • В левой части постоянно даются развернутые описания, выбранного раздела, которые нужно прочитать только один раз. Можно убрать их в языковом файле или удалить ссылки на них в шаблонах. Работать после этого станет значительно удобнее.
  • Обратите внимание на разные списки, стоит поправить текстовые строки на более короткие, например, для управления форумами вместо «передвинуть вверх», просто слово «вверх». В результате все списки станут более компактными и опять же съэкономите трафик.

Я привел только несколько примеров настройки панели администрирования. Советую все подстроить под вас для максимального удобства в работе.

Графика форумов phpBB неоптимизирована по размеру, поэтому стоит пропустить ее через программы типа Image Optimizer или Photoshop (инструмент Save for Web). Более подробно их возможности будут описаны в последующих статьях. Хотя графика и кешируется, не следует держать лишнего.

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

Итак, мы рассмотрели несколько приемов оптимизации шаблонов форума phpBB. Надеюсь вы воспользуетесь этими советами и для других скриптов.

PhpBB logo

VIA Брундасов С.М.