Перейти к основному содержимому

Несколько пользователей

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

// загрузить два источника данных
scheduler.load("events_shared.php?user="1"");
scheduler.load("events_shared.php?user="2"");
scheduler.config.readonly = true;

На серверной стороне это может выглядеть так:

$scheduler->render_sql("select * from events_shared where event_type="1" AND 
userId = ".$user_id,"event_id","start_date,end_date,text,event_type,userId");

Этот способ позволяет отображать данные из нескольких источников одновременно. userId в примере - это просто заполнитель; на практике вы можете применять любые правила, которые подходят под ваши задачи.

Этот подход можно расширить для более сложных сценариев, например, когда пользователи видят все события, но могут редактировать только свои:

//включить сохранение для первого источника данных
var dp = scheduler.createDataProcessor("events.php?user");
dp.init(scheduler);

//разрешить операции редактирования только для своих событий
function allow_own(id){
var ev = this.getEvent(id);
return ev.userId == 1;
}
scheduler.attachEvent("onClick",allow_own);
scheduler.attachEvent("onDblClick",allow_own);

//значения по умолчанию для нового события
scheduler.attachEvent("onEventCreated",function(id){
const ev = this.getEvent(id);
// userId будет отправлен на сервер через DataProcessor,
// обязательно проверьте это на сервере
ev.userId = CURRENT_USER_ID;
});
Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.