bbPress: интересные особенности

Автор: Алексей Федорчук

В предыдущей заметке я написал, что в bbPress есть всё необходимое — и ничего лишнего. Вторая часть этого заявления бесспорна: ни один пурист не отыщет в штатной поставке этого движка ни малейших архитектурных излишеств.
А вот первая часть может вызвать вполне обоснованные сомнения — особенно с учётом того, что представления о необходимом у всех людей разные. Не говоря уже о тех, кто, подобно Раневской, готов прожить без необходимого, но ни в коем случае не отказываться от роскошного. Так что описывать штатные возможности я не буду — остановлюсь только на тех особенностях движка, которые показались мне интересными или не очень распространёнными. Не обойду я вниманием и те вещи, которых, на мой взгляд, в «штатно уложенном рюкзаке» не хватает.

При установке движка автоматически создаётся пользователь с идентификатором 1 и несколько необычной ролью, называемой Master Key: именно он является носителем всей полноты прав управления сайтом. Права пользователя с ролью администратора существенно урезаны: он имеет возможность управления пользователями, не не имеет доступа к настройкам сайта. Что же до модератора, то у него нет и прав на управление пользователями — только возможность редактировать, закрывать и удалять топики. Хотя, с другой стороны, он в своих действиях не привязан к какому-либо разделу.

Далее предполагается, что все действия по управлению сайтом выполняются тем, кто выступает в амплуа мастера.

Как можно видеть из скриншота к предыдущей заметке, при заходе на форум, работающий на движке bbPress, в верхней части экрана, ниже «шапки», но выше списка категорий и разделов, можно видеть список последних по времени создания топиков. По умолчанию таких тем пять, но это число легко изменить. Для чего нужно перейти в административный режим, зайти в меню Setting и выбрать там пункт Reading, после чего в поле Items per page установить желаемое значение.

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

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

Пользователь имеет возможность редактирования собственных постов. Однако период времени на это у него ограничен — по умолчанию 60 минутами. Мастер может изменить этот параметр в любую сторону — через меню Setting -> Writing в поле Lock post editing after. И тут следует исходить из того, насколько участники форума склонны злоупотреблять <em>остроумием на лестнице</em>.

Пользователь может только редактировать свои посты — возможности удаления оных у него нет, этим правом обладают модераторы и вышестоящие товарищи. Последние могут также пометить пост как спам — после чего тот попадает на растерзание Akismet’у, плагину, входящему в штатный комплект движка, о котором я подробнее скажу в следующей заметке.

Очень удобно в bbPress управление аккаунтами. Каждому новозарегистрированному пользователю предоставляется роль участника (Member). Мастер и админ могут дать ему более высокое амплуа — вплоть до уравнения с собой. А могут, напротив, деактивировать (Inactive) аккаунт, то есть перевести пользователя в режим read only, или вообще забанить (Blocked) его, с запретом авторизации. Есть у них и возможность полного удаления аккаунта.

Модераторы, как уже говорилось, к управлению пользователями не допускаются.

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

Таковы базовые возможности (и не возможности) движка bbPress. Достаточно ли их? Каждый решает за себя. Ну а о дополнительных функциях, обеспечиваемых внешними плагинами, я буду рассказывать позднее, по мере ознакомления с ними.