1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
helper.php
См. документацию.
1<?php
2
3namespace Bitrix\Mail;
4
5use Bitrix\Main;
6use Bitrix\Mail\Helper\Message\MessageInternalDateHandler;
7
8class Helper
9{
10
12 {
13 $userMailboxes = \Bitrix\Mail\MailboxTable::getList([
14 'select' => [
15 'ID'
16 ],
17 'filter' => [
18 '=ACTIVE' => 'Y',
19 '=SERVER_TYPE' => 'imap',
20 ],
21 ])->fetchAll();
22
23 if (empty($userMailboxes))
24 {
25 return '';
26 }
27
28 $numberOfUnSynchronizedMailboxes = count($userMailboxes);
29
30 foreach ($userMailboxes as $mailbox)
31 {
32 $mailboxID = $mailbox['ID'];
33 $mailboxHelper = Helper\Mailbox::createInstance($mailboxID, false);
34 if (empty($mailboxHelper))
35 {
36 $numberOfUnSynchronizedMailboxes--;
37 continue;
38 }
39
40 $keyRow = [
41 'MAILBOX_ID' => $mailboxID,
42 'ENTITY_TYPE' => 'MAILBOX',
43 'ENTITY_ID' => $mailboxID,
44 'PROPERTY_NAME' => 'SYNC_FIRST_DAY',
45 ];
46
47 $filter = [
48 '=MAILBOX_ID' => $keyRow['MAILBOX_ID'],
49 '=ENTITY_TYPE' => $keyRow['ENTITY_TYPE'],
50 '=ENTITY_ID' => $keyRow['ENTITY_ID'],
51 '=PROPERTY_NAME' => $keyRow['PROPERTY_NAME'],
52 ];
53
54 $startValue = 'started_for_id_'.$mailboxID;
55
56 if(\Bitrix\Mail\Internals\MailEntityOptionsTable::getCount($filter))
57 {
58 if(Internals\MailEntityOptionsTable::getList([
59 'select' => [
60 'VALUE',
61 ],
62 'filter' => $filter,
63 ])->fetchAll()[0]['VALUE'] !== 'completed')
64 {
66 $keyRow,
67 ['VALUE' => $startValue]
68 );
69
70 $synchronizationSuccess = $mailboxHelper->syncFirstDay();
71
72 if($synchronizationSuccess)
73 {
75 $keyRow,
76 ['VALUE' => 'completed']
77 );
78 $numberOfUnSynchronizedMailboxes--;
79 }
80 }
81 else
82 {
83 $numberOfUnSynchronizedMailboxes--;
84 }
85 }
86 else
87 {
88 $fields = $keyRow;
89 $fields['VALUE'] = $startValue;
92 );
93 $synchronizationSuccess = $mailboxHelper->syncFirstDay();
94
95 if($synchronizationSuccess)
96 {
98 $keyRow,
99 ['VALUE' => 'completed']
100 );
101 $numberOfUnSynchronizedMailboxes--;
102 }
103 }
104 }
105
106 if($numberOfUnSynchronizedMailboxes === 0)
107 {
108 return '';
109 }
110 else
111 {
112 return 'Bitrix\Mail\Helper::syncAllDirsInMailboxForTheFirstSyncDayAgent();';
113 }
114 }
115
116 public static function syncMailboxAgent($id)
117 {
118 $mailboxHelper = Helper\Mailbox::createInstance($id, false);
119
120 if (empty($mailboxHelper))
121 {
122 return '';
123 }
124
125 $mailbox = $mailboxHelper->getMailbox();
126
127 if ($mailbox['OPTIONS']['next_sync'] <= time())
128 {
129 $mailboxHelper->sync();
130
131 $mailbox = $mailboxHelper->getMailbox();
132 }
133
134 global $pPERIOD;
135
136 $pPERIOD = min($pPERIOD, max($mailbox['OPTIONS']['next_sync'] - time(), 60));
137
138 return sprintf('Bitrix\Mail\Helper::syncMailboxAgent(%u);', $id);
139 }
140
141 public static function syncOutgoingAgent($id)
142 {
143 $mailboxHelper = Helper\Mailbox::createInstance($id, false);
144
145 if ($mailboxHelper)
146 {
147 $mailboxHelper->syncOutgoing();
148 }
149
150 return '';
151 }
152
153 public static function markOldMessagesAgent()
154 {
155 $userMailboxes = \Bitrix\Mail\MailboxTable::getList([
156 'select' => [
157 'ID'
158 ],
159 'filter' => [
160 '=ACTIVE' => 'Y',
161 '=SERVER_TYPE' => 'imap',
162 ],
163 ])->fetchAll();
164
165 if (empty($userMailboxes))
166 {
167 return '';
168 }
169
170 $numberOfUnSynchronizedMailboxes = count($userMailboxes);
171
172 foreach ($userMailboxes as $mailbox)
173 {
174 $mailboxID = $mailbox['ID'];
175 $mailboxHelper = Helper\Mailbox::createInstance($mailboxID, false);
176 if (empty($mailboxHelper))
177 {
178 $numberOfUnSynchronizedMailboxes--;
179 continue;
180 }
181
182 $keyRow = [
183 'MAILBOX_ID' => $mailboxID,
184 'ENTITY_TYPE' => 'MAILBOX',
185 'ENTITY_ID' => $mailboxID,
186 'PROPERTY_NAME' => 'SYNC_IS_OLD_STATUS',
187 ];
188
189 $filter = [
190 '=MAILBOX_ID' => $keyRow['MAILBOX_ID'],
191 '=ENTITY_TYPE' => $keyRow['ENTITY_TYPE'],
192 '=ENTITY_ID' => $keyRow['ENTITY_ID'],
193 '=PROPERTY_NAME' => $keyRow['PROPERTY_NAME'],
194 ];
195
196 $startValue = 'started_for_id_'.$mailboxID;
197
198 if(\Bitrix\Mail\Internals\MailEntityOptionsTable::getCount($filter))
199 {
200 if(Internals\MailEntityOptionsTable::getList([
201 'select' => [
202 'VALUE',
203 ],
204 'filter' => $filter,
205 ])->fetchAll()[0]['VALUE'] !== 'completed')
206 {
208 $keyRow,
209 ['VALUE' => $startValue]
210 );
211
212 $synchronizationSuccess = $mailboxHelper->resyncIsOldStatus();
213
214 if($synchronizationSuccess)
215 {
217 $keyRow,
218 ['VALUE' => 'completed']
219 );
220 $numberOfUnSynchronizedMailboxes--;
221 }
222 }
223 else
224 {
225 $numberOfUnSynchronizedMailboxes--;
226 }
227 }
228 else
229 {
230 $fields = $keyRow;
231 $fields['VALUE'] = $startValue;
233 $fields
234 );
235 $synchronizationSuccess = $mailboxHelper->resyncIsOldStatus();
236
237 if($synchronizationSuccess)
238 {
240 $keyRow,
241 ['VALUE' => 'completed']
242 );
243 $numberOfUnSynchronizedMailboxes--;
244 }
245 }
246 }
247
248 if($numberOfUnSynchronizedMailboxes === 0)
249 {
250 return '';
251 }
252 else
253 {
254 return 'Bitrix\Mail\Helper::markOldMessagesAgent();';
255 }
256 }
257
258 public static function cleanupMailboxAgent($id)
259 {
260 $mailboxHelper = Helper\Mailbox::rawInstance($id, false);
261
262 if (empty($mailboxHelper))
263 {
264 return '';
265 }
266
267 $mailboxHelper->setCheckpoint();
268
270 [
271 '=MAILBOX_ID' => $id,
272 '!=MESSAGE_ID' => 0,
274 ]
275 );
276
277 $stage1 = $mailboxHelper->dismissOldMessages();
278 $stage2 = $mailboxHelper->dismissDeletedUidMessages();
279 $stage3 = $mailboxHelper->cleanup();
280
281 global $pPERIOD;
282
283 $pPERIOD = min($pPERIOD, max($stage1 && $stage2 && $stage3 ? $pPERIOD : 600, 60));
284
285 if ($pPERIOD === null)
286 {
287 $pPERIOD = 60;
288 }
289
290 return sprintf('Bitrix\Mail\Helper::cleanupMailboxAgent(%u);', $id);
291 }
292
296 public static function resortTreeAgent($id)
297 {
298 $mailboxHelper = Helper\Mailbox::createInstance($id, false);
299
300 if ($mailboxHelper)
301 {
302 $mailboxHelper->resortTree();
303 }
304
305 return '';
306 }
307
308 public static function deleteMailboxAgent($id)
309 {
310 return \CMailbox::delete($id) ? '' : sprintf('Bitrix\Mail\Helper::deleteMailboxAgent(%u);', $id);
311 }
312
313 public static function resyncDomainUsersAgent()
314 {
315 $res = MailServicesTable::getList(array(
316 'filter' => array(
317 '=ACTIVE' => 'Y',
318 '@SERVICE_TYPE' => array('domain', 'crdomain'),
319 )
320 ));
321 while ($item = $res->fetch())
322 {
323 if ($item['SERVICE_TYPE'] == 'domain')
324 {
325 $lockName = sprintf('domain_users_sync_lock_%u', $item['ID']);
326 $syncLock = \Bitrix\Main\Config\Option::get('mail', $lockName, 0);
327
328 if ($syncLock < time()-3600)
329 {
330 \Bitrix\Main\Config\Option::set('mail', $lockName, time());
331 \CMailDomain2::getDomainUsers($item['TOKEN'], $item['SERVER'], $error, true);
332 \Bitrix\Main\Config\Option::set('mail', $lockName, 0);
333 }
334 }
335 else if ($item['SERVICE_TYPE'] == 'crdomain')
336 {
337 \CControllerClient::executeEvent('OnMailControllerResyncMemberUsers', array('DOMAIN' => $item['SERVER']));
338 }
339 }
340
341 return 'Bitrix\Mail\Helper::resyncDomainUsersAgent();';
342 }
343
344 public static function syncMailbox($id, &$error)
345 {
346 $mailboxHelper = Helper\Mailbox::createInstance($id, false);
347
348 return empty($mailboxHelper) ? false : $mailboxHelper->sync();
349 }
350
351 public static function listImapDirs($mailbox, &$error = [], &$errors = null)
352 {
353 $error = null;
354 $errors = null;
355
356 $client = static::createClient($mailbox);
357
358 $list = $client->listMailboxes('*', $error, true);
359 $errors = $client->getErrors();
360
361 if ($list === false)
362 return false;
363
364 $k = count($list);
365 for ($i = 0; $i < $k; $i++)
366 {
367 $item = $list[$i];
368
369 $list[$i] = array(
370 'path' => $item['name'],
371 'name' => $item['title'],
372 'level' => $item['level'],
373 'disabled' => (bool) preg_grep('/^ \x5c Noselect $/ix', $item['flags']),
374 'income' => mb_strtolower($item['name']) == 'inbox',
375 'outcome' => (bool) preg_grep('/^ \x5c Sent $/ix', $item['flags']),
376 );
377 }
378
379 return $list;
380 }
381
382 public static function getImapUIDsForSpecificDay($mailboxID, $dirPath = 'inbox', $internalDate)
383 {
384 $error = null;
385 $errors = null;
386
387 $mailbox = Helper\Mailbox::prepareMailbox([
388 '=ID'=>$mailboxID,
389 '=ACTIVE'=>'Y'
390 ]);
391
392 $client = static::createClient($mailbox);
393
394 $result = $client->getUIDsForSpecificDay($dirPath, $internalDate);
395
396 return $result;
397 }
398
399 public static function getLastDeletedOldMessageInternaldate($mailboxId,$dirPath,$filter = [])
400 {
401 $firstSyncUID = MailMessageUidTable::getList(
402 [
403 'select' => [
404 'INTERNALDATE'
405 ],
406 'filter' => array_merge(
407 [
408 '!=IS_OLD' => 'D',
409 '=MESSAGE_ID' => 0,
410 '=MAILBOX_ID' => $mailboxId,
411 '=DIR_MD5' => md5($dirPath),
412 ],
413 $filter
414 ),
415 'order' => [
416 'INTERNALDATE' => 'DESC',
417 ],
418 'limit' => 1,
419 ]
420 )->fetchAll();
421
422 if(isset($firstSyncUID[0]['INTERNALDATE']))
423 {
424 return $firstSyncUID[0]['INTERNALDATE'];
425 }
426 else
427 {
428 return false;
429 }
430 }
431
432 public static function getStartInternalDateForDir(
433 $mailboxId,
434 $dirPath,
435 )
436 {
437 $startInternalDate = MessageInternalDateHandler::getStartInternalDateForDir($mailboxId, $dirPath);
438
439 return $startInternalDate ?? false;
440 }
441
442 public static function getImapUnseenSyncForDir($mailbox = null, $dirPath ,$mailboxID = null)
443 {
444 //for testing via mailbox id
445 if(is_int($mailboxID) && is_null($mailbox))
446 {
447 $mailbox = Helper\Mailbox::prepareMailbox([
448 '=ID'=>$mailboxID,
449 '=ACTIVE'=>'Y'
450 ]);
451 }
452
453 $startInternalDate = static::getStartInternalDateForDir($mailbox['ID'], $dirPath);
454
455 if($startInternalDate)
456 {
457 $error = [];
458 $errors = [];
459 return static::getImapUnseen($mailbox, $dirPath,$error,$errors, $startInternalDate);
460 }
461 else
462 {
463 return 0;
464 }
465
466 return false;
467 }
468
469 public static function setMailboxUnseenCounter($mailboxId, $count): void
470 {
471 $keyRow = [
472 'MAILBOX_ID' => $mailboxId,
473 'ENTITY_TYPE' => 'MAILBOX',
474 'ENTITY_ID' => $mailboxId
475 ];
476
477 $filter = [
478 '=MAILBOX_ID' => $keyRow['MAILBOX_ID'],
479 '=ENTITY_TYPE' => $keyRow['ENTITY_TYPE'],
480 '=ENTITY_ID' => $keyRow['ENTITY_ID']
481 ];
482
483 if ($count < 0)
484 {
485 $count = 0;
486 }
487
488 $rowValue = ['VALUE' => $count];
489
491 [
492 'filter' => $filter,
493 'select' => ['VALUE'],
494 ]
495 );
496
497 $counterHasChanged = false;
498
499 if (!is_null($row))
500 {
501 if ((int)$row['VALUE'] !== $count)
502 {
503 Internals\MailCounterTable::update($keyRow, $rowValue);
504 $counterHasChanged = true;
505 }
506 }
507 else
508 {
509 Internals\MailCounterTable::add(array_merge($rowValue,$keyRow));
510 $counterHasChanged = true;
511 }
512
513 if ($counterHasChanged)
514 {
515 \CPullWatch::addToStack(
516 'mail_mailbox_' .$mailboxId,
517 [
518 'module_id' => 'mail',
519 'params' => [
520 'mailboxId' => $mailboxId,
521 ],
522 'command' => 'counters_updated',
523 ]
524 );
526 }
527 }
528
529 public static function updateMailboxUnseenCounter($mailboxId)
530 {
532 'filter' => [
533 'ENTITY_TYPE' => 'DIR',
534 'MAILBOX_ID' => $mailboxId,
535 ],
536 'runtime' => [
537 new \Bitrix\Main\Entity\ExpressionField('COUNT', 'SUM(%s)', 'VALUE'),
538 ],
539 'select' => [
540 'COUNT'
541 ]
542 ])->fetchAll();
543
544 if(!is_null($count[0]["COUNT"]))
545 {
546 static::setMailboxUnseenCounter($mailboxId,(int)$count[0]["COUNT"]);
547 }
548 }
549
550 public static function updateMailCounters($mailbox)
551 {
552 $mailboxId = $mailbox['ID'];
553 $directoryHelper = new Helper\MailboxDirectoryHelper($mailboxId);
554 $syncDirs = $directoryHelper->getSyncDirs();
555 $totalCount = 0;
556 $folderCountersForAdding = [];
557
558 //Since we work with internalDate inside the method
559 \CTimeZone::Disable();
560
561 foreach ($syncDirs as $dir)
562 {
563 if($dir->isInvisibleToCounters())
564 {
565 continue;
566 }
567
568 $count = static::getImapUnseenSyncForDir($mailbox, $dir->getPath());
569
570 if (is_int($count))
571 {
572 $folderCountersForAdding[$dir->getId()] = $count;
574 }
575 }
576
577 \CTimeZone::Enable();
578
579 $currentFolderCounters = Internals\MailCounterTable::getList([
580 'filter' => [
581 '=MAILBOX_ID' => $mailboxId,
582 '=ENTITY_TYPE' => 'DIR',
583 '=ENTITY_ID' => array_keys($folderCountersForAdding)
584 ],
585 'select' => [
586 'ENTITY_ID',
587 'VALUE'
588 ]
589 ]);
590
591 $folderCountersForUpdating = [];
592
593 while ($folderCounter = $currentFolderCounters->fetch())
594 {
595 $folderId = (int)$folderCounter['ENTITY_ID'];
596 $folderCount = (int)$folderCounter['VALUE'];
597
598 if (isset($folderCountersForAdding[$folderId]))
599 {
600 if ($folderCountersForAdding[$folderId] !== $folderCount)
601 {
602 $folderCountersForUpdating[$folderId] = $folderCountersForAdding[$folderId];
603 }
604
605 unset($folderCountersForAdding[$folderId]);
606 }
607 }
608
609 foreach ($folderCountersForAdding as $id => $count)
610 {
611 if ($count <= 0)
612 {
613 continue;
614 }
615
617 [
618 'MAILBOX_ID' => $mailboxId,
619 'ENTITY_TYPE' => 'DIR',
620 'ENTITY_ID' => $id,
621 'VALUE' => $count,
622 ]
623 );
624 }
625
626 foreach ($folderCountersForUpdating as $id => $count)
627 {
629 [
630 'MAILBOX_ID' => $mailboxId,
631 'ENTITY_TYPE' => 'DIR',
632 'ENTITY_ID' => $id,
633 ],
634 [
635 'VALUE' => $count,
636 ]
637 );
638 }
639
640 return $totalCount;
641 }
642
643 public static function getImapUnseen($mailbox, $dirPath = 'inbox', &$error = [], &$errors = null, $startInternalDate = null)
644 {
645 $error = null;
646 $errors = null;
647
648 $client = static::createClient($mailbox);
649
650 $result = $client->getUnseen($dirPath, $error, $startInternalDate);
651 $errors = $client->getErrors();
652
653 return $result;
654 }
655
656 public static function addImapMessage($id, $data, &$error)
657 {
658 $error = null;
659
660 $id = (int) (is_array($id) ? $id['ID'] : $id);
661
662 $mailbox = MailboxTable::getList(array(
663 'filter' => array('ID' => $id, 'ACTIVE' => 'Y'),
664 'select' => array('*', 'LANG_CHARSET' => 'SITE.CULTURE.CHARSET')
665 ))->fetch();
666
667 if (empty($mailbox))
668 return;
669
670 if (!in_array($mailbox['SERVER_TYPE'], array('imap', 'controller', 'domain', 'crdomain')))
671 return;
672
673 if (in_array($mailbox['SERVER_TYPE'], array('controller', 'crdomain')))
674 {
675 // @TODO: request controller
677
678 $mailbox['SERVER'] = $result['server'];
679 $mailbox['PORT'] = $result['port'];
680 $mailbox['USE_TLS'] = $result['secure'];
681 }
682 elseif ($mailbox['SERVER_TYPE'] == 'domain')
683 {
685
686 $mailbox['SERVER'] = $result['server'];
687 $mailbox['PORT'] = $result['port'];
688 $mailbox['USE_TLS'] = $result['secure'];
689 }
690
691 $client = static::createClient($mailbox, $mailbox['LANG_CHARSET'] ?: $mailbox['CHARSET']);
692
693 $dir = MailboxDirectory::fetchOneOutcome($mailbox['ID']);
694 $path = $dir ? $dir->getPath() : 'INBOX';
695
696 return $client->addMessage($path, $data, $error);
697 }
698
699 public static function updateImapMessage($userId, $hash, $data, &$error)
700 {
701 $error = null;
702
703 $res = MailMessageUidTable::getList(array(
704 'select' => array(
705 'ID', 'MAILBOX_ID', 'IS_SEEN',
706 'MAILBOX_USER_ID' => 'MAILBOX.USER_ID',
707 'MAILBOX_OPTIONS' => 'MAILBOX.OPTIONS',
708 ),
709 'filter' => array(
710 '=HEADER_MD5' => $hash,
711 '==DELETE_TIME' => 0,
712 ),
713 ));
714
715 while ($item = $res->fetch())
716 {
717 $isOwner = $item['MAILBOX_USER_ID'] == $userId;
718 $isPublic = in_array('crm_public_bind', (array) $item['MAILBOX_OPTIONS']['flags']);
719 $inQueue = in_array($userId, (array) $item['MAILBOX_OPTIONS']['crm_lead_resp']);
720 if (!$isOwner && !$isPublic && !$inQueue)
721 {
722 continue;
723 }
724
725 if (in_array($item['IS_SEEN'], array('Y', 'S')) != $data['seen'])
726 {
727 MailMessageUidTable::update(
728 array(
729 'ID' => $item['ID'],
730 'MAILBOX_ID' => $item['MAILBOX_ID'],
731 ),
732 array(
733 'IS_SEEN' => $data['seen'] ? 'S' : 'U',
734 )
735 );
736 }
737 }
738 }
739
740 private static function createClient($mailbox, $langCharset = null)
741 {
742 return new Imap(
743 $mailbox['SERVER'], $mailbox['PORT'],
744 $mailbox['USE_TLS'] == 'Y' || $mailbox['USE_TLS'] == 'S',
745 $mailbox['USE_TLS'] == 'Y',
746 $mailbox['LOGIN'], $mailbox['PASSWORD'],
747 $langCharset ? $langCharset : LANG_CHARSET
748 );
749 }
750}
751
753{
754
755 public function initSettings()
756 {
757 parent::initSettings();
758
759 $this->settingServerMsSmtp = false;
760 $this->settingMailFillToEmail = false;
761 $this->settingMailConvertMailHeader = true;
762 $this->settingConvertNewLineUnixToWindows = true;
763 $this->useBlacklist = false;
764 }
765
766 public static function getMailEol()
767 {
768 return "\r\n";
769 }
770
771 public function __toString()
772 {
773 return sprintf("%s\r\n\r\n%s", $this->getHeaders(), $this->getBody());
774 }
775
780 {
781 foreach ($headers as $name => $value)
782 {
783 $message->headers[$name] = $value;
784 }
785 }
786
787}
$path
Определения access_edit.php:21
$count
Определения admin_tab.php:4
$hash
Определения ajax_redirector.php:8
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
static getMailEol()
Определения helper.php:766
__toString()
Определения helper.php:771
static overwriteMessageHeaders(Main\Mail\Mail $message, array $headers)
Определения helper.php:779
initSettings()
Определения helper.php:755
static resortTreeAgent($id)
Определения helper.php:296
static syncMailboxAgent($id)
Определения helper.php:116
static resyncDomainUsersAgent()
Определения helper.php:313
static markOldMessagesAgent()
Определения helper.php:153
static syncMailbox($id, &$error)
Определения helper.php:344
static updateImapMessage($userId, $hash, $data, &$error)
Определения helper.php:699
static getLastDeletedOldMessageInternaldate($mailboxId, $dirPath, $filter=[])
Определения helper.php:399
static setMailboxUnseenCounter($mailboxId, $count)
Определения helper.php:469
static deleteMailboxAgent($id)
Определения helper.php:308
static updateMailCounters($mailbox)
Определения helper.php:550
static addImapMessage($id, $data, &$error)
Определения helper.php:656
static updateMailboxUnseenCounter($mailboxId)
Определения helper.php:529
static getStartInternalDateForDir( $mailboxId, $dirPath,)
Определения helper.php:432
static syncOutgoingAgent($id)
Определения helper.php:141
static getImapUnseen($mailbox, $dirPath='inbox', &$error=[], &$errors=null, $startInternalDate=null)
Определения helper.php:643
static syncAllDirsInMailboxForTheFirstSyncDayAgent()
Определения helper.php:11
static listImapDirs($mailbox, &$error=[], &$errors=null)
Определения helper.php:351
static cleanupMailboxAgent($id)
Определения helper.php:258
static getImapUnseenSyncForDir($mailbox=null, $dirPath, $mailboxID=null)
Определения helper.php:442
static getImapUIDsForSpecificDay($mailboxID, $dirPath='inbox', $internalDate)
Определения helper.php:382
static add($data)
Определения mailcounter.php:38
static deleteList(array $filter, array $messages=[], $limit=false, bool $sendEvent=true)
Определения mailmessageuid.php:113
static fetchOneOutcome($mailboxId)
Определения mailboxdirectory.php:86
static get($moduleId, $name, $default="", $siteId=false)
Определения option.php:30
static set($moduleId, $name, $value="", $siteId="")
Определения option.php:261
getHeaders()
Определения mail.php:599
$headers
Определения mail.php:48
getBody()
Определения mail.php:589
static getRow(array $parameters)
Определения datamanager.php:398
static getList(array $parameters=array())
Определения datamanager.php:431
static update($primary, array $data)
Определения datamanager.php:1256
static send()
Определения event.php:387
static getDomainUsers($token, $domain, &$error, $resync=false)
Определения domain2.php:193
static getImapData()
Определения domain2.php:10
$data['IS_AVAILABLE']
Определения .description.php:13
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
$result
Определения get_property_values.php:14
$errors
Определения iblock_catalog_edit.php:74
$filter
Определения iblock_catalog_list.php:54
const LANG_CHARSET
Определения include.php:65
$name
Определения menu_edit.php:35
Определения ufield.php:9
Определения address.php:8
$message
Определения payment.php:8
return false
Определения prolog_main_admin.php:185
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$dir
Определения quickway.php:303
$i
Определения factura.php:643
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$error
Определения subscription_card_product.php:20
$totalCount
Определения subscription_card_product.php:51
$k
Определения template_pdf.php:567
$fields
Определения yandex_run.php:501