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

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

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

    16 мая 2015, 12:05   19     0

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

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

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