1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
landing.php
См. документацию.
1<?php
2namespace Bitrix\Landing\PublicAction;
3
4use Bitrix\Landing\Hook;
5use Bitrix\Landing\Manager;
6use Bitrix\Landing\File;
7use Bitrix\Landing\Folder;
8use Bitrix\Landing\Metrika;
9use Bitrix\Landing\Site;
10use Bitrix\Landing\Block as BlockCore;
11use Bitrix\Landing\TemplateRef;
12use Bitrix\Landing\Landing as LandingCore;
13use Bitrix\Landing\PublicActionResult;
14use Bitrix\Landing\Internals\HookDataTable;
15use Bitrix\Landing\History;
16use Bitrix\Main\Localization\Loc;
17
18Loc::loadMessages(__FILE__);
19
21{
27 protected static function clearDisallowFields(array $fields)
28 {
29 $disallow = ['RULE', 'TPL_CODE', 'ACTIVE', 'INITIATOR_APP_CODE', 'VIEWS'];
30
31 if (is_array($fields))
32 {
33 foreach ($fields as $k => $v)
34 {
35 if (in_array($k, $disallow))
36 {
37 unset($fields[$k]);
38 }
39 }
40 }
41
42 return $fields;
43 }
44
50 public static function getPreview($lid)
51 {
53 $landing = LandingCore::createInstance($lid, [
54 'skip_blocks' => true
55 ]);
56
57 if ($landing->exist())
58 {
59 $result->setResult($landing->getPreview());
60 }
61 $result->setError($landing->getError());
62
63 return $result;
64 }
65
71 public static function getPublicUrl($lid)
72 {
74 $landing = LandingCore::createInstance($lid, [
75 'skip_blocks' => true
76 ]);
77
78 if ($landing->exist())
79 {
80 $result->setResult(
81 $landing->getPublicUrl()
82 );
83 }
84 $result->setError($landing->getError());
85
86 return $result;
87 }
88
95 public static function resolveIdByPublicUrl(string $landingUrl, int $siteId): PublicActionResult
96 {
98 $result->setResult(LandingCore::resolveIdByPublicUrl($landingUrl, $siteId));
99 return $result;
100 }
101
107 public static function getAdditionalFields($lid)
108 {
110 $landing = LandingCore::createInstance($lid, [
111 'skip_blocks' => true
112 ]);
113
114 if ($landing->exist())
115 {
116 $fields = $landing->getAdditionalFields($landing->getId());
117 foreach ($fields as $key => $field)
118 {
119 $fields[$key] = $field->getValue();
120 if (!$fields[$key])
121 {
122 unset($fields[$key]);
123 }
124 }
125 $result->setResult(
126 $fields
127 );
128 }
129 $result->setError($landing->getError());
130
131 return $result;
132 }
133
139 public static function publication($lid)
140 {
142 $landing = LandingCore::createInstance($lid, [
143 'skip_blocks' => true
144 ]);
145
146 if ($landing->exist())
147 {
148 $metrikaParams = new Metrika\FieldsDto(
149 type: Metrika\Types::template,
150 subSection: 'from_editor',
151 element: 'auto',
152 );
153 if ($landing->publication(null, $metrikaParams))
154 {
155 $result->setResult(true);
156 }
157 }
158
159 $result->setError($landing->getError());
160
161 return $result;
162 }
163
169 public static function unpublic($lid)
170 {
172 $landing = LandingCore::createInstance($lid, [
173 'skip_blocks' => true
174 ]);
175
176 if ($landing->exist())
177 {
178 $result->setResult(
179 $landing->unpublic()
180 );
181 }
182
183 $result->setError($landing->getError());
184
185 return $result;
186 }
187
195 public static function addBlock($lid, array $fields, bool $preventHistory = false)
196 {
197 LandingCore::setEditMode();
198 Hook::setEditMode(true);
199
201 $landing = LandingCore::createInstance($lid);
202 if ($landing->exist())
203 {
204 $data = array(
205 'PUBLIC' => 'N',
206 );
207 if (isset($fields['ACTIVE']))
208 {
209 $data['ACTIVE'] = $fields['ACTIVE'];
210 }
211 if (isset($fields['CONTENT']))
212 {
213 $data['CONTENT'] = Manager::sanitize(
214 $fields['CONTENT'],
215 $bad
216 );
217 }
218 // sort
219 if (isset($fields['AFTER_ID']))
220 {
221 $blocks = $landing->getBlocks();
222 if (isset($blocks[$fields['AFTER_ID']]))
223 {
224 $data['SORT'] = $blocks[$fields['AFTER_ID']]->getSort() + 1;
225 }
226 }
227 else
228 {
229 $data['SORT'] = -1;
230 }
231 $preventHistory ? History::deactivate() : History::activate();
232 $newBlockId = $landing->addBlock($fields['CODE'] ?? '', $data, true);
233 $landing->resortBlocks();
234
235 // want return content ob block
236 if (
237 isset($fields['RETURN_CONTENT']) &&
238 $fields['RETURN_CONTENT'] == 'Y'
239 )
240 {
241 $return = BlockCore::getBlockContent($newBlockId, true);
242 }
243 else
244 {
245 $return = $newBlockId;
246 }
247 $result->setResult($return);
248 }
249 $result->setError($landing->getError());
250 return $result;
251 }
252
259 public static function deleteBlock($lid, $block)
260 {
261 LandingCore::setEditMode();
262
264 $landing = LandingCore::createInstance($lid);
265 if ($landing->exist())
266 {
267 $result->setResult($landing->deleteBlock($block));
268 $landing->resortBlocks();
269 }
270 $result->setError($landing->getError());
271 return $result;
272 }
273
282 public static function markDeletedBlock(int $lid, int $block, bool $mark = true, bool $preventHistory = false): PublicActionResult
283 {
284 LandingCore::setEditMode();
285
287 $landing = LandingCore::createInstance($lid);
288 if ($landing->exist())
289 {
290 $preventHistory ? History::deactivate() : History::activate();
291 $result->setResult(
292 $landing->markDeletedBlock($block, $mark)
293 );
294 $landing->resortBlocks();
295 }
296 $result->setError($landing->getError());
297 return $result;
298 }
299
307 public static function markUnDeletedBlock(int $lid, int $block, bool $preventHistory = false): PublicActionResult
308 {
309 return self::markDeletedBlock($lid, $block, false, $preventHistory);
310 }
311
319 private static function sort(int $lid, int $block, string $action): PublicActionResult
320 {
322 $landing = LandingCore::createInstance($lid);
323 if ($landing->exist())
324 {
325 if ($action === 'up')
326 {
327 $result->setResult($landing->upBlock($block));
328 }
329 else
330 {
331 $result->setResult($landing->downBlock($block));
332 }
333 if ($landing->getError()->isEmpty())
334 {
335 $landing->resortBlocks();
336 }
337 }
338 $result->setError($landing->getError());
339
340 return $result;
341 }
342
350 public static function upBlock(int $lid, int $block, bool $preventHistory = false): PublicActionResult
351 {
352 LandingCore::setEditMode();
353 $preventHistory ? History::deactivate() : History::activate();
354
355 return self::sort($lid, $block, 'up');
356 }
357
365 public static function downBlock(int $lid, int $block, bool $preventHistory = false): PublicActionResult
366 {
367 LandingCore::setEditMode();
368 $preventHistory ? History::deactivate() : History::activate();
369
370 return self::sort($lid, $block, 'down');
371 }
372
380 public static function favoriteBlock(int $lid, int $block, array $meta = []): PublicActionResult
381 {
383 LandingCore::setEditMode();
384 $landing = LandingCore::createInstance($lid);
385 if ($landing->exist())
386 {
387 $result->setResult($landing->favoriteBlock($block, $meta));
388 }
389 $result->setError($landing->getError());
390 return $result;
391 }
392
398 public static function unFavoriteBlock(int $blockId): PublicActionResult
399 {
401 LandingCore::setEditMode();
402 $landing = LandingCore::createInstance(0);
403 $delResult = $landing->unFavoriteBlock($blockId);
404 if ($delResult)
405 {
406 $result->setResult($delResult);
407 }
408 else
409 {
410 $result->setError($landing->getError());
411 }
412 return $result;
413 }
414
422 private static function activate($lid, $block, $action)
423 {
425 $landing = LandingCore::createInstance($lid);
426 if ($landing->exist())
427 {
428 if ($action == 'show')
429 {
430 $result->setResult($landing->showBlock($block));
431 }
432 else
433 {
434 $result->setResult($landing->hideBlock($block));
435 }
436 }
437 $result->setError($landing->getError());
438 return $result;
439 }
440
447 public static function showBlock($lid, $block)
448 {
449 LandingCore::setEditMode();
450 return self::activate($lid, $block, 'show');
451 }
452
459 public static function hideBlock($lid, $block)
460 {
461 LandingCore::setEditMode();
462 return self::activate($lid, $block, 'hide');
463 }
464
472 private static function changeParentOfBlock($lid, $block, array $params): PublicActionResult
473 {
475 $landing = LandingCore::createInstance($lid);
476 $afterId = (int)($params['AFTER_ID'] ?? 0);
477 if ($landing->exist())
478 {
479 if ($params['MOVE'])
480 {
481 $res = $landing->moveBlock((int)$block, $afterId);
482 }
483 else
484 {
485 $res = $landing->copyBlock((int)$block, $afterId);
486 }
487
488 if ($res)
489 {
490 if (
491 isset($params['RETURN_CONTENT']) &&
492 $params['RETURN_CONTENT'] == 'Y'
493 )
494 {
495 $result->setResult(array(
496 'result' => $res > 0,
497 'content' => BlockCore::getBlockContent($res, true)
498 ));
499 }
500 else
501 {
502 $result->setResult($res);
503 }
504 }
505 }
506 $result->setError($landing->getError());
507
508 return $result;
509 }
510
518 public static function copyBlock($lid, $block, array $params = array())
519 {
520 if (!is_array($params))
521 {
522 $params = array();
523 }
524 $params['MOVE'] = false;
525 LandingCore::setEditMode();
526 return self::changeParentOfBlock($lid, $block, $params);
527 }
528
536 public static function moveBlock($lid, $block, array $params = array())
537 {
538 if (!is_array($params))
539 {
540 $params = array();
541 }
542 $params['MOVE'] = true;
543 LandingCore::setEditMode();
544 return self::changeParentOfBlock($lid, $block, $params);
545 }
546
553 public static function removeEntities($lid, array $data)
554 {
556
557 LandingCore::setEditMode();
558 $landing = LandingCore::createInstance($lid);
559
560 if ($landing->exist())
561 {
562 $blocks = $landing->getBlocks();
563 if (isset($data['blocks']) && is_array($data['blocks']))
564 {
565 foreach ($data['blocks'] as $block)
566 {
567 self::deleteBlock($lid, $block);
568 unset($blocks[$block]);
569 }
570 }
571 if (isset($data['images']) && is_array($data['images']))
572 {
573 foreach ($data['images'] as $item)
574 {
575 if (isset($blocks[$item['block']]))
576 {
577 File::deleteFromBlock($item['block'], $item['image']);
578 }
579 }
580 }
581 $result->setResult(true);
582 }
583
584 $result->setError($landing->getError());
585
586 return $result;
587 }
588
594 public static function getList(array $params = []): PublicActionResult
595 {
597 $params = $result->sanitizeKeys($params);
598 $landingFake = LandingCore::createInstance(0);
599 $getPreview = false;
600 $getUrls = false;
601 $checkArea = false;
602
603 if ($params['filter']['SITE_ID'] ?? null)
604 {
605 $siteId = $params['filter']['SITE_ID'];
606 if (is_array($siteId))
607 {
608 $siteId = array_shift($siteId);
609 }
610 $params['filter'][] = [
611 'LOGIC' => 'OR',
612 ['FOLDER_ID' => null],
613 ['!FOLDER_ID' => Folder::getFolderIdsForSite($siteId, ['=DELETED' => 'Y']) ?: [-1]]
614 ];
615 }
616
617 if (isset($params['get_preview']))
618 {
619 $getPreview = !!$params['get_preview'];
620 unset($params['get_preview']);
621 }
622
623 if (isset($params['get_urls']))
624 {
625 $getUrls = !!$params['get_urls'];
626 unset($params['get_urls']);
627 }
628
629 if (isset($params['check_area']))
630 {
631 $checkArea = !!$params['check_area'];
632 unset($params['check_area']);
633 }
634
635 if (isset($params['filter']['CHECK_PERMISSIONS']))
636 {
637 unset($params['filter']['CHECK_PERMISSIONS']);
638 }
639
640 $data = [];
641 $rows = [];
642 $publicUrls = [];
643
644 $params['select'] = $params['select'] ?? ['*'];
645 $params['select']['DOMAIN_ID'] = 'SITE.DOMAIN_ID';
647 while ($row = $res->fetch())
648 {
649 $rows[$row['ID']] = $row;
650 }
651
652 if ($getPreview || $getUrls)
653 {
654 $publicUrls = LandingCore::createInstance(0)->getPublicUrl(array_keys($rows));
655 }
656
657 foreach ($rows as $row)
658 {
659 if (isset($row['DATE_CREATE']))
660 {
661 $row['DATE_CREATE'] = (string) $row['DATE_CREATE'];
662 }
663 if (isset($row['DATE_MODIFY']))
664 {
665 $row['DATE_MODIFY'] = (string) $row['DATE_MODIFY'];
666 }
667 if ($getUrls && isset($row['ID']))
668 {
669 $row['PUBLIC_URL'] = $publicUrls[$row['ID']];
670 }
671 if ($getPreview && isset($row['ID']))
672 {
673 if ($row['DOMAIN_ID'] == 0)
674 {
675 \Bitrix\Landing\Hook::setEditMode(true);
676 }
677 $row['PREVIEW'] = $landingFake->getPreview(
678 $row['ID'],
679 $row['DOMAIN_ID'] == 0,
680 $publicUrls[$row['ID']]
681 );
682 }
683 if ($checkArea && isset($row['ID']))
684 {
685 $data[$row['ID']] = $row;
686 }
687 else
688 {
689 $checkArea = false;
690 $data[] = $row;
691 }
692 }
693
694 // landing is area?
695 if ($checkArea)
696 {
698 array_keys($data)
699 );
700 foreach ($areas as $lid => $isA)
701 {
702 $data[$lid]['IS_AREA'] = $isA;
703 }
704 }
705
706 $result->setResult(array_values($data));
707
708 return $result;
709 }
710
717 protected static function checkAddingInMenu(array $fields, ?bool &$willAdded = null): array
718 {
719 $blockId = null;
720 $menuCode = null;
721
722 if (isset($fields['BLOCK_ID']))
723 {
724 $blockId = (int)$fields['BLOCK_ID'];
725 unset($fields['BLOCK_ID']);
726 }
727 if (isset($fields['MENU_CODE']))
728 {
729 $menuCode = $fields['MENU_CODE'];
730 unset($fields['MENU_CODE']);
731 }
732
733 if (!$blockId || !$menuCode || !is_string($menuCode))
734 {
735 return $fields;
736 }
737
738 $willAdded = true;
739
740 LandingCore::callback('OnAfterAdd',
741 function(\Bitrix\Main\Event $event) use ($blockId, $menuCode)
742 {
743 $primary = $event->getParameter('primary');
744 $fields = $event->getParameter('fields');
745
746 if ($primary)
747 {
748 $landingId = BlockCore::getLandingIdByBlockId($blockId);
749 if ($landingId)
750 {
751 $updateData = [
752 $menuCode => [
753 [
754 'text' => $fields['TITLE'],
755 'href' => '#landing' . $primary['ID']
756 ]
757 ]
758 ];
760 $landingId,
761 $blockId,
762 $updateData,
763 ['appendMenu' => true]
764 );
765 }
766 }
767 }
768 );
769
770
771 return $fields;
772 }
773
779 public static function add(array $fields)
780 {
782 $error = new \Bitrix\Landing\Error;
783
784 $fields = self::clearDisallowFields($fields);
785 $fields['ACTIVE'] = 'N';
786
787 $fields = self::checkAddingInMenu($fields);
788
790
791 if ($res->isSuccess())
792 {
793 $result->setResult($res->getId());
794 }
795 else
796 {
797 $error->addFromResult($res);
798 $result->setError($error);
799 }
800
801 return $result;
802 }
803
811 public static function addByTemplate($siteId, $code, array $fields = [])
812 {
814 $error = new \Bitrix\Landing\Error;
815
816 $willAdded = false;
817 $siteId = intval($siteId);
818 $fields = self::checkAddingInMenu($fields, $willAdded);
819
820 $res = LandingCore::addByTemplate($siteId, $code, $fields);
821
822 if ($res->isSuccess())
823 {
824 $result->setResult($res->getId());
825 if (
826 !$willAdded &&
827 isset($fields['ADD_IN_MENU']) &&
828 isset($fields['TITLE']) &&
829 $fields['ADD_IN_MENU'] == 'Y'
830 )
831 {
832 Site::addLandingToMenu($siteId, [
833 'ID' => $res->getId(),
834 'TITLE' => $fields['TITLE']
835 ]);
836 }
837 }
838 else
839 {
840 $error->addFromResult($res);
841 $result->setError($error);
842 }
843
844 return $result;
845 }
846
853 public static function update($lid, array $fields)
854 {
856 $error = new \Bitrix\Landing\Error;
857
858 $fields = self::clearDisallowFields($fields);
859
861
862 if ($res->isSuccess())
863 {
864 $result->setResult(true);
865 }
866 else
867 {
868 $error->addFromResult($res);
869 $result->setError($error);
870 }
871
872 return $result;
873 }
874
880 public static function delete($lid)
881 {
883 $error = new \Bitrix\Landing\Error;
884
886
887 if ($res->isSuccess())
888 {
889 $result->setResult(true);
890 }
891 else
892 {
893 $error->addFromResult($res);
894 $result->setError($error);
895 }
896
897 return $result;
898 }
899
907 public static function move(int $lid, ?int $toSiteId = null, ?int $toFolderId = null): PublicActionResult
908 {
910 $landing = LandingCore::createInstance($lid);
911 $result->setResult($landing->move($toSiteId ?: null, $toFolderId ?: null));
912 $result->setError($landing->getError());
913 return $result;
914 }
915
924 public static function copy(int $lid, ?int $toSiteId = null, ?int $toFolderId = null, bool $skipSystem = false): PublicActionResult
925 {
927
928 LandingCore::disableCheckDeleted();
929 $landing = LandingCore::createInstance($lid);
930 $result->setResult($landing->copy($toSiteId ?: null, $toFolderId ?: null, false, Utils::isTrue($skipSystem)));
931 $result->setError($landing->getError());
932 LandingCore::enableCheckDeleted();
933
934 return $result;
935 }
936
943 public static function markDelete($lid, $mark = true)
944 {
946 $error = new \Bitrix\Landing\Error;
947
948 if ($mark)
949 {
950 $res = LandingCore::markDelete($lid);
951 }
952 else
953 {
954 $res = LandingCore::markUnDelete($lid);
955 }
956 if ($res->isSuccess())
957 {
958 $result->setResult($res->getId());
959 }
960 else
961 {
962 $error->addFromResult($res);
963 $result->setError($error);
964 }
965
966 return $result;
967 }
968
974 public static function markUnDelete($lid)
975 {
976 return self::markDelete($lid, false);
977 }
978
987 public static function uploadFile($lid, $picture, $ext = false, array $params = array())
988 {
989 static $internal = true;
990 static $mixedParams = ['picture'];
991
993 $error = new \Bitrix\Landing\Error;
994 $lid = intval($lid);
995
996 $landing = LandingCore::createInstance($lid, [
997 'skip_blocks' => true
998 ]);
999
1000 if ($landing->exist())
1001 {
1002 $file = Manager::savePicture($picture, $ext, $params);
1003 if ($file)
1004 {
1005 File::addToLanding($lid, $file['ID']);
1006 $result->setResult(array(
1007 'id' => $file['ID'],
1008 'src' => $file['SRC']
1009 ));
1010 }
1011 else
1012 {
1013 $error->addError(
1014 'FILE_ERROR',
1015 Loc::getMessage('LANDING_FILE_ERROR')
1016 );
1017 $result->setError($error);
1018 }
1019 }
1020
1021 $result->setError($landing->getError());
1022
1023 return $result;
1024 }
1025
1032 public static function updateHead($lid, $content)
1033 {
1034 static $internal = true;
1035
1036 $lid = intval($lid);
1038 $landing = LandingCore::createInstance($lid, [
1039 'skip_blocks' => true
1040 ]);
1041 $result->setResult(false);
1042
1043 if ($landing->exist())
1044 {
1045 // fix module security
1046 $content = str_replace('<st yle', '<style', $content);
1047 $content = str_replace('<li nk ', '<link ', $content);
1048
1049 $fields = array(
1050 'ENTITY_ID' => $lid,
1051 'ENTITY_TYPE' => \Bitrix\Landing\Hook::ENTITY_TYPE_LANDING,
1052 'HOOK' => 'FONTS',
1053 'CODE' => 'CODE',
1054 'PUBLIC' => 'N'
1055 );
1056 $res = HookDataTable::getList(array(
1057 'select' => array(
1058 'ID', 'VALUE'
1059 ),
1060 'filter' => $fields
1061 ));
1062 if ($row = $res->fetch())
1063 {
1064 $existsContent = $row['VALUE'];
1065
1066 // concat new fonts to the exists
1067 $found = preg_match_all(
1068 '#(<noscript>.*?<style.*?data-id="([^"]+)"[^>]*>[^<]+</style>)#is',
1069 $content,
1070 $newFonts
1071 );
1072 if ($found)
1073 {
1074 foreach ($newFonts[1] as $i => $newFont)
1075 {
1076 if (mb_strpos($existsContent, '"' . $newFonts[2][$i] . '"') === false)
1077 {
1078 $existsContent .= $newFont;
1079 }
1080 }
1081 }
1082
1083 if ($existsContent != $row['VALUE'])
1084 {
1085 HookDataTable::update(
1086 $row['ID'],
1087 ['VALUE' => $existsContent]
1088 );
1089 }
1090 }
1091 else
1092 {
1093 $fields['VALUE'] = $content;
1094 HookDataTable::add($fields);
1095 }
1096
1097 if (Manager::getOption('public_hook_on_save') === 'Y')
1098 {
1099 Hook::setEditMode();
1100 Hook::publicationLanding($landing->getId());
1101 }
1102
1103 $result->setResult(true);
1104 }
1105
1106 $result->setError($landing->getError());
1107
1108 return $result;
1109 }
1110}
static addToLanding($lid, $fileId)
Определения file.php:266
static deleteFromBlock($blockId, $fileId=array())
Определения file.php:363
static getFolderIdsForSite(int $siteId, array $additionalFilter=[])
Определения folder.php:109
static callback($code, $callback)
Определения base.php:168
static getOption($code, $default=null)
Определения manager.php:160
static sanitize($value, &$bad=false, $splitter=' ')
Определения manager.php:1310
static savePicture($file, $ext=false, $params=array())
Определения manager.php:590
static updateNodes($lid, $block, array $data, array $additional=array(), bool $preventHistory=false)
Определения block.php:330
static unpublic($lid)
Определения landing.php:169
static removeEntities($lid, array $data)
Определения landing.php:553
static copy(int $lid, ?int $toSiteId=null, ?int $toFolderId=null, bool $skipSystem=false)
Определения landing.php:924
static showBlock($lid, $block)
Определения landing.php:447
static updateHead($lid, $content)
Определения landing.php:1032
static addByTemplate($siteId, $code, array $fields=[])
Определения landing.php:811
static copyBlock($lid, $block, array $params=array())
Определения landing.php:518
static update($lid, array $fields)
Определения landing.php:853
static markUnDeletedBlock(int $lid, int $block, bool $preventHistory=false)
Определения landing.php:307
static unFavoriteBlock(int $blockId)
Определения landing.php:398
static getPublicUrl($lid)
Определения landing.php:71
static checkAddingInMenu(array $fields, ?bool &$willAdded=null)
Определения landing.php:717
static getList(array $params=[])
Определения landing.php:594
static getPreview($lid)
Определения landing.php:50
static hideBlock($lid, $block)
Определения landing.php:459
static clearDisallowFields(array $fields)
Определения landing.php:27
static markDelete($lid, $mark=true)
Определения landing.php:943
static downBlock(int $lid, int $block, bool $preventHistory=false)
Определения landing.php:365
static addBlock($lid, array $fields, bool $preventHistory=false)
Определения landing.php:195
static uploadFile($lid, $picture, $ext=false, array $params=array())
Определения landing.php:987
static publication($lid)
Определения landing.php:139
static getAdditionalFields($lid)
Определения landing.php:107
static resolveIdByPublicUrl(string $landingUrl, int $siteId)
Определения landing.php:95
static upBlock(int $lid, int $block, bool $preventHistory=false)
Определения landing.php:350
static favoriteBlock(int $lid, int $block, array $meta=[])
Определения landing.php:380
static move(int $lid, ?int $toSiteId=null, ?int $toFolderId=null)
Определения landing.php:907
static add(array $fields)
Определения landing.php:779
static moveBlock($lid, $block, array $params=array())
Определения landing.php:536
static deleteBlock($lid, $block)
Определения landing.php:259
static markUnDelete($lid)
Определения landing.php:974
static markDeletedBlock(int $lid, int $block, bool $mark=true, bool $preventHistory=false)
Определения landing.php:282
static isTrue($value)
Определения utils.php:437
static landingIsArea(int|array $lid)
Определения templateref.php:165
static update($primary, array $data)
Определения file.php:228
static getList(array $parameters=array())
Определения datamanager.php:431
$content
Определения commerceml.php:144
$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
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
Определения options.php:195
$siteId
Определения ajax.php:8
Определения agent.php:3
Определения buffer.php:3
$event
Определения prolog_after.php:141
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
$rows
Определения options.php:264
$error
Определения subscription_card_product.php:20
$k
Определения template_pdf.php:567
$action
Определения file_dialog.php:21
$fields
Определения yandex_run.php:501