26 protected function getInitData():
array
39 $dom = $block->getDom();
52 isset(
$filter[
'attributeData']) &&
53 is_string(
$filter[
'attributeData']) &&
54 mb_strpos(
$filter[
'attributeData'],
'@')
57 [$attrSelector, $attrCode] = explode(
'@',
$filter[
'attributeData']);
58 $attrCode = mb_strtolower($attrCode);
59 $resultNode = $dom->querySelector($attrSelector);
62 if (
$type == self::CHAT_TYPE_PERSONAL)
64 $return[
'CHAT_ID'] = (int) $resultNode->getAttribute($attrCode);
66 if (!$return[
'CHAT_ID'])
69 $resultNode->setAttribute($attrCode, $return[
'CHAT_ID']);
73 else if (
$type == self::CHAT_TYPE_GROUP)
75 $return[
'CHAT_ID'] = trim($resultNode->getAttribute($attrCode));
77 if (preg_match(
'/[^\d]+/', $return[
'CHAT_ID']))
80 if (is_array($chantEntity))
82 if (isset($chantEntity[
'ID']))
84 $chatId = $chantEntity[
'ID'];
85 unset($chantEntity[
'ID']);
97 if (
$res->isSuccess())
99 $return[
'CHAT_ID'] =
$res->getId();
100 $resultNode->setAttribute(
101 $attrCode, $return[
'CHAT_ID']
107 else if (!$return[
'CHAT_ID'])
109 unset($return[
'CHAT_ID']);
111 $return[
'CHAT_ID'] = (int)$return[
'CHAT_ID'];
112 if ($return[
'CHAT_ID'])
115 $return[
'CHAT_ID'], $block->getId()
125 isset(
$filter[
'attributeButton']) &&
126 is_string(
$filter[
'attributeButton']) &&
127 mb_strpos(
$filter[
'attributeButton'],
'@')
130 [$attrSelector, $attrCode] = explode(
'@',
$filter[
'attributeButton']);
131 $attrCode = mb_strtolower($attrCode);
132 $resultNode = $dom->querySelector($attrSelector);
135 $return[
'SEND_TITLE'] = $resultNode->getAttribute($attrCode);
136 if (!$return[
'SEND_TITLE'])
138 $return[
'SEND_TITLE'] = Loc::getMessage(
'LANDING_SUBTYPE_BUTTON_SEND');
139 $resultNode->setAttribute($attrCode, $return[
'SEND_TITLE']);
146 if ($return &&
$type)
148 $return[
'TYPE'] =
$type;
154 $block->saveContent($dom->saveHTML());
169 $userFilter = [
'=ACTIVE' =>
'Y'];
170 $chatId = $initData[
'CHAT_ID'];
171 $chatType = $initData[
'TYPE'];
174 'text' => $initData[
'SEND_TITLE']
178 if ($chatType == $this::CHAT_TYPE_PERSONAL)
180 $sendButton[
'href'] =
'#chat' . $chatId;
181 $userFilter[
'ID'] = $chatId;
183 else if ($chatType == $this::CHAT_TYPE_GROUP)
185 $sendButton[
'href'] =
'#join' . $chatId;
189 if (!$userFilter[
'ID'])
191 $userFilter[
'ID'] = -1;
203 'ID',
'LOGIN',
'NAME',
'LAST_NAME',
'SECOND_NAME',
204 'WORK_POSITION',
'PERSONAL_PHOTO'
206 'filter' => $userFilter
210 if (Cache::isCaching())
213 'intranet_user_' .
$user[
'ID']
220 \CSite::getNameFormat(),
224 'src' => \CIMChat::getAvatarImage(
$user[
'PERSONAL_PHOTO']),
227 'SEND' => $sendButton
240 $initData = $this->getInitData();
static getList(array $parameters=array())