Календарь в Discourse — как настроить?

Всем привет,
Я устанавливаю и поддерживаю Discourse впервые, хотя уже давно пользуюсь им.
Чувствую себя немного потерянным из-за некоторых плагинов и, казалось бы, отсутствия документации. Сейчас мой фокус — плагин Discourse Calendar.

Я нашёл две темы:
Сам плагин — Discourse Calendar
Запрос помощи How to use the calendar plugin?

Ни одна из них толком не объясняет, как использовать плагин, кроме как создание основного календаря в первом сообщении и добавление событий в ответных сообщениях к тому же посту.

На скриншотах видно несколько цветов, что наводит на мысль, что календарь может брать данные из нескольких категорий?

В настройках плагина также есть параметр calendar categories, но я не совсем понимаю, как его использовать. Мне удалось отобразить календарь в верхней части страницы категории, но он пуст.

Сейчас я использую categoryId=7;postId=19, где категория 7 — та, над которой должен отображаться календарь. Затем я не был уверен насчёт postId. Я пробовал пост, в котором есть событие, и пост, где календарь — это первое сообщение, а даты — ответы. Календарь появляется вверху категории (в некорректно отображаемом нескроллящемся блоке), но события на нём не отображаются, независимо от того, какой postId я указываю.

Вспомогательный текст также упоминает: Другие допустимые настройки: tzPicker, weekends и defaultView.
Но нет объяснения, что они делают и как их использовать.

Короче говоря, я ищу любые подсказки или ссылки на материалы, которые более подробно объясняют работу этого плагина.

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

Кажется, что должен быть более простой способ, но я не знаю, какой именно.

Большое спасибо за любую помощь.

Привет!
Postid находится в JSON и представляет собой идентификатор поста, в котором объявлен календарь (не идентификатор темы).

Что касается событий с цветовой кодировкой, я полагаю, что они (пока :sweat_smile:) поступают из плагина events (но я мог упустить какой-то коммит!).

И, возможно, это ответит на некоторые из ваших вопросов:

Спасибо большое. Именно в различии между PostID и TopicID я ошибался. Теперь всё прояснилось. Мне всё ещё хотелось бы увидеть «страницу руководства» или что-то подобное со всеми возможными переменными и параметрами ввода для этого плагина, но я продолжу экспериментировать.

Также спасибо за ссылку на плагин событий. Как и в сообщении, на которое вы дали ссылку, остаётся непонятным, как связаны (или не связаны) понятия «Календарь», «Дата» и «Событие», учитывая, что плагин событий является частью плагина календаря.

@ben_t, ваш сценарий использования описывает именно тот тип функциональности, на которую я надеялся… различные группы могли бы иметь ветки обсуждений о своих мероприятиях, но при создании своего мероприятия в своих темах они заполняли бы Главный календарь событий, содержащий все события всех групп. Затем читатели основного календаря событий могли бы нажать на любой элемент в календаре и перейти к ветке обсуждения этого события.

Не поймите меня неправильно, в текущем виде я понимаю идею события в ветке, которое не попадает в главный календарь событий (например, небольшая группа, проводящая планирующие встречи перед большим событием в главном календаре),

Однако я действительно считаю, что наш сценарий использования был бы отличной функцией, так как я вижу множество вариантов реализации (календари школьных спортивных мероприятий, доски объявлений сообщества… )

Кстати. Я обнаружил альтернативный способ создания темы, где в первом сообщении находится календарь, а затем вы отвечаете на календарь даты, которые добавляются в верхнее сообщение… без входа в настройки и подсчета номеров веток…
Где-то в первом сообщении вставьте:

[calendar]
[/calendar]

Я наткнулся на это на странице [github|Discourse Calendar (and Event)].
Кажется, это было добавлено после вашего поста.

… Я иду разбираться с этим делом о цветах! :smiley:

Может кто-нибудь поделиться инструкцией, где найти Postid для объявления календаря? Я застрял на этом шаге и был бы очень признателен за помощь.

