16 "PROPERTY_TYPE" => PropertyTable::TYPE_NUMBER,
17 "USER_TYPE" => self::USER_TYPE,
18 "DESCRIPTION" =>
GetMessage(
"IBLOCK_PROP_USERID_DESC"),
19 "GetAdminListViewHTML" => [__CLASS__,
"getAdminListViewHTMLExtended"],
20 "GetPropertyFieldHtml" => [__CLASS__,
"GetPropertyFieldHtml"],
21 "ConvertToDB" => [__CLASS__,
"ConvertToDB"],
22 "ConvertFromDB" => [__CLASS__,
"ConvertFromDB"],
23 "GetSettingsHTML" => [__CLASS__,
"GetSettingsHTML"],
24 "GetPublicViewHTML" => [__CLASS__,
"getPublicViewHTML"],
25 "AddFilterFields" => [__CLASS__,
'AddFilterFields'],
26 "GetAdminFilterHTML" => [__CLASS__,
"GetAdminFilterHTML"],
27 "GetUIFilterProperty" => [__CLASS__,
'GetUIFilterProperty'],
28 "GetUIEntityEditorProperty" => [__CLASS__,
'GetUIEntityEditorProperty'],
29 "GetUIEntityEditorPropertyEditHtml" => [__CLASS__,
'GetUIEntityEditorPropertyEditHtml'],
30 "GetUIEntityEditorPropertyViewHtml" => [__CLASS__,
'GetUIEntityEditorPropertyViewHtml'],
37 $value = intval($value[
"VALUE"]);
38 if(!array_key_exists($value,
$cache))
40 $rsUsers = CUser::GetList(
'',
'',
array(
"ID" => $value));
41 $cache[$value] = $rsUsers->Fetch();
46 return "[<a title='".GetMessage(
"MAIN_EDIT_USER_PROFILE").
"' href='user_edit.php?ID=".$arUser[
"ID"].
"&lang=".LANGUAGE_ID.
"'>".$arUser[
"ID"].
"</a>] (".
htmlspecialcharsbx($arUser[
"LOGIN"]).
") ".
htmlspecialcharsbx($arUser[
"NAME"]).
" ".
htmlspecialcharsbx($arUser[
"LAST_NAME"]);
64 $isPublicMode = (defined(
"PUBLIC_MODE") && (int)PUBLIC_MODE === 1);
89 $default_value = intval($value[
"VALUE"]);
91 if ($default_value ==
$USER->GetID())
96 elseif ($default_value > 0)
99 $rsUsers = CUser::GetList(
'',
'',
array(
"ID" => $default_value));
100 if ($arUser = $rsUsers->Fetch())
103 $res =
" ".GetMessage(
"MAIN_NOT_FOUND");
110 $name_x = preg_replace(
"/([^a-z0-9])/is",
"x", $strHTMLControlName[
"VALUE"]);
111 if (trim($strHTMLControlName[
"FORM_NAME"]) ==
'')
112 $strHTMLControlName[
"FORM_NAME"] =
"form_element";
114 $selfFolderUrl = (defined(
"SELF_FOLDER_URL") ? SELF_FOLDER_URL :
"/bitrix/admin/");
117 ?><
select id=
"SELECT<?=htmlspecialcharsbx($strHTMLControlName["VALUE
"])?>" name=
"SELECT<?=htmlspecialcharsbx($strHTMLControlName["VALUE
"])?>" onchange=
"if(this.value == 'none')
119 var v=document.getElementById('<?=htmlspecialcharsbx($strHTMLControlName["VALUE
"])?>');
122 document.getElementById('FindUser<?=$name_x?>').disabled = true;
126 var v=document.getElementById('<?=htmlspecialcharsbx($strHTMLControlName["VALUE
"])?>');
127 v.value = this.value == 'CU'?'<?=$USER->GetID()?>':'';
129 document.getElementById('FindUser<?=$name_x?>').disabled = false;
131 <option value=
"none"<?
if(
$select==
"none")echo
" selected"?>><?=
GetMessage(
"IBLOCK_PROP_USERID_NONE")?></option>
132 <option value=
"CU"<?
if(
$select==
"CU")echo
" selected"?>><?=
GetMessage(
"IBLOCK_PROP_USERID_CURR")?></option>
133 <option value=
"SU"<?
if(
$select==
"SU")echo
" selected"?>><?=
GetMessage(
"IBLOCK_PROP_USERID_OTHR")?></option>
148 $return = ob_get_contents();
165 $value[
"VALUE"] = intval($value[
"VALUE"]);
166 if($value[
"VALUE"] <= 0)
167 $value[
"VALUE"] =
"";
173 $value[
"VALUE"] = intval($value[
"VALUE"]);
174 if($value[
"VALUE"] <= 0)
175 $value[
"VALUE"] =
"";
179 public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
181 $arPropertyFields =
array(
182 "HIDE" =>
array(
"WITH_DESCRIPTION"),
190 $filterValue = self::getFilterValue(
$control);
192 if ($filterValue !==
null)
194 $arFilter[
"=PROPERTY_".$arProperty[
"ID"]] = $filterValue;
203 $value = (string)self::getFilterValue(
$control);
204 return '<input type="text" name="'.$controlName.
'" value="'.
htmlspecialcharsbx($value).
'" size="30">';
215 $fields[
"type"] =
"custom_entity";
221 private static function getFilterValue(
$control)
231 $filterValue =
$GLOBALS[$controlName];
235 $rawValue = trim(
$GLOBALS[$controlName]);
236 if ($rawValue !==
'')
237 $filterValue = (int)$rawValue;
262 public static function GetUIEntityEditorPropertyEditHtml(
array $params = []): string
265 $fieldName =
$params[
'FIELD_NAME'];
267 $containerId = $fieldName .
'_container';
268 $inputsContainerId = $fieldName .
'_inputs_container';
270 $isMultiple =
$params[
'SETTINGS'][
'MULTIPLE'] ===
'Y' ?
'true' :
'false';
272 if (!is_array(
$params[
'VALUE']))
284 $preselectedItems = [];
285 foreach (
$params[
'VALUE'] as $value)
287 $preselectedItems[] = [
'user',
$value];
289 $dialogItems = \Bitrix\UI\EntitySelector\Dialog::getPreselectedItems($preselectedItems)->toArray();
291 foreach ($dialogItems as $index => $item)
294 if (isset($item[
'hidden'], $item[
'id']))
299 $dialogItems[$index][
'searchable'],
300 $dialogItems[$index][
'saveable'],
301 $dialogItems[$index][
'hidden'],
302 $dialogItems[$index][
'deselectable'],
303 $dialogItems[$index][
'avatar'],
304 $dialogItems[$index][
'link']
308 $dialogItems[$index][
'title'] =
$user[
'NAME'] .
' ' .
$user[
'LAST_NAME'];
312 $selectedItems = Json::encode($dialogItems);
315 <div
id=
"{$containerId}" name=
"{$containerId}"></div>
316 <div
id=
"{$inputsContainerId}" name=
"{$inputsContainerId}"></div>
319 var selector =
new BX.UI.EntitySelector.TagSelector({
320 id:
'{$containerId}',
321 multiple: {$isMultiple},
325 id:
'{$containerId}',
326 multiple: {$isMultiple},
327 selectedItems: {$selectedItems},
330 'Item:onSelect': setSelectedInputs.bind(
this,
'Item:onSelect'),
331 'Item:onDeselect': setSelectedInputs.bind(
this,
'Item:onDeselect'),
338 'inviteEmployeeLink':
false,
345 function setSelectedInputs(eventName, event)
347 var dialog =
event.getData().item.getDialog();
348 if (!dialog.isMultiple())
352 var selectedItems = dialog.getSelectedItems();
353 if (Array.isArray(selectedItems))
356 selectedItems.forEach(
function(item)
359 '<input type="hidden" name="{$fieldName}[]" value="' + item[
'id'] +
'" />'
362 if (htmlInputs ===
'')
365 '<input type="hidden" name="{$fieldName}[]" value="" />'
368 document.getElementById(
'{$inputsContainerId}').innerHTML = htmlInputs;
369 BX.Event.EventEmitter.emit(
'onChangeUser');
373 selector.renderTo(document.getElementById(
'{$containerId}'));
388 if (!is_array(
$params[
'VALUE']))
397 $user = static::getUserArray(
$userId);
412 private static function getUserArray(
int $userId)
414 if (!isset(self::$cache[
$userId]))
430 self::$cache[
$userId] = $userResult;
450 $userId = (int)$value[
'VALUE'];
451 $user = static::getUserArray(
$userId);
454 $link =
'[<a href="/company/personal/user/' .
$userId .
'/">' .
$userId .
'</a>] ';
466function FindUserIDNew($tag_name, $tag_value, $user_name=
"", $form_name =
"form1",
$select=
"none", $tag_size =
"3", $tag_maxlength=
"", $button_value =
"...", $tag_class=
"typeinput", $button_class=
"tablebodybutton", $search_page=
"/bitrix/admin/user_search.php")
469 $tag_name_x = preg_replace(
"/([^a-z0-9])/is",
"x", $tag_name);
470 $tag_name_escaped = CUtil::JSEscape($tag_name);
474 $selfFolderUrl = (defined(
"SELF_FOLDER_URL") ? SELF_FOLDER_URL :
"/bitrix/admin/");
477<input type=\"text\" name=\"".$tag_name.
"\" id=\"".$tag_name.
"\" value=\"".(
$select==
"none"?
"":$tag_value).
"\" size=\"".$tag_size.
"\" maxlength=\"".$tag_maxlength.
"\" class=\"".$tag_class.
"\">
478<IFRAME style=\"width:0px; height:0px; border: 0px\" src=\"javascript:void(0)\" name=\"hiddenframe".$tag_name.
"\" id=\"hiddenframe".$tag_name.
"\"></IFRAME>
479<input class=\"".$button_class.
"\" type=\"button\" name=\"FindUser".$tag_name_x.
"\" id=\"FindUser".$tag_name_x.
"\" OnClick=\"window.open('".$search_page.
"?lang=".LANGUAGE_ID.
"&FN=".$form_name.
"&FC=".$tag_name_escaped.
"', '', 'scrollbars=yes,resizable=yes,width=760,height=500,top='+Math.floor((screen.height - 560)/2-14)+',left='+Math.floor((screen.width - 760)/2-5));\" value=\"".$button_value.
"\" ".(
$select==
"none"?
"disabled":
"").
">
480<span id=\"div_".$tag_name.
"\">".$user_name.
"</span>
484 $strReturn.=
"var tv".$tag_name_x.
"='';\n";
486 $strReturn.=
"var tv".$tag_name_x.
"='".CUtil::JSEscape($tag_value).
"';\n";
489function Ch".$tag_name_x.
"()
491 var DV_".$tag_name_x.
";
492 DV_".$tag_name_x.
" = document.getElementById(\"div_".$tag_name_escaped.
"\");
493 if (!!DV_".$tag_name_x.
")
496 document.".$form_name.
"
497 && document.".$form_name.
"['".$tag_name_escaped.
"']
498 && typeof tv".$tag_name_x.
" != 'undefined'
499 && tv".$tag_name_x.
" != document.".$form_name.
"['".$tag_name_escaped.
"'].value
502 tv".$tag_name_x.
"=document.".$form_name.
"['".$tag_name_escaped.
"'].value;
503 if (tv".$tag_name_x.
"!='')
505 DV_".$tag_name_x.
".innerHTML = '<i>".
GetMessage(
"MAIN_WAIT").
"</i>';
507 if (tv".$tag_name_x.
"!=".intval(
$USER->GetID()).
")
509 document.getElementById(\"hiddenframe".$tag_name_escaped.
"\").src='".
$selfFolderUrl.
"get_user.php?ID=' + tv".$tag_name_x.
"+'&strName=".$tag_name_escaped.
"&lang=".LANGUAGE_ID.(defined(
"ADMIN_SECTION") &&
ADMIN_SECTION===
true?
"&admin_section=Y":
"").
"';
510 document.getElementById('SELECT".$tag_name_escaped.
"').value = 'SU';
515 document.getElementById('SELECT".$tag_name_escaped.
"').value = 'CU';
520 DV_".$tag_name_x.
".innerHTML = '';
525 && DV_".$tag_name_x.
".innerHTML.length > 0
526 && document.".$form_name.
"
527 && document.".$form_name.
"['".$tag_name_escaped.
"']
528 && document.".$form_name.
"['".$tag_name_escaped.
"'].value == ''
531 document.getElementById('div_".$tag_name.
"').innerHTML = '';
534 setTimeout(function(){Ch".$tag_name_x.
"()},1000);
543 <input type=\"text\" name=\"$tag_name\" id=\"$tag_name\" value=\"$tag_value\" size=\"$tag_size\" maxlength=\"strMaxLenght\">
544 <input type=\"button\" name=\"FindUser".$tag_name_x.
"\" id=\"FindUser".$tag_name_x.
"\" OnClick=\"window.open('".$search_page.
"?lang=".LANGUAGE_ID.
"&FN=$form_name&FC=$tag_name_escaped', '', 'scrollbars=yes,resizable=yes,width=760,height=560,top='+Math.floor((screen.height - 560)/2-14)+',left='+Math.floor((screen.width - 760)/2-5));\" value=\"$button_value\">
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static getRow(array $parameters)
static GetUIFilterProperty($property, $strHTMLControlName, &$fields)
static GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
static GetAdminFilterHTML($property, $control)
static GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
static GetUserTypeDescription()
static GetUIEntityEditorPropertyViewHtml(array $params=[])
static GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
static GetUIEntityEditorProperty($property, $value)
static getPublicViewHTML(array $property, array $value, $control)
static ConvertFromDB($arProperty, $value)
static AddFilterFields($arProperty, $control, &$arFilter, &$filtered)
static ConvertToDB($arProperty, $value)
static getAdminListViewHTMLExtended(array $property, array $value, $control)
hidden PROPERTY[<?=$propertyIndex?>][CODE]<?=htmlspecialcharsEx( $propertyCode)?> height
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
FindUserIDNew($tag_name, $tag_value, $user_name="", $form_name="form1", $select="none", $tag_size="3", $tag_maxlength="", $button_value="...", $tag_class="typeinput", $button_class="tablebodybutton", $search_page="/bitrix/admin/user_search.php")
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
$GLOBALS['_____370096793']