fullCalendar

Календарь с широким функционалом
Версия 2.0.3-pl
Дата выпуска 08.06.2017
Загрузки 186
Просмотры 15 777
Внимание, этот компонент требует версию MODX не ниже 2.3 !

Календарь основан на той же javascript-библиотеке, что и myCalendar, только имеет более широкие возможности.






Основные отличия


  • Возможность заводить сколько угодно календарей.
  • Система уведомлений на сайте и по почте.
  • Повторяющиеся события.
  • Личные события, просмотр которых другим пользователям можно отключить.
  • Пользовательские события, в том числе события из ресурсов.
Управление календарями

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




Тут же можно указать ряд настроек: цвет текста, цвет события, класс календаря.




Для Google календаря вводим название календаря, которое нужно получить в кабинете разработчиков Google. Как это сделать описано тут. Не забываем при этом про системную настройку, в которой указываем ключ Google Calendar API Key.


Система уведомлений


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


— если у события есть автор, то уведомляем его,


— если автора нет (аноним), то уведомляем текущего авторизованного пользователя,


— если текущий пользователь не авторизован, то отбой.


Для управления уведомлениями есть 2 системные настройки:


  1. Онлайн-уведомления — включает/отключает уведомление на сайте.
  2. Уведомления по почте — включает/отключает уведомление по почте.
Такие события имеют класс notified-event для дополнительной css настройки.

Есть еще скрипт для cron'а, который можно запускать по расписанию. Сейчас он работает, чтобы оповещать о событиях, которые произойдут в текущий день. Запускать его можно в полночь. Алгоритм можно прописать любой.



Повторяющиеся события


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


Отличить повторяющиеся события от обычных можно по значку. Как и события с уведомлением.


Повторяющиеся события имеют класс repeated-event.






Личные события


Авторизованный пользователь может отметить событие как личное. Такие события при вызове календаря с параметром


showPrivate=`0`
посторонним пользователям отображаться не будут. Но даже если разрешить показывать личные сообщения (showPrivate=`1`), то редактировать их сможет только сам автор и админ, авторизованный в backend. Если пользователь не авторизован, то чекбокс Личное становится недоступным.

У таких событий css класс private-event.




Минимальная длительность события 30 мин.



Теперь, когда календарь создан, можно его вызывать


[[!fullCalendar? &calendars=`1`]]
Для вызова нескольких календарей на странице используем параметр calendar и не забывает, что каждый вызов fullCalendar нужно обзывать через instance. Если вызываем только один раз, то instance можно не указывать.

[[!fullCalendar? &instance=`calendar1` &calendars=`1`]]
[[!fullCalendar? &instance=`calendar2` &calendars=`2,3`]]
В планах научиться редактировать события Google календаря через API Google, поиск событий.

Обсуждение компонента в сообществе MODX.PRO


Со всеми возможностями компонента можно познакомиться на сайте компонента.

2.0.3-pl (08.06.2017)

  • Обновлены библиотеки.
  • Небольшие исправления.

2.0.2-pl (26.01.2017)

  • Исправлены найденные ошибки.

2.0.1-pl (07.08.2016)

  • В сниппет fullCalendar добавлен параметр nowIndicator, включающий маркер текущего времени.
  • В сниппет fullCalendar добавлен параметр slotDuration, определяющий размерность шкалы времени.
  • В сниппет fullCalendar добавлен параметр slotEventOverlap, определяющий поведение пересекающихся событий.
  • Добавлены javascript события - fc_event_render, fc_event_after_render и fc_calendar_after_render.
  • Небольшие багфиксы.

2.0.0-pl (22.07.2016)

  • Обновлена библиотека fullcalendar.js до 2.9.0.
  • Обновлена библиотека jQuery до 2.2.4.
  • Добавлен сниппет fcGetEvents для вывода событий в списке.
  • Добавлен сниппет fcCreateEvent для вывода кнопки создания события. Может выводится без календаря.
  • В header календаря добавлена кнопка "addEvent" для создания события.
  • Добавлен шаблон диалога для пользовательских событий.
  • Добавлены перетаскиваемые события.
  • Пользовательским событиям присваивается класс "custom-event".
  • Добавлены системные настройки date_format и time_format.
  • Добавлены события MODX - fcOnGetEventList, fcOnGetNotifications, fcOnGetEvent, fcOnSaveEvent и fcOnRemoveEvent.
  • Добавлены javascript события - fc_event_saved, fc_event_removed, fc_event_receive_error, fc_event_receive_success и fc_event_notify.
  • Обновлены чанки tpl.fullCalendar.dlg, tpl.fullCalendar.notify и tpl.fullCalendar.notify.email.
  • В сниппет fullCalendar добавлен параметр eventOverlap, отвечающий за пересечения событий.
  • Удалена системная настройка prepare_notify_snippet.
  • Переработан javascript.
  • Исправлены найденные ошибки.

1.0.5 pl (12.05.2016)

  • Названия файлов переведены в нижний регистр.

1.0.4 pl (24.04.2016)

  • Оптимизация кода.

1.0.3 pl (31.03.2016)

  • Обновлена библиотека fullcalendar.js до 2.6.1.
  • Адаптирован скрипт установки для MODX 2.4.
  • Добавлена возможность отключать стандартные файлы скриптов и стилей. Для этого нужно в настройках указать вместо файлов пустую строку.
  • Добавлены настройки для отключения загрузки библиотек jQuery и jQuery UI.
  • Добавлена настройка для подключения пользовательского сниппета для подготовки уведомлений.
  • Добавлена проверка обновлений в интерфейсе администратора.
  • Исправлены найденные ошибки.

1.0.2 pl

  • Добавлен шрифт с иконками

1.0.1 pl (19.05.2015)

  • Добавлен allowGuestEdit параметр

1.0.0 pl (18.05.2015)

  • Добавлена кнопка "Удалить" в диалог редактирования.

1.0.0 rc (16.05.2015)

  • [ru] Первый выпуск

Последние обсуждения в сообществе MODX.pro