Статьи

Первый взгляд на Flarum — Форумы следующего поколения стали проще

Flarum — это решение для форумов, которое в настоящее время находится в публичной бета-версии и находится в стадии активной разработки. Сегодня мы рассмотрим его, настроим на виртуальной машине Homestead Improved Vagrant и посмотрим на конфигурацию и функции, которые предлагает Flarum. Затем мы сравним его с некоторыми другими платформами форумов, чтобы увидеть, как оно складывается с первого взгляда.

Flarum Logo

Настройка среды

Для нашей среды мы будем использовать VMware Homestead Improved Vagrant. Более подробную информацию о настройке можно найти в этом кратком совете по настройке и запуску Homestead Improved . Если будет использоваться среда разработки другого типа, мы можем пропустить этот шаг, в противном случае, прежде чем продолжить , следуйте приведенному выше руководству по настройке HI .

Для целей этой статьи используемая папка — это flarum а имя приложения (и хост, настроенный в /etc/hosts ) — flarum.app . В нашем Homestead.yaml должна быть запись flarum.app указывающая на каталог home/vagrant/Code .

Теперь, после vagrant up мы сможем получить доступ к нашему приложению в нашем браузере через http://flarum.app .

Настройка Flarum

Мы будем неукоснительно следовать руководству по установке Flarum .

Во-первых, на нашем хост-компьютере мы загружаем последнюю версию Flarum (эта статья была написана с использованием выпуска 0.1.0-beta.2 ). Затем мы распаковываем содержимое в наш каталог flarum .

Конфигурация веб-сервера

Затем мы vagrant ssh в нашу Homestead VM и редактируем наш файл конфигурации nginx.

 sudo nano / etc / nginx / sites - available / flarum . app 

Нам нужно будет добавить следующие строки (их можно добавить чуть выше блока location ~ \.php${} ):

  location / api {  try_files $uri $uri /   / api . php ? $query_string ;   } location / admin {  try_files $uri $uri /   / admin . php ? $query_string ;   } location / flarum { deny all ; 
         return   404 ; 
     } 

Затем мы перезапустим nginx, чтобы убедиться, что наши изменения сохранены, прежде чем мы начнем:

 sudo service nginx restart 

Конфигурация базы данных

Пока мы подключены к нашей машине Vagrant, давайте продолжим и настроим базу данных Flarum. При создании нового пользователя мы выберем и установим пароль для приложения Flarum, чтобы использовать его для доступа к MySQL.

 mysql - u homestead - psecret 
  CREATE DATABASE flarum ; CREATE USER 'flarum' @ 'localhost'  IDENTIFIED BY 'password' ; GRANT ALL PRIVILEGES ON flarum .*  TO 'flarum' @ 'localhost' ; FLUSH PRIVILEGES ; 

Затем мы можем выйти из командной строки MySQL ( CTRL+C ). Теперь на главном компьютере мы открываем наш браузер и вводим flarum.app/ . Мы должны увидеть экран установки Flarum.

Установка Flarum

Мы будем называть наш тестовый форум «Flarum». Введите информацию о соединении MySQL. Наш пользователь был flarum а наш пароль был password .

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

Примечание . На момент написания этой статьи существует известная ошибка в этом процессе. Если Flarum не принимает имя администратора (если оно недействительно), оно молча завершится ошибкой. Имена пользователей должны содержать только буквы, цифры, тире и подчеркивания.

Если все прошло хорошо, мы будем на главном экране форума. Поздравляем — наш форум теперь функционирует!

Начальные настройки

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

основы

Flarum Administration - Basics

В разделе «Основы» мы можем изменить баннер, который в настоящее время сообщает нам, что Flarum является бета-продуктом, и, конечно, стандартными заголовком, описанием и т. Д.

права доступа

Flarum Administration - Permissions

В разделе Разрешения у нас есть несколько основных инструментов модерации, таких как:

  • Просмотр обсуждений
  • Signups
  • Ответ
  • Редактирование сообщений
  • Симпатия
  • Действия модерации

Все они могут быть применены к группам пользователей, и могут быть созданы новые группы, что позволяет нам иметь несколько уровней доверия среди наших пользователей.

Внешность

Flarum Administration - Appearance

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

Flarum Administration - Custom CSS

расширения

Flarum Administration - Extensions

На вкладке Расширения показаны все установленные на данный момент расширения. Мы можем щелкнуть значок пунктирного меню рядом с каждым (при наведении на него), чтобы отключить, включить или удалить. В будущем мы сможем использовать кнопку «добавить расширение», но сейчас нам придется вручную устанавливать расширения, помещая их в нашу папку extensions , если мы найдем (или создадим) какие-либо сторонние extensions .

Теги

Flarum Administration - Tags

Последнее меню, Теги, позволяет нам создавать теги, которые можно использовать в обсуждениях. Flarum использует двухуровневую иерархию тегов — основной и дополнительный теги. На данный момент создается впечатление, что диалог создания позволяет создавать только вторичные теги. Мы можем перетащить их вверх и поместить их в качестве дочерних элементов основного тега или оставить их в списке дополнительных тегов для отображения вместе с основными тегами в списке тегов. Это немного сбивает с толку, надеюсь, будет прояснено позже в процессе разработки.

Темы и Расширения

Theming — смешанная сумка с Flarum. В разделе «Внешний вид» панели администратора есть простой способ добавить одноразовые модификации стилей. Flarum использует CSS-препроцессор LESS , который по ряду причин был выбран разработчиками из-за Sass и других опций.

