Яндекс.Метрика

    Реклама

    phpBB Constructor — своя сборка phpBB для каждого

    Приветствую хабрааудиторию!

    Я хотел бы познакомить вас с плодом одного из своих самых давних увлечений — конструктором сборок phpBB, над которым я трудился последнее время. Суть проекта проста: дать любому человеку возможность получить сборку phpBB именно с таким функционалом, с каким ему нужно, да при том за максимально короткое время.

    Букв получилось многовато, поэтому для нетерпеливых даю краткое описание частей, чтобы их можно было с чистой совестью пропускать:
    1. Исторический бекграунд — откуда и почему появился phpBB Constructor.
    2. Можно сделать лучше — что же изменилось с его появлением.
    3. phpBB Constructor vs AutoMod and Hands — для критично настроенных.
    4. Под капотом — немного интимных подробностей из недр скриптов.
    5. Feedback — 4 способа изменить мир к лучшему.
    6. Напоследок — скринкаст для нетерпеливых.

    Исторический бекграунд


    Когда-то давно, когда phpBB2 был на пике своей популярности, немалую известность имели сборки на основе phpBB от умельцев, включавшие в себя вагон и тележку модов на все случаи жизни. Ярким примером может служить проект phpBB Plus, включавший в себя, если не ошибаюсь, около полусотни модов разной сложности. Для многих это было удобно, поскольку не требовалось тратить время на самостоятельную установку массы модов разной степени необходимости. Тем более, что процесс этот был нудным и трудоемким.

    Но и сборки не были панацеей, поскольку нужды у всех разные, и все равно чего-то не хватало, а что-то было лишнее. Не говоря уже о нагрузке на сервер от такого монстра. Так что со временем пользователи сборок накапливали достаточный опыт и пускались в самостоятельную модификацию своих форумов и игр с огнем тогдашним AutoMod'ом.

    С приходом phpBB3 командой разработчиков была проделана большая работа по упрощению установки модов для конечных пользователей, появился более совершенный во многих отношениях стандарт MODX, появился новый AutoMod, поддерживающий MODX. Так же в ядро движка попало большинство жизненно важных функций, который раньше решались с помощью монструозных модов (вспомним жутковатый Attachment Mod). Это привело к тому, что сборки на основе phpBB3 не приобрели большой популярности, хотя мне известно несколько команд, которые занимаются разработкой и поддержкой сборок и по сей день.

    Но можно сделать лучше!


    Эта мысль не покидала меня уже давно, а года полтора назад стала медленно воплощаться в коде. Благодаря усилиям членов phpBB Mod Team, большинство модов неплохо ставятся в автоматическом режиме. Следовательно, можно автоматизировать процесс создания сборки и уменьшить затраты времени на ее поддержание в актуальном состоянии. Но если это можно автоматизировать, то почему бы не предоставить пользователю выбирать, что он хочет видеть в сборке, а что — нет?

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

    phpBB Constructor vs. AutoMod


    AutoMod — прекрасный инструмент от Mod Team, способный справиться со многими модами в автоматическом режиме, но все же:
    • Все, что есть в конструкторе — протестировано на совместимость и нормальную работу, а в случае чего мы готовы прийти на помощь.
    • Сделав сборку единожды, вы можете устанавливать ее сколько угодно раз.
    • Вам не нужно искать нужные вам моды и последние версии.

    Но, справедливости ради надо сказать, вам за это придется платить ограничением свободы выбора модов.

    phpBB Constructor vs. Hands


    • Прежде всего, одно другому не мешает :-) Сборка, созданная конструктором — хорошая отправная точка для самостоятельной модификации.
    • Руками гораздо гораздо дольше.
    • И опять-таки вам не нужно самому обшаривать интернет в поисках нужных модов.

    С другой стороны, паранойя намекает, что руки — это единственный способ быть уверенным, что в вашей сборке нет ничего лишнего ;-)

    Под капотом


    Учитывая технические наклонности аудитории Хабра, спешу перейти к технической стороне вопроса.

    Сердцем phpBB Constructor'a является библиотека MODX Library, которую я посчитал нужным опубликовать под лицензией BSD. Именно на ее долю приходится 80% рутинной работы по установке модов: парсинг инструкции по установке, редактирование файлов, регистрация установочных скриптов, поставляемых с модами и т. п. Именно с нее началась работа над конструктором, и на нее приходится большая часть вложенных усилий.

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

    Третьим компонентом является не очень большой патч для установщика phpBB, который отвечает за запуск установочных скриптов модов и прилагающихся к ним SQL-запросов. Пока что у меня не дошли руки до его публикации, но это вопрос времени, при том не очень большого.

    ToDo


    Это, пожалуй, самая интригующая часть (для меня самого особенно :-), поскольку сделать надо еще многое:
    1. Предоставить возможность пользователям хранить профили своих сборок и собирать для них пакеты автообновления.
    2. Формы для предложения новых модов и сообщений о вышедших обновлениях на случай, если мы чего-нибудь проглядим.
    3. Категоризация модов. С ростом их числа она становится просто необходима.
    4. Генерация инструкций для нестандартных стилей и даже автоматические скрипты для их установки.
    5. Featured mods для упрощения выбора необходимого.


    Feedback


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

    Ну и напоследок


    Я записал небольшой скринкаст про использование конструктора, думаю кому-нибудь он будет любопытен: