1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
calendarevent.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Socialnetwork\Livefeed;
4
5
use Bitrix\Main\Config\Option;
6
use Bitrix\Main\Loader;
7
use Bitrix\Main\Localization\Loc;
8
9
Loc::loadMessages(__FILE__);
10
11
final
class
CalendarEvent
extends
Provider
12
{
13
public
const
PROVIDER_ID
=
'CALENDAR'
;
14
public
const
CONTENT_TYPE_ID
=
'CALENDAR_EVENT'
;
15
16
protected
static
$calendarEventClass
= \CCalendarEvent::class;
17
18
public
static
function
getId
(): string
19
{
20
return
static::PROVIDER_ID;
21
}
22
23
public
function
getEventId
():
array
24
{
25
return
[
'calendar'
];
26
}
27
28
public
function
getType
(): string
29
{
30
return
Provider::TYPE_POST
;
31
}
32
33
public
static
function
canRead
(
$params
): bool
34
{
35
return
true
;
36
}
37
38
protected
function
getPermissions
(
array
$post
): string
39
{
40
return
self::PERMISSION_READ;
41
}
42
43
public
function
getCommentProvider
(): Provider
44
{
45
return
new
ForumPost
();
46
}
47
48
public
function
initSourceFields
()
49
{
50
static
$cache = [];
51
52
$calendarEventId =
$this->entityId
;
53
54
if
($calendarEventId <= 0)
55
{
56
return
;
57
}
58
59
$calendarEvent = [];
60
61
if
(isset($cache[$calendarEventId]))
62
{
63
$calendarEvent = $cache[$calendarEventId];
64
}
65
elseif
(Loader::includeModule(
'calendar'
))
66
{
67
$res
= self::$calendarEventClass::getList(
68
[
69
'arFilter'
=> [
70
"ID"
=> $calendarEventId,
71
],
72
'parseRecursion'
=>
false
,
73
'fetchAttendees'
=>
false
,
74
'checkPermissions'
=>
false
,
75
'setDefaultLimit'
=>
false
76
]
77
);
78
79
$calendarEvent = is_array(
$res
) && is_array(
$res
[0]) ?
$res
[0] : [];
80
$cache[$calendarEventId] = $calendarEvent;
81
}
82
83
if
(empty($calendarEvent))
84
{
85
return
;
86
}
87
88
$this->
setSourceFields
($calendarEvent);
89
$this->
setSourceDescription
($calendarEvent[
'DESCRIPTION'
]);
90
$this->
setSourceTitle
($calendarEvent[
'NAME'
]);
91
$this->
setSourceAttachedDiskObjects
($this->
getAttachedDiskObjects
($this->cloneDiskObjects));
92
$this->
setSourceDiskObjects
($this->
getDiskObjects
($calendarEventId, $this->cloneDiskObjects));
93
}
94
95
public
function
getPinnedTitle
(): string
96
{
97
$result
=
''
;
98
99
if
(empty($this->sourceFields))
100
{
101
$this->
initSourceFields
();
102
}
103
104
$calendarEvent = $this->
getSourceFields
();
105
if
(empty($calendarEvent))
106
{
107
return
$result
;
108
}
109
110
return
Loc::getMessage(
'SONET_LIVEFEED_CALENDAR_EVENT_PINNED_TITLE'
, [
111
'#TITLE#'
=> $calendarEvent[
'NAME'
]
112
]);
113
}
114
115
public
function
getLiveFeedUrl
(): string
116
{
117
$pathToCalendarEvent =
''
;
118
$userPage = Option::get(
'socialnetwork'
,
'user_page'
,
''
,
SITE_ID
);
119
if
(
120
!empty($userPage)
121
&& ($calendarEvent = $this->
getSourceFields
())
122
&& !empty($calendarEvent)
123
)
124
{
125
$pathToCalendarEvent =
\CComponentEngine::makePathFromTemplate
($userPage.
"user/#user_id#/calendar/?EVENT_ID=#event_id#"
, [
126
"user_id"
=> $calendarEvent[
"CREATED_BY"
],
127
"event_id"
=> $calendarEvent[
"ID"
]
128
]);
129
}
130
131
return
$pathToCalendarEvent;
132
}
133
}
Bitrix\Socialnetwork\Livefeed\CalendarEvent
Определения
calendarevent.php:12
Bitrix\Socialnetwork\Livefeed\CalendarEvent\initSourceFields
initSourceFields()
Определения
calendarevent.php:48
Bitrix\Socialnetwork\Livefeed\CalendarEvent\getCommentProvider
getCommentProvider()
Определения
calendarevent.php:43
Bitrix\Socialnetwork\Livefeed\CalendarEvent\CONTENT_TYPE_ID
const CONTENT_TYPE_ID
Определения
calendarevent.php:14
Bitrix\Socialnetwork\Livefeed\CalendarEvent\getPinnedTitle
getPinnedTitle()
Определения
calendarevent.php:95
Bitrix\Socialnetwork\Livefeed\CalendarEvent\getPermissions
getPermissions(array $post)
Определения
calendarevent.php:38
Bitrix\Socialnetwork\Livefeed\CalendarEvent\getType
getType()
Определения
calendarevent.php:28
Bitrix\Socialnetwork\Livefeed\CalendarEvent\getLiveFeedUrl
getLiveFeedUrl()
Определения
calendarevent.php:115
Bitrix\Socialnetwork\Livefeed\CalendarEvent\getEventId
getEventId()
Определения
calendarevent.php:23
Bitrix\Socialnetwork\Livefeed\CalendarEvent\canRead
static canRead($params)
Определения
calendarevent.php:33
Bitrix\Socialnetwork\Livefeed\CalendarEvent\getId
static getId()
Определения
calendarevent.php:18
Bitrix\Socialnetwork\Livefeed\CalendarEvent\PROVIDER_ID
const PROVIDER_ID
Определения
calendarevent.php:13
Bitrix\Socialnetwork\Livefeed\CalendarEvent\$calendarEventClass
static $calendarEventClass
Определения
calendarevent.php:16
Bitrix\Socialnetwork\Livefeed\ForumPost
Определения
forumpost.php:22
Bitrix\Socialnetwork\Livefeed\Provider\setSourceFields
setSourceFields(array $fields)
Определения
provider.php:639
Bitrix\Socialnetwork\Livefeed\Provider\setSourceTitle
setSourceTitle($title)
Определения
provider.php:677
Bitrix\Socialnetwork\Livefeed\Provider\getAttachedDiskObjects
getAttachedDiskObjects($clone=false)
Определения
provider.php:796
Bitrix\Socialnetwork\Livefeed\Provider\setSourceDiskObjects
setSourceDiskObjects(array $files)
Определения
provider.php:756
Bitrix\Socialnetwork\Livefeed\Provider\getSourceFields
getSourceFields()
Определения
provider.php:649
Bitrix\Socialnetwork\Livefeed\Provider\setSourceAttachedDiskObjects
setSourceAttachedDiskObjects(array $diskAttachedObjects)
Определения
provider.php:751
Bitrix\Socialnetwork\Livefeed\Provider\TYPE_POST
const TYPE_POST
Определения
provider.php:25
Bitrix\Socialnetwork\Livefeed\Provider\setSourceDescription
setSourceDescription($description)
Определения
provider.php:654
Bitrix\Socialnetwork\Livefeed\Provider\$entityId
$entityId
Определения
provider.php:53
Bitrix\Socialnetwork\Livefeed\Provider\getDiskObjects
getDiskObjects($entityId, $clone=false)
Определения
provider.php:834
CComponentEngine\makePathFromTemplate
static makePathFromTemplate($template, $arParams=array())
Определения
component_engine.php:355
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$res
$res
Определения
filter_act.php:7
$result
$result
Определения
get_property_values.php:14
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
$params
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения
template.php:799
$post
$post
Определения
template.php:8
SITE_ID
const SITE_ID
Определения
sonet_set_content_view.php:12
bitrix
modules
socialnetwork
lib
livefeed
calendarevent.php
Создано системой
1.14.0