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/rospirotorg.ru/bitrix/modules/iblock/classes/general/ |
Upload File : |
<?php use Bitrix\Main\Localization\Loc; use Bitrix\Iblock; class CIBlockPropertySKU extends CIBlockPropertyElementAutoComplete { /** @deprecated */ public const USER_TYPE = Iblock\PropertyTable::USER_TYPE_SKU; public static function GetUserTypeDescription() { return [ 'PROPERTY_TYPE' => Iblock\PropertyTable::TYPE_ELEMENT, 'USER_TYPE' => Iblock\PropertyTable::USER_TYPE_SKU, 'DESCRIPTION' => Loc::getMessage('BT_UT_SKU_DESCRIPTION'), 'GetPropertyFieldHtml' => [__CLASS__, 'GetPropertyFieldHtml'], 'GetPropertyFieldHtmlMulty' => [__CLASS__, 'GetPropertyFieldHtml'], 'GetPublicViewHTML' => [__CLASS__, 'GetPublicViewHTML'], 'GetPublicEditHTML' => [__CLASS__, 'GetPublicEditHTML'], 'GetAdminListViewHTML' => [__CLASS__,'getAdminListViewHTMLExtended'], 'GetAdminFilterHTML' => [__CLASS__,'GetAdminFilterHTML'], 'GetSettingsHTML' => [__CLASS__,'GetSettingsHTML'], 'PrepareSettings' => [__CLASS__,'PrepareSettings'], 'AddFilterFields' => [__CLASS__,'AddFilterFields'], 'GetUIFilterProperty' => [__CLASS__, 'GetUIFilterProperty'], 'GetUIEntityEditorProperty' => [__CLASS__, 'GetUIEntityEditorProperty'], 'GetUIEntityEditorPropertyEditHtml' => [__CLASS__, 'GetUIEntityEditorPropertyEditHtml'], 'GetUIEntityEditorPropertyViewHtml' => [__CLASS__, 'GetUIEntityEditorPropertyViewHtml'], ]; } public static function PrepareSettings($arFields) { /* * VIEW - view type * SHOW_ADD - show button for add new values in linked iblock * MAX_WIDTH - max width textarea and input in pixels * MIN_HEIGHT - min height textarea in pixels * MAX_HEIGHT - max height textarea in pixels * BAN_SYM - banned symbols string * REP_SYM - replace symbol * OTHER_REP_SYM - non standart replace symbol * IBLOCK_MESS - get lang mess from linked iblock * remove SHOW_ADD manage */ $arResult = parent::PrepareSettings($arFields); $arResult['SHOW_ADD'] = 'N'; $arFields['USER_TYPE_SETTINGS'] = $arResult; $arFields['MULTIPLE'] = 'N'; return $arFields; } public static function GetSettingsHTML($arFields,$strHTMLControlName, &$arPropertyFields) { $arPropertyFields = array( "HIDE" => array("ROW_COUNT", "COL_COUNT", "MULTIPLE_CNT", "MULTIPLE"), "SET" => array("MULTIPLE" => "N"), 'USER_TYPE_SETTINGS_TITLE' => Loc::getMessage('BT_UT_SKU_SETTING_TITLE'), ); $arSettings = static::PrepareSettings($arFields); if (isset($arSettings['USER_TYPE_SETTINGS'])) $arSettings = $arSettings['USER_TYPE_SETTINGS']; $strResult = '<tr> <td>'.Loc::getMessage('BT_UT_SKU_SETTING_VIEW').'</td> <td>'.SelectBoxFromArray($strHTMLControlName["NAME"].'[VIEW]', static::GetPropertyViewsList(true),htmlspecialcharsbx($arSettings['VIEW'])).'</td> </tr> <tr> <td>'.Loc::getMessage('BT_UT_SKU_SETTING_MAX_WIDTH').'</td> <td><input type="text" name="'.$strHTMLControlName["NAME"].'[MAX_WIDTH]" value="'.intval($arSettings['MAX_WIDTH']).'"> '.Loc::getMessage('BT_UT_SKU_SETTING_COMMENT_MAX_WIDTH').'</td> </tr> <tr> <td>'.Loc::getMessage('BT_UT_SKU_SETTING_MIN_HEIGHT').'</td> <td><input type="text" name="'.$strHTMLControlName["NAME"].'[MIN_HEIGHT]" value="'.intval($arSettings['MIN_HEIGHT']).'"> '.Loc::getMessage('BT_UT_SKU_SETTING_COMMENT_MIN_HEIGHT').'</td> </tr> <tr> <td>'.Loc::getMessage('BT_UT_SKU_SETTING_MAX_HEIGHT').'</td> <td><input type="text" name="'.$strHTMLControlName["NAME"].'[MAX_HEIGHT]" value="'.intval($arSettings['MAX_HEIGHT']).'"> '.Loc::getMessage('BT_UT_SKU_SETTING_COMMENT_MAX_HEIGHT').'</td> </tr> <tr> <td>'.Loc::getMessage('BT_UT_SKU_SETTING_BAN_SYMBOLS').'</td> <td><input type="text" name="'.$strHTMLControlName["NAME"].'[BAN_SYM]" value="'.htmlspecialcharsbx($arSettings['BAN_SYM']).'"></td> </tr> <tr> <td>'.Loc::getMessage('BT_UT_SKU_SETTING_REP_SYMBOL').'</td> <td>'.SelectBoxFromArray($strHTMLControlName["NAME"].'[REP_SYM]', static::GetReplaceSymList(true),htmlspecialcharsbx($arSettings['REP_SYM'])).' <input type="text" name="'.$strHTMLControlName["NAME"].'[OTHER_REP_SYM]" size="1" maxlength="1" value="'.htmlspecialcharsbx($arSettings['OTHER_REP_SYM']).'"></td> </tr>'; return $strResult; } public static function GetPublicViewHTML($arProperty, $arValue, $strHTMLControlName) { $elementId = (int)($arValue['VALUE'] ?? 0); $element = self::getElement($elementId); if (!$element) { return ''; } $viewMode = ''; $resultKey = ''; if (!empty($strHTMLControlName['MODE'])) { switch ($strHTMLControlName['MODE']) { case 'CSV_EXPORT': $viewMode = 'CSV_EXPORT'; $resultKey = 'ID'; break; case 'EXTERNAL_ID': $viewMode = 'EXTERNAL_ID'; $resultKey = 'XML_ID'; break; case 'SIMPLE_TEXT': $viewMode = 'SIMPLE_TEXT'; $resultKey = 'NAME'; break; case 'ELEMENT_TEMPLATE': $viewMode = 'ELEMENT_TEMPLATE'; $resultKey = 'NAME'; break; } } if ($viewMode !== '' && $resultKey !== '') { return $element[$resultKey]; } return htmlspecialcharsbx($element['NAME']) . ' [' . $elementId . ']'; } public static function getAdminListViewHTMLExtended(array $property, array $value, $control): string { $result = ''; if ($value['VALUE']) { $isPublicMode = (defined("PUBLIC_MODE") && (int)PUBLIC_MODE === 1); if ($isPublicMode) { $result .= self::GetPublicViewHTML($property, $value, $control); } else { $result .= self::GetAdminListViewHTML($property, $value, $control); } } return $result; } public static function GetUIEntityEditorProperty($settings, $value) { $result = parent::GetUIEntityEditorProperty($settings, $value); $result['allowedMultiple'] = false; return $result; } private static function getElement(int $elementId): ?array { if ($elementId <= 0) { return null; } $iterator = CIBlockElement::GetList( [], [ 'ID' => $elementId, ], false, false, [ 'ID', 'IBLOCK_ID', 'NAME', 'XML_ID', ] ); $element = $iterator->Fetch(); if ($element) { return $element; } return null; } } /** @deprecated */ const BT_UT_SKU_CODE = Iblock\PropertyTable::USER_TYPE_SKU;