Только что перенёс сайт Xenforo на Discourse

Всем привет.

Я не новичок в Discourse. Я перенёс свой другой сайт, посвящённый интересам к автомобилям (exiges.com), с phpBB на Discourse.

Я был в восторге от того, как стабильно команда Discourse выпускает обновления, поэтому решился и перенёс свой форум на Xenforo с 750 000 сообщений и 20 000 участников на Discourse.

Благодаря удаче, здравому смыслу и помощи ИИ я написал скрипт для импорта данных. У меня самохостинговая система на AllHost.IO, 8 ядер и 8 ГБ ОЗУ, и на перенос ушло 37 часов.

Пост со скриптом для миграции находится здесь: Migrate a XenForo forum to Discourse - #141 by Andrew_Bond

Я старался сделать так, чтобы сайт выглядел похоже на тот, что был на Xenforo, потому что, честно говоря, он просто хорошо работал. Пока я очень доволен результатом:

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

Нам нужно немного подкрутить настройки яркости, но пока всё работает.

Я пришёл сюда не столько, чтобы хвастаться своим(и) сайтом(ами), сколько чтобы поблагодарить разработчиков. Я был фанатом Xenforo до мозга костей, но, на мой взгляд, эта платформа сделала администрирование простым, а частые обновления просто великолепны.

17 лайков

Спасибо за такой замечательный отзыв! Есть ли какие-то функции Xenforo, которых вам не хватает?

4 лайка

Единственное, что я вижу и что может помочь нашим пользователям, — это изменения в интерфейсе для цитирования.

В Discourse мы просто отвечаем. Ответ в Discourse — это ответ без цитирования, но я понимаю, что можно выделить текст, и тогда появляется всплывающая подсказка для цитирования.

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

У меня было пользовательское дополнение, которое добавляло несколько дополнительных таблиц и связывалось с основными таблицами для создания «гаража», но это уже скорее вопрос кастомной разработки.

Что касается функций? Не уверен, что мне чего-то не хватает!

4 лайка

А как насчёт этого?

5 лайков

На случай, если они не разберутся, вы можете установить Quick Quote Theme Component

3 лайка

Отличный вариант! Спасибо!

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

Тем не менее, я обязательно сохраню эту страницу в закладки!

5 лайков

Да, ты прав. Я помню, как попал в эту ловушку с vB и в итоге пришлось всё бросить, потому что всё было настолько кривым и наспех собранным, что это было нежизнеспособно. Как только ломалось что-то одно, всё рушилось, как карточный домик.

1 лайк

Я нашёл одно, что, на мой взгляд, можно было бы улучшить.

Наследование прав доступа.

TurboRenault, возможно, является исключением, так как у нас есть элементы, перенесённые из старых форумов, но позвольте объяснить:

У нас используются вложенные группы. Например:

Раздел «Импортированные и архивные доски» (категория)

| Aventime-Owners.com

| Clio16valver.co.uk

| и т.д.

| и т.д.

Я хочу установить право «только чтение» на верхнем уровне (раздел «Импортированные и архивные доски») и чтобы это право наследовалось дочерними элементами.

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

3 лайка

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

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

1 лайк

Я понимаю, откуда у вас такой подход. Я смотрю на это под другим углом.

Мне нужны единообразные разрешения. Мне нужно запретить серию категорий право на запись/создание. Я могу пропустить одну и оставить её открытой для ответов…

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

1 лайк

Эта платформа просто потрясающая! Мне очень нравится возможность создавать компоненты для применения к теме и делать с ними всё, что я хочу.

Я экспериментирую со стеклянными эффектами:

и с возможностью размывать их при наведении курсора:

4 лайка

Я обнаружил одну недостающую функцию: подписки (Memberships). Она ориентирована на Stripe, а у меня нет физической карты или банковского счёта.

Только PayPal.

Я нашёл обходной путь. Это немного громоздко, но работает.

Добавить товары в магазин WooCommerce, который у нас уже есть.

Добавить плагин подписок.

Добавить синхронизацию с Discourse.

Сделать всю работу с API.

Добавил код, отслеживающий момент добавления подписки к ежемесячной или годовой.

Синхронизируется с Discourse и добавляет пользователя в соответствующую группу; когда подписка истекает, пользователь удаляется из неё.

То есть пользователь заходит в магазин и оформляет одну из этих подписок:

WordPress инициирует действие, и API отправляет запрос в Discourse для добавления пользователя в группу.

PayPal обрабатывает повторные платежи через PayPal.

2 лайка

Привет и добро пожаловать! Возможно, это поможет тебе в поиске :slight_smile:

Спасибо за приветствие.

Я не могу использовать Stripe.

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

Привет, Эндрю,

Прекрасно видеть, как к семье Discourse присоединяются новые автомобильные форумы, особенно связанные с Lotus. Примерно 18 месяцев назад я перенёс LotusElan.net с phpBB.

Заходите к нам в гости, если найдёте пару минут.

3 лайка

Ваш сайт выглядит очень активным! Поздравляем с этим!

Я завершил последнюю часть миграции — нашу базу данных автомобилей.

Фильтрация работает по необходимости:

Чуть-чуть неуклюже, но всё работает!

1 лайк