• Блог
  • Календарь с большими возможностями

Продолжаю тему календарей. С первым некоторые уже знакомы. Этот календарь основан на той же 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, поиск событий. Но это как пойдет. В общем, пока все.

Познакомится поближе можно на странице дополнения.

0   1203

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.