1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
admin_tools_user_selector.php
См. документацию.
1<?
3
4
5function _ShowUserPropertyField($name, $property_fields, $values, $bInitDef = false, $bVarsFromForm = false, $max_file_size_show=50000, $form_name = "form_element", $bCopy = false)
6{
7 global $bCopy;
8 $start = 0;
9
10 if(!is_array($property_fields["~VALUE"]))
11 $values = array();
12 else
13 $values = $property_fields["~VALUE"];
14 unset($property_fields["VALUE"]);
15 unset($property_fields["~VALUE"]);
16
17 $html = '<table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tb'.md5($name).'">';
18
19 $arUserType = array(
20 'PROPERTY_TYPE' => 'S',
21 'USER_TYPE' => 'UserID',
22 'DESCRIPTION' => '',
23 'GetPropertyFieldHtml' => array(
24 'Learning_CIBlockPropertyUserID',
25 'GetPropertyFieldHtml'
26 )
27 );
28
29 $max_val = 0;
30 if(($arUserType["PROPERTY_TYPE"] !== "F") || (!$bCopy))
31 {
32 foreach($values as $key=>$val)
33 {
34 if($bCopy)
35 {
36 $key = "n".$start;
37 $start++;
38 }
39
40 if(!is_array($val) || !array_key_exists("VALUE",$val))
41 $val = array("VALUE"=>$val, "DESCRIPTION"=>"");
42
43 $html .= '<tr><td>';
44 if(array_key_exists("GetPropertyFieldHtml", $arUserType))
45 $html .= call_user_func_array($arUserType["GetPropertyFieldHtml"],
46 array(
47 $property_fields,
48 $val,
49 array(
50 "VALUE"=>'PROP['.$property_fields["ID"].']['.$key.'][VALUE]',
51 "DESCRIPTION"=>'PROP['.$property_fields["ID"].']['.$key.'][DESCRIPTION]',
52 "FORM_NAME"=>$form_name,
53 "MODE"=>"FORM_FILL",
54 "COPY"=>$bCopy,
55 ),
56 ));
57 else
58 $html .= '&nbsp;';
59 $html .= '</td></tr>';
60
61 if(mb_substr($key, -1, 1) == 'n' && $max_val < intval(mb_substr($key, 1)))
62 $max_val = intval(mb_substr($key, 1));
63 if($property_fields["MULTIPLE"] != "Y")
64 {
65 $bVarsFromForm = true;
66 break;
67 }
68 }
69 }
70
72 {
73 $bDefaultValue = isset($property_fields["DEFAULT_VALUE"]) && (is_array($property_fields["DEFAULT_VALUE"]) || mb_strlen($property_fields["DEFAULT_VALUE"]));
74
75 if($property_fields["MULTIPLE"]=="Y")
76 {
77 $cnt = intval($property_fields["MULTIPLE_CNT"]);
78 if($cnt <= 0 || $cnt > 30)
79 $cnt = 5;
80
81 if($bInitDef && $bDefaultValue)
82 $cnt++;
83 }
84 else
85 {
86 $cnt = 1;
87 }
88
89 for($i=$max_val+1; $i<$max_val+1+$cnt; $i++)
90 {
91 if($i==0 && $bInitDef && $bDefaultValue)
92 $val = array(
93 "VALUE"=>$property_fields["DEFAULT_VALUE"],
94 "DESCRIPTION"=>"",
95 );
96 else
97 $val = array(
98 "VALUE"=>"",
99 "DESCRIPTION"=>"",
100 );
101
102 $key = "n".($start + $i);
103
104 $html .= '<tr><td>';
105 if(array_key_exists("GetPropertyFieldHtml", $arUserType))
106 $html .= call_user_func_array($arUserType["GetPropertyFieldHtml"],
107 array(
108 $property_fields,
109 $val,
110 array(
111 "VALUE"=>'PROP['.$property_fields["ID"].']['.$key.'][VALUE]',
112 "DESCRIPTION"=>'PROP['.$property_fields["ID"].']['.$key.'][DESCRIPTION]',
113 "FORM_NAME"=>$form_name,
114 "MODE"=>"FORM_FILL",
115 "COPY"=>$bCopy,
116 ),
117 ));
118 else
119 $html .= '&nbsp;';
120 $html .= '</td></tr>';
121 }
122 $max_val += $cnt;
123 }
124 if($property_fields["MULTIPLE"]=="Y" && $arUserType["USER_TYPE"] !== "HTML")
125 {
126 $html .= '<tr><td><input type="button" value="'.GetMessage("LEARNING_USER_SELECTOR_ADD").'" onClick="learningJs.addNewRow(\'tb'.md5($name).'\')"></td></tr>';
127 }
128 $html .= '</table>';
129 echo $html;
130}
131
132
133function _ShowHiddenValue($name, $value)
134{
135 $res = "";
136
137 if(is_array($value))
138 {
139 foreach($value as $k => $v)
140 $res .= _ShowHiddenValue($name.'['.htmlspecialcharsbx($k).']', $v);
141 }
142 else
143 {
144 $res .= '<input type="hidden" name="'.$name.'" value="'.htmlspecialcharsbx($value).'">'."\n";
145 }
146
147 return $res;
148}
149
150
151class Learning_CIBlockPropertyUserID
152{
153 public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
154 {
155 global $USER;
156 $default_value = intval($value["VALUE"]);
157 $res = "";
158 if ($default_value == $USER->GetID())
159 {
160 $select = "CU";
161 $res = "[<a title='".GetMessage("LEARNING_USER_SELECTOR_USER_PROFILE")."' href='/bitrix/admin/user_edit.php?ID=".$USER->GetID()."&lang=".LANG."'>".$USER->GetID()."</a>] (".htmlspecialcharsbx($USER->GetLogin()).") ".htmlspecialcharsbx($USER->GetFirstName())." ".htmlspecialcharsbx($USER->GetLastName());
162 }
163 elseif ($default_value > 0)
164 {
165 $select = "SU";
166 $rsUsers = CUser::GetList('', '', array("ID" => $default_value));
167 if ($arUser = $rsUsers->Fetch())
168 $res = "[<a title='".GetMessage("LEARNING_USER_SELECTOR_USER_PROFILE")."' href='/bitrix/admin/user_edit.php?ID=".$arUser["ID"]."&lang=".LANG."'>".$arUser["ID"]."</a>] (".htmlspecialcharsbx($arUser["LOGIN"]).") ".htmlspecialcharsbx($arUser["NAME"])." ".htmlspecialcharsbx($arUser["LAST_NAME"]);
169 else
170 $res = "&nbsp;".GetMessage("LEARNING_USER_SELECTOR_NOT_FOUND");
171 }
172 else
173 {
174 $select = "none";
175 $default_value = "";
176 }
177 $name_x = preg_replace("/([^a-z0-9])/is", "x", $strHTMLControlName["VALUE"]);
178 if (trim($strHTMLControlName["FORM_NAME"]) == '')
179 $strHTMLControlName["FORM_NAME"] = "form_element";
180
181 ob_start();
182 ?><select id="SELECT<?=htmlspecialcharsbx($strHTMLControlName["VALUE"])?>" name="SELECT<?=htmlspecialcharsbx($strHTMLControlName["VALUE"])?>" onchange="if(this.value == 'none')
183 {
184 var v=document.getElementById('<?=htmlspecialcharsbx($strHTMLControlName["VALUE"])?>');
185 v.value = '';
186 v.readOnly = true;
187 document.getElementById('FindUser<?=$name_x?>').disabled = true;
188 }
189 else
190 {
191 var v=document.getElementById('<?=htmlspecialcharsbx($strHTMLControlName["VALUE"])?>');
192 v.value = this.value == 'CU'?'<?=$USER->GetID()?>':'';
193 v.readOnly = false;
194 document.getElementById('FindUser<?=$name_x?>').disabled = false;
195 }">
196 <option value="none"<?if($select=="none")echo " selected"?>><?=GetMessage("LEARNING_USER_SELECTOR_NONE")?></option>
197 <option value="CU"<?if($select=="CU")echo " selected"?>><?=GetMessage("LEARNING_USER_SELECTOR_CURRENT")?></option>
198 <option value="SU"<?if($select=="SU")echo " selected"?>><?=GetMessage("LEARNING_USER_SELECTOR_OTHER")?></option>
199 </select>&nbsp;
200 <?echo Learning_FindUserIDNew($strHTMLControlName["VALUE"], $value["VALUE"], $res, $strHTMLControlName["FORM_NAME"], $select);
201 $return = ob_get_contents();
202 ob_end_clean();
203 return $return;
204 }
205}
206
207function Learning_FindUserIDNew(
208 $tag_name,
209 $tag_value,
210 $user_name = "",
211 $form_name = "form1",
212 $select = "none",
213 $tag_size = "3",
214 $tag_maxlength = "",
215 $button_value = "...",
216 $tag_class = "typeinput",
217 $button_class = "tablebodybutton",
218 $search_page = "/bitrix/admin/user_search.php"
219)
220{
221 global $APPLICATION, $USER;
222
223 $tag_name_x = preg_replace("/([^a-z0-9])/is", "x", $tag_name);
224 $tag_name_escaped = CUtil::JSEscape($tag_name);
225
226 $tag_value_escaped = CUtil::JSEscape($tag_value);
227 $form_name = preg_replace("/([^a-z0-9_])/is", "", $form_name);
228
229 $args = array(
230 "tag_name", "tag_value", "form_name", "select", "tag_size", "tag_maxlength",
231 "button_value", "tag_class", "button_class", "search_page"
232 );
233
234 foreach ($args as $varName)
235 {
236 ${$varName} = htmlspecialcharsbx(${$varName});
237 }
238
239 if($APPLICATION->GetGroupRight("main") >= "R")
240 {
241 $strReturn = "
242<input type=\"text\" name=\"".$tag_name."\" id=\"".$tag_name."\" value=\"".($select=="none"?"":$tag_value)."\" size=\"".$tag_size."\" maxlength=\"".$tag_maxlength."\" class=\"".$tag_class."\">
243<IFRAME style=\"width:0px; height:0px; border: 0px\" src=\"javascript:void(0)\" name=\"hiddenframe".$tag_name."\" id=\"hiddenframe".$tag_name."\"></IFRAME>
244<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":"").">
245<span id=\"div_".$tag_name."\">".$user_name."</span>
246<script>
247";
248 if($user_name=="")
249 $strReturn.= "var tv".$tag_name_x."='';\n";
250 else
251 $strReturn.= "var tv".$tag_name_x."='".$tag_value_escaped."';\n";
252
253 $strReturn.= "
254function Ch".$tag_name_x."()
255{
256 var DV_".$tag_name_x.";
257 DV_".$tag_name_x." = BX(\"div_".$tag_name_escaped."\");
258 if (!!DV_".$tag_name_x.")
259 {
260 if (
261 document.".$form_name."
262 && document.".$form_name."['".$tag_name_escaped."']
263 && typeof tv".$tag_name_x." != 'undefined'
264 && tv".$tag_name_x." != document.".$form_name."['".$tag_name_escaped."'].value
265 )
266 {
267 tv".$tag_name_x."=document.".$form_name."['".$tag_name_escaped."'].value;
268 if (tv".$tag_name_x."!='')
269 {
270 DV_".$tag_name_x.".innerHTML = '<i>".GetMessage("LEARNING_USER_SELECTOR_WAIT")."</i>';
271
272 if (tv".$tag_name_x."!=".intval($USER->GetID()).")
273 {
274 document.getElementById(\"hiddenframe".$tag_name_escaped."\").src='/bitrix/admin/get_user.php?ID=' + tv".$tag_name_x."+'&strName=".$tag_name_escaped."&lang=".LANG.(defined("ADMIN_SECTION") && ADMIN_SECTION===true?"&admin_section=Y":"")."';
275 document.getElementById('SELECT".$tag_name_escaped."').value = 'SU';
276 }
277 else
278 {
279 DV_".$tag_name_x.".innerHTML = '".CUtil::JSEscape("[<a title=\"".GetMessage("LEARNING_USER_SELECTOR_USER_PROFILE")."\" class=\"tablebodylink\" href=\"/bitrix/admin/user_edit.php?ID=".$USER->GetID()."&lang=".LANG."\">".$USER->GetID()."</a>] (".htmlspecialcharsbx($USER->GetLogin()).") ".htmlspecialcharsbx($USER->GetFirstName())." ".htmlspecialcharsbx($USER->GetLastName()))."';
280 document.getElementById('SELECT".$tag_name_escaped."').value = 'CU';
281 }
282 }
283 else
284 {
285 DV_".$tag_name_x.".innerHTML = '';
286 document.getElementById('SELECT".$tag_name_escaped."').value = 'SU';
287 }
288 }
289 else if (
290 DV_".$tag_name_x."
291 && DV_".$tag_name_x.".innerHTML.length > 0
292 && document.".$form_name."
293 && document.".$form_name."['".$tag_name_escaped."']
294 && document.".$form_name."['".$tag_name_escaped."'].value == ''
295 )
296 {
297 document.getElementById('div_".$tag_name."').innerHTML = '';
298 }
299 }
300 setTimeout(function(){Ch".$tag_name_x."()},1000);
301}
302Ch".$tag_name_x."();
303//-->
304</script>
305";
306 }
307 else
308 {
309 $strReturn = "
310 <input type=\"text\" name=\"$tag_name\" id=\"$tag_name\" value=\"$tag_value\" size=\"$tag_size\" maxlength=\"strMaxLenght\">
311 <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\">
312 $user_name
313 ";
314 }
315 return $strReturn;
316}
return select
Определения access_edit.php:440
<?=$taskID?> selected
Определения access_edit.php:348
_ShowUserPropertyField($name, $property_fields, $values, $bInitDef=false, $bVarsFromForm=false, $max_file_size_show=50000, $form_name="form_element", $bCopy=false)
Определения admin_tools_user_selector.php:5
& nbsp
Определения epilog_main_admin.php:38
$bVarsFromForm
Определения file_edit.php:44
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$start
Определения get_search.php:9
$select
Определения iblock_catalog_list.php:194
global $USER
Определения csv_new_run.php:40
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$name
Определения menu_edit.php:35
<? endif;?> window document title
Определения prolog_main_admin.php:76
if(empty($signedUserToken)) $key
Определения quickway.php:257
const ADMIN_SECTION
Определения rss.php:2
$i
Определения factura.php:643
$val
Определения options.php:1793