Пример настройки

Вот наш flarum.app с темным режимом, flarum.app через вкладку «Внешний вид».

Flarum App Dark Mode

Мы сделаем быструю настройку, чтобы продемонстрировать, как просто внести небольшие стилистические изменения в тему.

Если мы перейдем на вкладку «Внешний вид» в меню администрирования и нажмем «Изменить пользовательский CSS», мы сможем ввести собственный пользовательский CSS или LESS.

Нашей целью для этой простой настройки будет изменение цвета кнопки «Начать обсуждение». Мы хотели бы сделать его красным, чтобы сделать его более привлекательным для нового посетителя. Итак, после того, как мы определили класс, который мы хотим нацелить на IndexPage-newDiscussion , мы можем пойти дальше и просто написать одну строку CSS:

 . IndexPage - newDiscussion { background :# ff0000 ;} 

И это все, что нужно сделать. Если мы посмотрим на нашу домашнюю страницу еще раз, мы увидим наши изменения на месте:

Flarum App Dark Mode Altered

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

расширения

Если у нас есть изменения в структуре, функциональности или внешнем виде экземпляра для выполнения, выходящих за рамки, предлагаемые меню администрирования или расширениями по умолчанию, мы можем создать собственное расширение. Расширения будут неотъемлемой частью Flarum по мере роста сообщества, особенно учитывая легкость, с которой они могут быть созданы. Расширение скелета может быть сгенерировано как первый шаг для создания расширения . Тематическая часть расширений более подробно описана на странице документации по темам . Что касается тем, Flarum также предоставляет список переменных LESS, используемых на сайте, в файле variables.less , и они используют соглашение об именах BEM для классов CSS.

Основные характеристики

  • Бесконечная прокрутка — это похоже на Discourse, еще одну современную платформу форумов. У пользователей, кажется, есть очень полярный ответ на это — мы любим это, или мы ненавидим это. Исторически, программное обеспечение форумов ограничивает количество тем или ответов внутри темы определенной суммой на «страницу», что требует от нас загрузки новой страницы для просмотра большего количества. Во Flarum зритель беседы может просто прокручивать беседу, загружая больше ответов по мере их продвижения, до конца — как бы долго это ни было.
  • Touch Friendly — это особенность, которая делает Flarum действительно выдающимся. С самого начала он был оптимизирован под сенсорный экран с поддержкой жестов (проведите пальцем вправо, чтобы отметить обсуждение как «прочитанное», или влево, чтобы получить больше параметров). Анимация не слишком громоздкая, и страницы не слишком заметно загружаются на мобильные устройства.
  • URL-адреса — форматы URL Flarum интуитивно понятны. URL тега ‘General’ будет <app base url>/t/general . URL нашего первого обсуждения под названием «test», помеченный как «общий», будет <app base url>/d/1-test . Кроме того, к сообщению добавляется номер сообщения, чтобы указать, какое сообщение в обсуждении читается.
  • Редактор — Flarum использует «плавающий редактор», который отображается в виде всплывающего окна, прикрепленного внизу страницы. Мы можем свободно перемещаться по Фларуму, составляя наш ответ на обсуждение, что позволяет нам смотреть на другие обсуждения по мере необходимости, чтобы составить наш ответ. Эта функция также есть в Discourse, и она очень удобна. Редактор Flarum поддерживает MarkDown, BBCode и Emoji и может быть расширен для поддержки большего.
  • Модерация . Настраиваемые группы модерации и разрешения являются определенным благом для платформы. Даже на стадии бета-тестирования уже уделяется модерации, что, по мнению любого администратора сообщества, является важной частью работы форумов.

Сравнение с другими платформами

В целом, Flarum выглядит так, словно при выпуске он вполне может сравниться с современными платформами форумов, такими как Discourse. Discourse или NodeBB вполне могут быть единственными реальными конкурентами на одной арене. В то время как существуют другие современные платформы для форумов, такие как vBulletin 5 или Vanilla, Flarum чувствует себя так, как будто его выделяют немногие. В некоторых случаях он может сводиться к языковым предпочтениям: Discourse — это платформа Ruby on Rails, а NodeBB — платформа Node.js.

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

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

Ресурсы являются еще одной большой проблемой при сравнении платформ, и Flarum выигрывает конкурс с большинством других современных платформ (таких как Discourse). Он может работать на хостах с более низкими характеристиками и чувствует себя более быстрыми. Однако это обходится дорого, поскольку мы вынуждены учитывать, что более (относительно) зрелые платформы, такие как Discourse, могут иметь большую стабильность и уже иметь большие сообщества для их поддержки и расширения. Flarum еще даже не готов к производству, поэтому время покажет, уменьшается ли это преимущество или затмевается.

Выводы

Выбор Flarum в качестве платформы для форумов может зависеть от множества вещей. Какой язык мы предпочитаем? Ядро PHP делает Flarum отличным выбором для разработчиков PHP и тех, кто работает с уже существующими приложениями PHP. План выпуска и прогресс Flarum также могут нам многое рассказать. Мы можем наблюдать за ходом разработки, отзывами пользователей и функциями, добавленными в Flarum. По мере развития системы расширений и опций тематирования мы сможем оценить, насколько реально будет настраиваться эта платформа — и будет ли за ней сильная пользовательская база или она не будет работать. В любом случае, он обязательно должен оставаться на нашем радаре для будущих проектов!