3namespace Bitrix\Iblock\BizprocType;
5use Bitrix\Bizproc\BaseType;
6use Bitrix\Bizproc\FieldType;
12 class UserTypePropertyEmployee
extends UserTypeProperty
14 private static $isCompatible;
19 public static function getType()
21 if (!static::isCompatibleMode())
22 return FieldType::USER;
23 return FieldType::STRING;
26 public static function convertTo(FieldType $fieldType, $value, $toTypeClass)
28 if (is_array($value) && isset($value[
'VALUE']))
32 return BaseType\User::convertTo($fieldType, $value, $toTypeClass);
41 public static function convertFrom(FieldType $fieldType, $value, $fromTypeClass)
47 $type = $fromTypeClass::getType();
50 case FieldType::DOUBLE:
52 $value =
'user_'.(int)$value;
54 case FieldType::INTERNALSELECT:
55 case FieldType::SELECT:
56 case FieldType::STRING:
59 if (mb_strpos($value,
'user_') ===
false)
63 elseif (static::isCompatibleMode())
65 $value = \CBPHelper::stripUserPrefix($value);
79 public static function getConversionMap()
81 $userMap = BaseType\User::getConversionMap();
87 FieldType::INTERNALSELECT,
104 public static function renderControlSingle(FieldType $fieldType,
array $field, $value, $allowSelection, $renderMode)
106 $value = static::fixUserPrefix($value);
107 $renderResult = parent::renderControlSingle($fieldType, $field, $value,
false, $renderMode);
111 $selectorValue = \CBPActivity::isExpression($value) ?
$value :
null;
112 $renderResult .= static::renderControlSelector($field, $selectorValue,
true,
'employee', $fieldType);
115 return $renderResult;
126 public static function renderControlMultiple(FieldType $fieldType,
array $field, $value, $allowSelection, $renderMode)
128 $value = static::fixUserPrefix($value);
129 $renderResult = parent::renderControlMultiple($fieldType, $field, $value,
false, $renderMode);
133 $selectorValue =
null;
134 if (!is_array($value) || is_array($value) && \CBPHelper::isAssociativeArray($value))
137 foreach ($value as $v)
142 $renderResult .= static::renderControlSelector($field, $selectorValue,
true,
'employee', $fieldType);
145 return $renderResult;
156 $value = (int) parent::extractValue($fieldType, $field,
$request);
160 if ($value !==
null && !static::isCompatibleMode())
168 public static function extractValueMultiple(FieldType $fieldType,
array $field,
array $request)
170 $values = parent::extractValueMultiple($fieldType, $field,
$request);
171 return array_unique($values);
179 protected static function formatValuePrintable(FieldType $fieldType, $value)
181 $value = static::fixUserPrefix($value);
182 $userType = static::getUserType($fieldType);
183 if (is_array($value) && isset($value[
'VALUE']))
186 if (!empty($userType[
'GetPublicViewHTML']))
188 $result = call_user_func_array(
189 $userType[
'GetPublicViewHTML'],
192 'LINK_IBLOCK_ID' => $fieldType->getOptions(),
198 'MODE' =>
'SIMPLE_TEXT',
204 return parent::formatValuePrintable($fieldType, $value);
207 public static function toSingleValue(FieldType $fieldType, $value)
209 if (is_array($value) && !isset($value[
'VALUE']))
211 $value = \CBPHelper::MakeArrayFlat($value);
216 return parent::toSingleValue($fieldType, $value);
219 private static function fixUserPrefix($value)
221 if (!static::isCompatibleMode())
223 if (is_array($value) && isset($value[
'VALUE']))
224 $value[
'VALUE'] = \CBPHelper::stripUserPrefix($value[
'VALUE']);
226 $value = \CBPHelper::stripUserPrefix($value);
232 private static function isCompatibleMode()
234 if (static::$isCompatible ===
null)
236 static::$isCompatible = Config\Option::get(
'bizproc',
'employee_compatible_mode',
'N') ==
'Y';
238 return static::$isCompatible;
if(!Loader::includeModule('catalog')) if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_PRICE_EDIT)) if(!check_bitrix_sessid()) $request
static requireModule($moduleName)
static isExpression($text)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
htmlspecialcharsback($str)
extractValue(array $fieldProperties, $value)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)