Сохранение отдельных записей событий планировщика DHTMLX для одного повторяющегося события

Я также успешно использовал планировщик DHTMLX для записи событий CRUD и из моей базы данных. Мое требование заключается в повторяющихся событиях.

На данный момент, если я создаю повторяющееся событие, в базе данных создается одна запись с добавленными повторяющимися данными.

Я хотел бы сохранить отдельные повторяющиеся события в базе данных вместо одного «главного» события.

Я знаю, что планировщик DHTMLX обычно этого не позволяет, поэтому мне придется написать некоторый код с использованием API, но я не могу найти способ вытащить отдельные события из мастера до их записи в базу данных.

Любая помощь будет оценена.


person Magic Lava    schedule 29.01.2016    source источник


Ответы (1)


Нет простого способа сделать то, что вам нужно (по крайней мере, я не знаю такого способа). Вы можете попробовать пару вещей.

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

Таким образом, вы можете определить, когда событие добавляется в планировщик, разделить его на отдельные записи и отправить затем вашему обработчику, который будет выполнять вставку в базу данных. Вот небольшая демонстрация http://docs.dhtmlx.com/scheduler/snippet/451753cb.

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

Реализация будет зависеть от используемой вами серверной части.

  • Если это PHP, есть помощник для повторяющихся событий https://github.com/DHTMLX/scheduler-helper-php Однако он может только считывать события из базы данных, нет метода для анализа одного предоставленного вами события, поэтому потребуется некоторый код, чтобы заставить его работать.

  • Если вы используете .NET, вспомогательная библиотека предоставляет необходимый метод, чтобы вы могли обрабатывать повторяющиеся события и вставлять их в БД без больших проблем http://scheduler-net.com/docs/recurring-events.html#getting_instances_of_recurring_events

  • Если вы используете другую платформу - боюсь, вам придется написать свой парсер повторяющихся событий, чтобы обрабатывать их на стороне сервера.

И после того, как событие будет сохранено таким образом, планировщик больше не будет распознавать его как повторяющуюся серию, поэтому не будет встроенных элементов управления для удаления или изменения всех вхождений одновременно.

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

Может быть, вы могли бы пояснить, зачем вам такая логика. Возможно, исходную проблему можно решить проще.

person Alex Klimenkov    schedule 29.03.2016