Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/yandex.market/lib/ui/userfield/autocomplete/ |
Upload File : |
<?php namespace Yandex\Market\Ui\UserField\Autocomplete; use Bitrix\Main; use Yandex\Market; abstract class Field { public static function GetUserTypeDescription() { throw new Main\NotImplementedException(); } public static function GetDBColumnType($userField) { throw new Main\NotImplementedException(); } /** @return Market\Ui\UserField\Autocomplete\Provider */ public static function getDataProvider() { throw new Main\NotImplementedException(); } /** @return string */ public static function getLangKey() { throw new Main\NotImplementedException(); } public static function PrepareSettings($userField) { return []; } public static function GetSettingsHTML($userField, $htmlControl, $isVarsFromForm) { return ''; } public static function GetEditFormHTML($userField, $htmlControl) { global $APPLICATION; $controlId = preg_replace('/[^a-zA-Z0-9_]/i', 'x', $htmlControl['NAME'] . '_' . mt_rand(0, 10000)); $dataProvider = static::getDataProvider(); $langKey = static::getLangKey(); $isMultiple = false; $isGridMode = (isset($htmlControl['MODE']) && $htmlControl['MODE'] === 'list'); if (isset($userField['MULTIPLE']) && $userField['MULTIPLE'] === 'Y') { $isMultiple = true; $autoCompleteValueList = $dataProvider::getValueForAutoCompleteMulti($userField, $htmlControl['VALUE']); $autoCompleteValue = implode(PHP_EOL, $autoCompleteValueList); } else { $autoCompleteValue = $dataProvider::getValueForAutoComplete($userField, $htmlControl['VALUE']); } ob_start(); $APPLICATION->IncludeComponent( 'bitrix:main.lookup.input', 'ym_userfield', [ 'CONTROL_ID' => $controlId, 'INPUT_NAME' => $htmlControl['NAME'], 'INPUT_NAME_STRING' => 'inp_'.$htmlControl['NAME'], 'INPUT_VALUE_STRING' => $autoCompleteValue, 'START_TEXT' => $isGridMode ? '' : Market\Config::getLang($langKey . 'INPUT_INVITE'), 'MULTIPLE' => ($isMultiple ? 'Y' : 'N'), 'FILTER' => 'Y', 'PROVIDER' => $dataProvider, 'SIBLINGS_INIT' => ($isGridMode ? 'Y' : 'N'), ], null, [ 'HIDE_ICONS' => 'Y' ] ); return ob_get_clean(); } public static function GetEditFormHTMLMulty($userField, $htmlControl) { $userField['MULTIPLE'] = 'Y'; return static::GetEditFormHTML($userField, $htmlControl); } public static function GetFilterHTML($userField, $htmlControl) { global $APPLICATION; $dataProvider = static::getDataProvider(); $isMainUiFilter = (isset($htmlControl['FORM_NAME']) && $htmlControl['FORM_NAME'] === 'main-ui-filter'); $inputName = $htmlControl['NAME'] . ($isMainUiFilter ? '' : '[]'); $autoCompleteValueList = $dataProvider::GetValueForAutoCompleteMulti($userField, $htmlControl['VALUE']); $autoCompleteValue = implode(PHP_EOL, $autoCompleteValueList); ob_start(); $control_id = $APPLICATION->IncludeComponent( 'bitrix:main.lookup.input', 'ym_userfield', [ 'INPUT_NAME' => $inputName, 'INPUT_NAME_STRING' => 'inp_' . $inputName, 'INPUT_VALUE_STRING' => $autoCompleteValue, 'MULTIPLE' => $isMainUiFilter ? 'N' : 'Y', 'MAX_WIDTH' => '200', 'MIN_HEIGHT' => '24', 'MAIN_UI_FILTER' => ($isMainUiFilter ? 'Y' : 'N'), 'FILTER' => 'Y', 'PROVIDER' => $dataProvider ], null, [ 'HIDE_ICONS' => 'Y' ] ); ?> <script type="text/javascript"> var arClearHiddenFields = arClearHiddenFields; if (!!arClearHiddenFields) { indClearHiddenFields = arClearHiddenFields.length; arClearHiddenFields[indClearHiddenFields] = 'jsMLI_<?= $control_id; ?>'; } </script> <?php return ob_get_clean(); } public static function GetFilterData($userField, $htmlControl) { $dataProvider = static::getDataProvider(); $dataList = $dataProvider::getList(); $enum = []; foreach ($dataList as $row) { $enum[$row['ID']] = (str_repeat('.', $row['DEPTH_LEVEL'])) . $row['NAME']; } return [ 'id' => $htmlControl['ID'], 'name' => $htmlControl['NAME'], 'type' => 'list', 'items' => $enum, 'params' => array('multiple' => 'Y'), 'filterable' => '', ]; } public static function GetAdminListViewHTML($userField, $htmlControl) { $dataProvider = static::getDataProvider(); $autoCompleteValueList = $dataProvider::getValueForAutoCompleteMulti($userField, $htmlControl['VALUE']); return implode(' / ', $autoCompleteValueList); } public static function GetAdminListEditHtmlMulty($userField, $htmlControl) { $userField['MULTIPLE'] = 'Y'; $htmlControl['MODE'] = 'list'; return static::GetEditFormHTML($userField, $htmlControl); } public static function GetAdminListEditHtml($userField, $htmlControl) { $htmlControl['MODE'] = 'list'; return static::GetEditFormHTML($userField, $htmlControl); } }