Когда клиенту на сайте понадобился форум, первой мыслью было прикрутить любой, например PHPbb. Почти сразу возникли претензии – сложно, дизайн не сочетается, регистрация на форуме и сайте не общая. Я вздохнул, накрутил ценник и закатал рукава.

Поскольку я человек рациональный (читай – ленивый), писать что-то свое было очень влом. Экспресс – поползновения по гуглам дали предельно краткий список: Vanilla, SMF, MyForum. Первые два – это более или менее распространенные форумные движки с коннекторами для MODx, последний – сниппет, написанный братом-славянином.

Дабы не терять время, не стану расписывать сексуальные похождения с Ваниллой. Буду краток – у нас не сложилось. Возня с SMF была чуть дольше, что-то даже заработало, но хорошее начинание быстро погибло под гнетом зловещих глюков. Учетки пользователей то забывали свои пароли на сайте, то отказывались разлогиниваться на форуме. Сутки, блин, пролетели незаметно. В конце концов, залил в ассеты сниппет myForum – уже без особых надежд и с практически полной уверенностью, что сейчас полезу писать что-то самостоятельно. Подобные предчувствия возникают у меня не часто и, как правило, не подводят. Но тут, гляди-ка, все заработало. Простенький форум, без разделов, без особых выкрутасов, но для моих целей вполне сгодилось. Правда, покамлать с бубном все-же пришлось, о чем сегодня вам и расскажу.

Первое, что нужно запомнить – «внимательно читайте договор». В данном случае это означает – «ознакомьтесь с требованиями сниппета и выполните их». Для нормальной работы сниппет хочет PHx, ЧПУ, WebLoginPE. Ладно, ставим PHx и WebLoginPE. Не работает. Снова беремся за бубен и через десять минут выясняем, что ЧПУ у нас не работают. Поскольку сервер личный, вносим в конфиг Апача изменения и перезапускаем его. Ура, человеко-понятные урлы работают! И форум тоже! Создаем в нем первую тему. Форум… форум опять не пашет. Теперь с новой формулировкой – в SQL таблице для некоего столбца «Status» нет значения по умолчанию. Смотрим запрос. Да, действительно, форумный сниппет создал при первом запуске свои таблицы и пытается что-то туда записать. В SQL-запросе INSERT указано несколько полей, но «Status» среди них нет. Лезть в код сниппета нет никакого желания, так что открываем PhpMyAdmin и добавляем в таблице сниппета полю «Status» значение по умолчанию. Я написал «default_value».

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

Автор статьи: Александр Поляков, lecosson@mail.ru