Документация для разработчиков
Темная тема

Встраивание в календарь

Плейсмент CALENDAR_GRIDVIEW позволяет встроиться в календарный вид (вверху - там где день/неделя/месяц/список).

Пример

Как можно забиндить (привязать) приложение к календарной встройке::

BX24.callMethod('placement.bind', {
	PLACEMENT:'CALENDAR_GRIDVIEW',
	HANDLER: 'http://svd.org/svdapp.php',
	TITLE: 'Custom tab'
}, (result) => {console.log(result)});

Если в самом приложении вызвать

echo "<pre>";
print_r($_REQUEST);
echo "</pre>";

то увидим, что туда приходят определенные параметры. В частности:

[PLACEMENT_OPTIONS] => {
	"viewRangeFrom":"2018-09-30",
	"viewRangeTo":"2018-11-04"
}

Также при работе во встройке есть определенный интерфейс: методы и события.

Методы (js методы)

Метод Описание
getEvents
Получение событий
var dateFrom = new Date();
var dateTo = new Date(dateFrom.getTime() + 86400 * 30);
dateFrom.setHours(0, 0, 0, 0);
dateTo.setHours(0, 0, 0, 0);

BX24.placement.call('getEvents',
	{
		dateFrom: dateFrom,
		dateTo: dateTo
	},
	function(events)
	{
		console.log('getEvents responce:');
		console.dir(events);
	}
);
viewEvent
Просмотр события (открытие карточки просмотра)
BX24.placement.call('viewEvent',
	{
		id: "1431170", - id события
		dateFrom: "11.07.2018" - дата события (не обязательно, но важно для регулярных)
	},
	function(){}
);
addEvent
Добавление нового события (открытие карточки)
BX24.placement.call('addEvent', function(){});
editEvent
Редактирование события (открытие карточки)
BX24.placement.call('editEvent', {uid: "1431171|19.07.2018"}, function(){});
deleteEvent
Удаление события
BX24.placement.call('deleteEvent',
	{
		id: "1431169"
	},
	function(){}
);

События, которые можно отслеживать в плейсменте

События Описание
Calendar.customView:refreshEntries Обновление событий.
Calendar.customView:decreaseViewRangeDate Нажимаем на стрелочку назад, т.е. отматываем календарь на предыдущие даты (на какие точно - может решать автор плейсмента).
Calendar.customView:increaseViewRangeDate Нажимаем на стрелочку вперед, т.е. отматываем календарь на следующие даты (на какие точно - может решать автор плейсмента).
Calendar.customView:adjustToDate Переход к конкретной дате (она передается в параметре).


Дополнительно

Встраивание приложений (REST).

Встраивание приложений в курсе Маркетплейс Битрикс24.

Встраивание приложений в виде пользовательских типов полей в учебном курсе.

Добавление своих методов REST API в учебном курсе.



Пользовательские комментарии

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

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Антон Захаров
Сообщение не промодерировано, возможны ошибки и неточности.
Для установки обработчика на "События, которые можно отслеживать в плейсменте" используйте код:

Код
BX24.init(function () {
     BX24.placement.bindEvent('Calendar.customView:decreaseViewRangeDate', () => console.log('decreaseViewRangeDate was clicked'));
});

© «Битрикс», 2001-2024, «1С-Битрикс», 2024