Легкий и понятный форум на базе vanilla

На хабре уже была статья на тему форумного движка нового поколения Vanilla. В то время эта статья меня очень впечатлила. Я всегда думал о том, чтобы создать свой собственный форум, который будет лишен недостатков. Со временем во мне укреплялась мысль каким должен быть этот форум:
- Легким и понятным
- Визуально приятным, с отстутствием различных нагромождений
- Быстрым
- С возможностью локального сохранения картинок и создания превьюшек — кому хочется лишний раз хранить картинки на хостинге, который завален рекламой и может запросто закрыться, все-таки мы уже в 21 веке.
- В духе веб 2.0 — время идет, технологии меняются. Не хотелось чтобы каждый для редактирования поста перезагружалась страница целиком.
- Обязательно с лентой последних сообщений на главной странице
- Обязательно с возможностью легкого входа через популярные сайты (facebook, google, twitter и т.д.)
Вроде бы список не такой уж и большой, но все форумные движки обладали какой-то не той функциональностью, которую я себе представлял. Vanilla был ближе всего к моему идеалу, т.к. в нем была реализована большая часть из вышеперечисленного. За исключением легкого и понятного (с моей субъективной точки зрения (!)) дизайна и возможности загрузок картинок. Я решил исправить этот недочет и… залип над движком на месяц. Я фикил баги разработчиков движка, помогал людям на официальном форуме, дополнял русский перевод, фиксил разные плагины, javascript'ы, php код для отображения русских символов. В это время вышла обновленная версия движка, я сделал merge и еще немного пофиксил :)
Тем, что у меня получилось я хочу поделиться с общественностью.
Изначально я хотел сделать движок только для себя. Но многие люди на официальном форуме просили поделиться движком и зарелизить тему. К сожалению, зарелизить тему отдельно у меня не получится, т.к. пришлось править core functions самого vanilla. Я все думал сделать отдельный проект, посвященный русскоязычной локализации этого восхитительного движка. Ведь русскоязычные версии существуют, но не отличаются (ИМХО) особой красотой. Сам чёрт на таких форумах ногу сломит (надеюсь, что никого не обидил).
Но в итоге я понял, что на отдельный проект у меня просто банально не хватит времени. Было бы проще предоставить то, что я сделал, со всеми потрохами, на суд хабра-community, а они уже решат что делать дальше. Возможно кто-то возьмет на себя миссию по продолжению рода моей наработки, это было бы полезно для всех. Если бы объединились несколько разработчиков, сделали отдельный сайт, то я бы поддержал их коммитами.
Небольшой экскурс в модифицированный движок и что там есть. Во-первых, это авторизация:

С одной стороны стандартный функционал, но с другой в стандартной комплектации форума в этом коде были проблемы (которые, например, проявлялись на Денвере). С помощью моих ответов на официальном форуме многим пользователям удалось разобраться со странным поведением и этот функционал будет включен в новую версию.
Во-вторых, картинки. Это особенная тема. Существует стандартный плагин для загрузки картинок — FileUpload. Но он был ужасен. Ужас начинался с того, что превьюшками для картинок служили оригинальные картинки, но с установленным height и width в теге img. Далее описывать не буду, я частично переписал этот плагин и сделал в нем две вещи:
- Нормальное создание превьюшек — таких, чтобы было видно, что изображено, не больших и не маленьких
- Чтобы картинки сразу распределялись по ширине экрана. Часто на многих форумах картинки идут в столбик, или заданы фиксированные размеры, например, 2 столбика. На широких мониторах полоска смотрится узко, а а узких мониторах появляется полоса прокрутки. Теперь нужное количество столбцов появляется в зависимости от ширины экрана. Демо-версию можно посмотреть тут, попробуйте уменьшить и раздвинуть окно.

В-третьих, это activity (активность на форуме). В стандартной комплектации движка активность была заточена под английский язык. Разработчики (почему-то) не догадались, что в других языках могут быть более сложные грамматические конструкции. Поэтому пришлось это дело немного упростить. Ну и слегка видоизменить стандартный дизайн:

В-четвертых, это пол пользователя. При регистрации в стандартном движке, конечно, спрашивается пол. Но он нигде не отображается. Я решил, что будет не лишним наличие маркера пола рядом с ником. Пришлось немного поколдовать, чтобы это заработало :)

Конечно, пришлось поработать и с самими категориями. Хотелось сделать их как можно понятнее. В итоге все более или менее встало на свои места.

Из бонусов, которых нет в стандартной версии и которые не видны с первого раза:
- Возможность загрузки картинок при создании/редактировании поста
- Возможность загрузки картинок при создании/редактировании комментария
- русские даты (до merge работало все нормально, сейчас может быть что-то нужно подправить)
- Дизайн разных страниц: профиль, личные сообщения
- Иконки bbcode, добавление javascript-функционала для обработки кнопок
- Функционал quote (цитирование)
- Улучшенная загрузка и обработка аватаров (размер + image quality), по сравнению со стандартным движком
- Улучшенный paging
- Улучшенное форматирование текстов в постах и комментариях, удаление ненужных переносов строк
Ну и возможно что-то еще, обо всем не упомнишь. Надеюсь, что хабраобщественность нормально отнесется к тому, что я представил скриншоты с уже рабочего сайта, т.к. других просто нет. Кстати, сам сайт можно пощупать с разных сторон.
Баги:
Баги есть, куда же без них? К сожалению, vanilla forums был написан без единого юнит-теста, поэтому что-то будет всплывать переодически, но нужно отдать должное, с использованием MVC подхода, который осложняет sql-injection. В общем и целом команда поработала неплохо, но у меня, как у истинного гика, возникло желание все переписать. Возможно, когда-нибудь я сделаю свой форум на .NET'е, тестируемый, хороший и легкий, почти как этот. А если образуется своя коммьюнити с несколькими contributor'ами вокруг уже существующего варианта (с репозиторием, issue tracker'ом и, конечно, форумом), то я буду готов поддерживать по мере сил и этот вариант.
Обновленный движок (zip-архив):
Ссылка на скачивание
(см. файл !recomendations.txt, во всех местах, где необходимо вставить свои значения я поставил строку FIXME).
Официальная версия:
http://vanillaforums.org



комментарии (47)