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

Работа с типами сайтов, скоупы

Типы и скоупы

Типы сайтов

Сайты могут быть следующих типов:

  • Основные:
    • PAGE (от Home Page) - обычные сайты.
    • STORE - магазины.
    • SMN - сайты, использующиеся в разделе Сайты24 в административном разделе в БУС.
  • Дополнительные:
    • KNOWLEDGE –– базы знаний.
    • GROUP –– базы знаний групп соц.сети.

На данный момент не поддерживается расширение типов.

Скоупы

Помимо разделительной функции на уровне компонентов существует также разграничение по правам, получившее название скоупов.

Если вы работаете с основными типами, ничего делать не нужно.
Если с дополнительными, перед работой нужно установить скоуп.

Примеры

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

if (\Bitrix\Main\Loader::includeModule('landing'))
{
	//если не установить scope
	\Bitrix\Landing\Site\Type::setScope(
		'KNOWLEDGE'
	);
	// .. то ничего не будет возвращено, хотя такой сайт существует и доступен пользователю
	$res = \Bitrix\Landing\Landing::getList([
		'select' => [
			'ID', 'TITLE'
		],
		'filter' => [
			'SITE_ID' => 999
		]
	]);
	while ($row = $res->fetch())
	{
		print_r($row);
	}
}

Если далее по хиту планируется работа с другим скоупом, то сначала следует:
- очистить установленный,
- затем установить новый.
Такое явное переопределение скоупов сделано намеренно.

\Bitrix\Landing\Site\Type::setScope(
	'KNOWLEDGE'
);
// работа в скоупе KNOWLEDGE
\Bitrix\Landing\Site\Type::clearScope();
// после очистки скоупа мы опять в состоянии основных прав
\Bitrix\Landing\Site\Type::setScope(
	'GROUP'
);
// теперь мы работаем в скоупе GROUP


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