1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
get_property_values.php
См. документацию.
1<?php
4const STOP_STATISTICS = true;
5const PUBLIC_AJAX_MODE = true;
6
11
12require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_before.php');
13
15$request = Main\Context::getCurrent()->getRequest();
16
17if (check_bitrix_sessid() && $request->isPost() && Loader::includeModule('iblock'))
18{
19 $propertyId = (int)$request->get('propertyId');
20 if ($propertyId > 0)
21 {
22 $property = Iblock\PropertyTable::getList(array(
23 'select' => array('ID', 'PROPERTY_TYPE', 'USER_TYPE', 'USER_TYPE_SETTINGS'),
24 'filter' => array('=ID' => $propertyId)
25 ))->fetch();
26 if (!empty($property))
27 {
28 $property['USER_TYPE'] = (string)$property['USER_TYPE'];
29 if ($property['USER_TYPE'] != '')
30 {
31 if (!is_array($property['USER_TYPE_SETTINGS']))
32 {
33 $property['USER_TYPE_SETTINGS'] = (string)$property['USER_TYPE_SETTINGS'];
34 if (CheckSerializedData($property['USER_TYPE_SETTINGS']))
35 $property['USER_TYPE_SETTINGS'] = unserialize($property['USER_TYPE_SETTINGS'], ['allowed_classes' => false]);
36 if (!is_array($property['USER_TYPE_SETTINGS']))
37 $property['USER_TYPE_SETTINGS'] = array();
38 }
39 }
40
41 if ($property['PROPERTY_TYPE'] === Iblock\PropertyTable::TYPE_STRING && $property['USER_TYPE'] === 'directory')
42 {
43 if (Loader::includeModule('highloadblock') && !empty($property['USER_TYPE_SETTINGS']['TABLE_NAME']))
44 {
45 $hlBlock = HighloadBlockTable::getList(array(
46 'filter' => array('=TABLE_NAME' => $property['USER_TYPE_SETTINGS']['TABLE_NAME'])
47 ))->fetch();
48 if (!empty($hlBlock))
49 {
50 $entity = HighloadBlockTable::compileEntity($hlBlock);
51
52 $fieldsList = $entity->getFields();
53 $sortExist = isset($fieldsList['UF_SORT']);
54 $directorySelect = array('ID', 'UF_NAME', 'UF_XML_ID');
55 $directoryOrder = array();
56 if ($sortExist)
57 {
58 $directorySelect[] = 'UF_SORT';
59 $directoryOrder['UF_SORT'] = 'ASC';
60 }
61 $directoryOrder['UF_NAME'] = 'ASC';
62
63 $entityDataClass = $entity->getDataClass();
64 $iterator = $entityDataClass::getList(array(
65 'select' => $directorySelect,
66 'order' => $directoryOrder
67 ));
68 while ($row = $iterator->fetch())
69 {
70 $result[] = array(
71 'value' => $row['UF_XML_ID'],
72 'label' => $row['UF_NAME']
73 );
74 }
75 unset($row, $iterator);
76 }
77 }
78 }
79 elseif ($property['PROPERTY_TYPE'] === Iblock\PropertyTable::TYPE_LIST)
80 {
81 $iterator = Iblock\PropertyEnumerationTable::getList([
82 'select' => ['*'],
83 'filter' => [
84 '=PROPERTY_ID' => $propertyId,
85 ],
86 'order' => [
87 'DEF' => 'DESC',
88 'SORT' => 'ASC',
89 'VALUE' => 'ASC',
90 ]
91 ]);
92 while ($row = $iterator->fetch())
93 {
94 $result[] = array(
95 'value' => $row['ID'],
96 'label' => $row['VALUE']
97 );
98 }
99 unset($row, $iterator);
100 }
101 }
102 unset($property);
103 }
104}
105
106$APPLICATION->RestartBuffer();
107header('Content-Type: application/json');
109require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_admin_after.php');
global $APPLICATION
Определения include.php:80
const PUBLIC_AJAX_MODE
Определения catalog_reindex.php:6
if(!Loader::includeModule('catalog')) if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_PRICE_EDIT)) if(!check_bitrix_sessid()) $request
Определения catalog_reindex.php:36
Определения loader.php:13
static encode($data, $options=null)
Определения json.php:22
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
const STOP_STATISTICS
Определения froogle_util.php:2
$result
Определения get_property_values.php:14
$entity
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
CheckSerializedData($str, $max_depth=200)
Определения tools.php:4949
check_bitrix_sessid($varname='sessid')
Определения tools.php:4686
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$iterator
Определения yandex_run.php:610