Сказ о том как я личный форум под вордпресс поднимал
12.11.2012 8 Автор PhantomНачалось всё с того что я решил реализовать давнюю задумку и поднять онлайн-радиостанцию с тематическими плейлистами, отбивками, го и гейшами. К этому всему логичным дополнением смотрелся бы форум, за который я и взялся, ну а радио… как выяснилось запуск пары треков на вещание занимает пятнадцать минут ленивого копапаста конфигов, а для того что я хочу нужно решить горку разнообразных технических заморочек. Так что радио работает в бета-версии, а вот форум вполне себе RC.
Все свистелки и перделки прикручивались исходя из парадигмы «всё в рамках вордпресса, но без грязных хаков движка». Это конечно не панацея от дальнейшего геморроя, но существенно снижает трудозатраты при обновлении.
Оглавление
ToggleУстановка форума
Муки выбора были недолгими. К вордпрессу можно прикрутить phpbb3 (методом противоестественного скрещивания, впрочем сей форум со всеми движками так себя ведёт), можно взять simplepress (штука хорошая, но обновляется как-то ни шатко ни валко, а баги имеет), а можно до упора простой bbpress, который начиная с ветки 2 нормально и полностью интегрируется в движок. Последний и взял.
Установка, настройка — всё для детей. Кто ниасилил, тот лох. Кривую русификацию ищите в яндексе, она там есть. Единственный нюанс — НЕ включайте akismet, он подло отправляет посты в /dev/ass и отслеживается это с самого форума, т.е. можно пропустить.
Допиливание внешнего вида
Дальше начались неприятности, а именно с дизайном. Надежды на то что форум влезет в мои три колонки особой не было, но открывшаяся мне картина откровенно удручала. Прикинув что под другой проект я находил двухколоночную тему в той же стилистике что и моя решил вкатить под форум именно её.
Не всё так просто. Если joomla и drupal умеют использовать разные шаблоны для разных кусков «искаропки», т.е. это реализовано в базовом функционале, то wordpress на такое неспособен. Решения как всегда следует искать в плагинах и они там есть, но подойдут не все. Например, некоторые позволяют привязывать оформление к страницам или же постам, но bbpress ни тем ни тем не является, т.е. требуется выбирать на основе адреса…
Решение звучит как jonradio Multiple Themes — плагин меняет тему основываясь на url. АХТУНГ! Версия 3.3.1 не пашет, юзайте версию 3.2. К сожалению этот плагин не умеет раскладывать виджеты по разному для разных тем, автор пишет что собирается ввести этот функционал, а на данный момент предлагает весьма черезжопное решение на основе стороннего плагина. Оно работает, но понятно как, поэтому идём дальше…
Widget Context — плагин настраивающий видимость виджетов относительно адреса. Позволяет показывать на нужных, не показывать на не нужных, а также регулировать на основе всей остальной таксономии. Как говорится «то что доктор прописал»! Рекомендую безотносительно форумов и тем.
Дальше, взглянув на своё творение, я ужаснулся понял что надо что-то менять:) Ну да, двухколоночная тема в одноколоночную явно не влезет, да и не все виджеты там нужны, а тех что нужны у меня не было.
Для начала я выкинул всю навигацию на основе таксономии, т.е. облако тегов, список категорий, архив по месяцам и календурь. Вместо этого воткнул плагин Collapsing Archives, который умеет раскрывающиеся списки. АХТУНГ! Есть небольшой баг с выводом картинок, автор немного прогнал и ссылки ведут не туда. Создаём папку collapsArch и в неё копируем img из collapsing-archives. Можно залезть в код, но чёрт его знает пофиксят ли это в следующей версии.
Для категорий есть примерно такой же плагин под названием Collapsing Categories. Настройка аналогична предыдущему, кто ниасилил — …
В настройках обоих двух рекомендую врубить режим аккордеона.
Разумеется на этом ничего не заканчивается, поскольку полного контроля за дополнительным шаблоном у нас нет, то менюшки придётся делать ручками, в этом месте я применял костыли вида: is_page(), is_category(), $_SERVER[‘REQUEST_URI’], strstr, strpos и прочие некошерные хаки темы. Конкретных рецептов не существует, всё зависит от вашей реализации…
После вышеописанных манипуляций форумная часть блога перестала выглядеть как вырвиглазный пиздец, однако сам форум по прежнему представлял из себя унылое говно. Фиксим!
Допиливание форума
Первое что надо сделать это скрестить общий поиск с форумом, для этого служит плагин Search bbPress. Почему это не работает по дефолту для меня загадка великая есть.
Количество просмотров темы реализуется через bbP Topic Views. Ставьте без раздумий.
Дальше идут вложения. Реализуется через GD bbPress Attachments, настройки просты, единственный минус — нет пропорциональных миниатюр, зато умеет лайтбокс (админы пхпбб в очередной раз злобно матюкнулись).
Кое-что я решить так и не смог…
Форматирование текста реализуется через разрешение пользователю некоторых хтмл тегов или/и через bbcode. С тегами всё понятно, удобно отрисовывать их можно через подключение обычного tinymce, но… засада-подстава, чувак. У меня стоит TinyMCE Advanced, который очень удобен для админа, но может непоправимо покорёжить мозг юзверю. К тому же выводить километры нерабочих кнопок — попахивает садизмом не в сексуальном, а в ментальном смысле. С кодами проще, есть плагин GD bbPress Tools, который реализует всё форматирование, но… пользователь должен вводить ручками, никаких вам удобных кнопок. Пока остановился на таком варианте, буду думать. Если чо — синтаксис интуитивно понятный.
Пока не смог победить напрочь ебанутый формат отображения даты и времени. По башке бы надавать разрабам за невозможность указать вручную. Плагинов, чтобы пофиксить эту муть, не нашёл, ручками ковырять код не хочу, один фиг слетит при следующем апдейте ббпресс.
bbPress Topics for Posts — ещё одна полезная приблуда, позволяет цеплять темы с форума к постам в блоге. По непонятным причинам отказывается работать, прозреваю конфликт плагинов, но что с чем так и не понял.
Желающие помочь приветствуются всеми конечностями, а также финансовыми бонусами.
Доброе время суток. )
Я, вот, тоже доковырялась до ббпресса. И тоже озадачилась шоткодами в постах. ЖД плаг я поставила, но заставлять милых юзеров вписывать шоткоды руками – это, имхо, садизм. Нашла так себе, конечно, решение, но работает: скопировала дефолтную тему форума в папку со своей действующей темой, обозвала (как прописали доктора с оф сайта) bbpress, нашла там в папке js файлик editor.js и благополучно дописала недостающую мне кнопку по аналогии с кнопкой CODE (мне всего-то спойлер был нужен). А ещё есть хак для functions.php темы для включения визуального редактора. Собственно, ссыль на хак: http://codex.bbpress.org/enable-visual-editor/ Это добро, естественно, можно заключить в конструкцию: if ( is_user_logged_in() ) { } (но, уверена, Вы это и без меня знаете).
Сейчас ищу русификацию для GD bbpress, отчего и к Вам заглянула. :) Если знаете, где можно такое богатство нарыть, то буду признательна, если поделитесь. :)
А ещё есть небольшая проблемка со смайлами. Пользую для них монулизу, но та доставляет их до поста только, если находишься в визуальном редакторе. Вы, случаем, не в курсе, как заставить их вставляться в режиме текстового редактора?
Честно говоря не в курсе. Вся конструкция описанная выше неторопливо допиливалась ещё несколько месяцев, ну и после очередного апдейта всего блога… вообщем пришлось перегружать виртуалку и быстро быстро отключать плагины.
Сейчас уже не вспомню в чём был косяк, но форум умудрился конфликтовать с какой-то нужной мне на тот момент мелочью (нужность мелочи отпала после какого-то апдейта движка, но форум включать уже не стал).
Ну и вообще, потыркался я, потыркался и пришёл к выводу, что фигня это всё. форум надо брать нормальный, отдельный, после чего делать интеграцию пользователей.
Надо то надо, да я почитала, фигвам, а не интеграция, сплошные косяки и головняк. Поставила этот, смотрю на него и прям сердце кровью обливается, до того он убогий.
SimplePress менее убогий и вроде его даже допилили до вменяемого состояния. Правда админка там писана инопланетянами.
Там, вроде, функционала меньше. Или я ошибаюсь? Кстати, от GD bbpress я отказалась, там много кривизны, например, шоткоды в подписи, после сохранения изменений в профиле, конвертируются в html код. Я нахожу это тупостью.
Ошибаетесь, по функционалу он уже близок к phpbb3, ну и где-то на уровне или даже переплюнул phpbb2. Насколько я помню с небольшими плясками можно настроить на корректную интеграцию с looginza.
Впрочем у него иногда возникают проблемы с обновлением, возможно это связано с конфликтами плагинов, возможно с конфликтами рук и извилин разработчиков. Чинибельно конечно, но мне дважды приходилось разбираться со структурой БД.
На тот момент я пользовался дебетовой картой банка Связной, в личном кабинете интернет-банка я мог без проблем пополнять счёт своей карты путём перевода средств с этой виртуальной карты. В общем, по какой-то непонятной мне причине, я решил вывести деньги не на MasterCard, а завести себе Visa от банка Русский Стандарт. Сам банк никогда не вызывал уважения, но, почему-то выбрал именно эту карту.