Редактирование: нашёл! На случай, если у кого-то возникнут трудности, вот шаги для поиска postId. Возьмём для примера эту тему:

https://meta.discourse.org/t/discourse-calendar-how-to/165536/5

  1. Удалите слаг темы, чтобы ссылка выглядела так: https://meta.discourse.org/t/165536/5
  2. Уберите номер поста в конце (/5) и замените его на /posts.json, чтобы URL выглядел так:
    https://meta.discourse.org/t/165536/posts.json
  3. Откройте ссылку, и вы найдёте необходимый postId в первой строке:
  4. Вставьте ссылку в настройки плагина календаря, так что в нашем примере это будет выглядеть примерно так:
  5. Теперь ваш календарь в категории должен отображать все записи [date] из этой темы.

Может, кто-нибудь подскажет, что это за настройки? Мне не удалось найти никаких ссылок на них, кроме этого поста, и никаких пояснений нет. :sadpanda:

\n[calendar weekends="false"]\n[/calendar]\n\nскроет выходные дни\n\n\n[calendar defaultView="listNextYear"]\n[/calendar]\n\nотобразит представление списка по умолчанию (другие варианты — month или basicWeek)\n\n\n\n[calendar tzPicker="true"]\n[/calendar]\n\nпозволит пользователю выбрать часовой пояс в правом верхнем углу календаря

Полезно, но означает ли это, что эта информация для настройки неприменима, или она просто устанавливает настройку по умолчанию для календаря в указанном сообщении?

:thinking: Извините, я не совсем понял вопрос :sweat_smile:
Я бы сказал, что настройки устанавливаются для каждого элемента, то есть для одного календаря (который указан в сообщении).

Приношу извинения за путаницу.
В настройках календаря Discourse вы видите изображение, которое я публиковал ранее.
Там требуются categoryId и postID, после чего перечисляются другие допустимые параметры, но не поясняется, что они делают в данном случае.

Интересует, является ли это проблемой некорректного текста справки или непониманием того, как эти параметры работают в связи с настройкой «Категории календаря».

По моим тестам, ничего не происходит, но я могу ошибаться. :smiley:

О, не беспокойтесь, мой английский похож на швейцарский сыр — в основном дырки, отсюда и сомнения.

Думаю, это должно работать и без двойных кавычек, например:
categoryId=31;postId=4867;tzPicker=true;weekends=false

Я обнаружил, что нужно изменить

meta.discourse.org/t/discourse-calendar-how-to/165536/6

на

meta.discourse.org/t/discourse-calendar-how-to/165536.json

Согласен. Мне кажется, что иногда инструкции написаны с точки зрения разработчика и требуют более пошаговых объяснений и иллюстраций для неподготовленного пользователя. Возможно, для календаря стоило бы использовать компонент темы (#theme-component), чтобы сделать процесс настройки более понятным в рамках темы или чего-то подобного.

В итоге я отказался от использования календаря About-Topic, поскольку самый простой способ создать событие — это всегда первый пост темы, и вы всё равно будете использовать его для календаря, а не для событий.

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

Также вы упомянули компонент темы, что подразумевает возможность настройки; календарь, о котором я говорю, — тот, что реализован через настройку администратора Events Calendar Categories, — я хотел бы иметь возможность настроить:

  • Размер календаря на десктопной версии сайта (на мобильной всё выглядит нормально);
  • День начала недели.

Я не перечисляю слишком много пунктов, потому что не хочу отпугнуть людей; полагаю, существовали проблемы разработки, из-за которых потребовались разные способы реализации discourse-calendar для суперпользователя.

Насколько я видел, компонента темы для календаря (TC) ещё не существует. Однако вы можете создать собственный компонент темы (#theme-component), используя инструмент «Исследовать элемент» в браузере, чтобы определить и настроить размер календаря для настольной версии. Только не забудьте разместить его в заголовке CSS для настольной версии.

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

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

Что касается календаря «Пер Parent Category», было бы здорово, если бы категория Uncategorized (возможно?) отображала календарь на главной странице (или в категории General), объединяя события со всех остальных категорий.