[fullCalendar] Небольшие доработки

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

Управление стилями и скриптами дополнения

И раньше можно было подключать свои файлы вместо стандартных. Но меня просили сделать возможность вообще отключить загрузку, чтобы централизовано загружать все файлы в шаблоне, например, через minifyX. Теперь эта возможность есть. Нужно просто указать пустую строку в настройках fullcalendar.default_css и fullcalendar.default_js.

Управление библиотеками jQuery и jQuery UI

Опять же, если нужно управлять этими библиотеками самостоятельно, то их можно отключить. Для этого есть соответствующие настройки fullcalendar.load_jquery и fullcalendar.load_jquery_ui.

Пользовательское управление уведомлениями

Эта возможность пригодится программистам. В системной настройке fullcalendar.prepare_notify_snippet нужно указать название сниппета, который будет вызываться при обработке запроса на уведомления, если они включены. Выполняется он в контексте класса fullCalendar. Поэтому, во-первых, нужно обращаться через $this. А во-вторых, ему доступны настройки класса $this->config (массив). Можно в зависимости от условий поменять, например, диалог (чанк) для вывода уведомления —
if ($modx->user == 1) {
	// tplNotify - параметр сниппета fullCalendar, который переходит в конфиг.
	$this->config['tplNotify'] = 'newTemplateNotify';
}
В пользовательском сниппете доступен массив $events с перечнем событий для уведомления. В него можно добавлять события, изменять или удалять их
// Добавим событие
$events[] = array(
            'id' => 0,  // Событие не из базы, поэтому 0
            'title' => 'Пробное уведомление',
            'start_date' => '2016-03-29 16:08:00',
            // Эти поля в чанке не используются, но ими можно оперировать. Также можно добавить свои.
            // А в своем шаблоне добавить соответствующие плейсхолдеры.
            'notify_time' => '2016-03-29 16:08:00', 
            'description' => '',
            'user' => 1, // автор события. Если 0, то аноним.
            'repeated' => 0,
            'repeat_options' => '',
);

Пример альтернативного использования
Можно для неавторизованного пользователя выводить какое-нибудь сообщение раз в 5/10 минут с предложением авторизоваться. Т.е. пишем в вашем сниппете куку со сроком истечения 5 минут и проверяем — истекло, выводим сообщение.

На этом всё. Спасибо за внимание.

Полная документация.
Сергей Шлоков
31 марта 2016, 10:45
modx.pro
1 215
+5
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0