1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
CollabLogProvider.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Collab\Provider;
6
7use Bitrix\Socialnetwork\Collab\Internals\CollabLogTable;
8use Bitrix\Socialnetwork\Collab\Log\CollabLogEntryBuilderFromEntityObject;
9use Bitrix\Socialnetwork\Helper\InstanceTrait;
10
12{
13 use InstanceTrait;
14
15 private CollabLogEntryBuilderFromEntityObject $builderFromEntityObject;
16
17 private function __construct()
18 {
19 $this->builderFromEntityObject = new CollabLogEntryBuilderFromEntityObject();
20 }
21
23 {
24 $query = CollabLogTable::query();
25
26 $query->setSelect([
27 'ID',
28 'TYPE',
29 'COLLAB_ID',
30 'ENTITY_TYPE',
31 'ENTITY_ID',
32 'USER_ID',
33 'DATETIME',
34 'DATA',
35 ]);
36
37 if ($filter->collabId > 0)
38 {
39 $query->where('COLLAB_ID', $filter->collabId);
40 }
41
42 if ($filter->userId > 0)
43 {
44 $query->where('USER_ID', $filter->userId);
45 }
46
47 if ($filter->entity)
48 {
49 $query->where('ENTITY_TYPE', $filter->entity->getType());
50 $query->where('ENTITY_ID', $filter->entity->getId());
51 }
52
53 if ($filter->from)
54 {
55 $query->where('DATETIME', '>=', $filter->from);
56 }
57
58 if ($filter->to)
59 {
60 $query->where('DATETIME', '<=', $filter->to);
61 }
62
63 $query->setLimit($filter->limit);
64 $query->setOffset($filter->offset);
65
66 $collection = $query->fetchCollection();
67
68 $result = [];
69
70 foreach ($collection as $logEntry)
71 {
72 try
73 {
74 $result[] = $this->builderFromEntityObject->build($logEntry);
75 }
76 catch (\Exception)
77 {}
78 }
79
80 return $result;
81 }
82}
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$query
Определения get_search.php:11
$filter
Определения iblock_catalog_list.php:54