1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
CollabAddCommand.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Collab\Control\Command;
6
7use Bitrix\Main\Validation\Rule\NotEmpty;
8use Bitrix\Main\Validation\Rule\Recursive\Validatable;
9use Bitrix\SocialNetwork\Collab\Access\CollabAccessController;
10use Bitrix\Socialnetwork\Collab\Control\Command\ValueObject\CollabFeatures;
11use Bitrix\Socialnetwork\Collab\Control\Command\ValueObject\CollabFeaturesPermissions;
12use Bitrix\Socialnetwork\Collab\Control\Command\ValueObject\CollabOptions;
13use Bitrix\Socialnetwork\Collab\Control\Command\ValueObject\CollabSiteIds;
14use Bitrix\Socialnetwork\Collab\Control\Mapper\Field\InitiatePermissionMapper;
15use Bitrix\Socialnetwork\Collab\Control\Option\AbstractOption;
16use Bitrix\Socialnetwork\Control\Command\AddCommand;
17use Bitrix\Socialnetwork\Control\Command\Attribute\AccessController;
18use Bitrix\Socialnetwork\Control\Command\Attribute\Override;
19use Bitrix\Socialnetwork\Control\Command\ValueObject\Features;
20use Bitrix\Socialnetwork\Control\Command\ValueObject\FeaturesPermissions;
21use Bitrix\Socialnetwork\Control\Command\ValueObject\SiteIds;
22use Bitrix\Socialnetwork\Control\Enum\ViewMode;
23use Bitrix\Socialnetwork\Control\Mapper\Attribute\Map;
24use Bitrix\Socialnetwork\Control\Mapper\Field\ViewModeMapper;
25use Bitrix\Socialnetwork\Item\Workgroup\Type;
26use Bitrix\SocialNetwork\Validation\Rule\NotContainsUrl;
27
32#[AccessController(CollabAccessController::class)]
34{
35 #[NotContainsUrl]
36 #[NotEmpty]
37 #[Map('NAME')]
38 protected string $name;
39
40 #[Map('VISIBLE', ViewModeMapper::class)]
41 #[Map('OPENED', ViewModeMapper::class)]
43
44 #[Map('TYPE')]
45 protected Type $type = Type::Collab;
46
47 #[Validatable]
48 #[Override(CollabFeatures::class)]
50
51 #[Override(CollabFeaturesPermissions::class)]
53
54 #[Validatable]
55 #[Map('SITE_ID')]
56 #[Override(CollabSiteIds::class)]
57 protected SiteIds $siteIds;
58
59 #[Validatable]
60 #[Map('INITIATE_PERMS', InitiatePermissionMapper::class)]
62
63 public function addOption(AbstractOption $option): static
64 {
65 if (!isset($this->options))
66 {
67 $this->options = new CollabOptions();
68 }
69
70 $this->options->addOption($option);
71
72 return $this;
73 }
74}
Определения collection.php:2
$option
Определения options.php:1711