Календарь с большими возможностями
Продолжаю тему календарей. С первым некоторые уже знакомы. Этот календарь основан на той же javascript-библиотеке, что и myCalendar, только имеет более широкие возможности.
Основные отличия
- Возможность заводить сколько угодно календарей.
- Система уведомлений на сайте и по почте.
- Повторяющиеся события.
- Появились личные события, просмотр которых другим пользователям можно отключить.
Управление календарями
Для того, чтобы вывести календарь на сайте, нужно сначала его создать. Делается это в админке.
Тут же можно указать ряд настроек: цвет текста, цвет события, класс календаря.
Для Google календаря вводим название календаря, которое нужно получить в кабинете разработчиков Google. Как это сделать описано тут. Не забываем при этом про системную настройку, в которой указываем ключ Google Calendar API Key.
Система уведомлений
Функционал уведомлений состоит из 2 частей: онлайн уведомления и уведомления по почте. За онлайн уведомления отвечает плагин. Поэтому, на какой бы страничке сайта вы не находились, плагин сообщит о наступлении события всплывающим окошком, а также продублирует уведомление на почту по следующей логике
- если у события есть автор, то уведомляем его,
- если автора нет (аноним), то уведомляем текущего авторизованного пользователя,
- если текущий пользователь не авторизован, то отбой.
Для управления уведомлениями есть 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, поиск событий. Но это как пойдет. В общем, пока все.
Познакомится поближе можно на странице дополнения.
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()