1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
menu_edit.php
См. документацию.
1<?php
2
3require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
4require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php");
5
6if(!CModule::IncludeModule('fileman'))
7 die();
8
13if(!$USER->CanDoOperation('fileman_edit_menu_elements'))
14 $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
15
16IncludeModuleLangFile(__FILE__);
17
19$DOC_ROOT = CSite::GetSiteDocRoot($site);
20
22
23$path = $io->CombinePath("/", $path);
24
26 [$site, $path],
27 true,
28 false,
29 "",
30 (isset($_REQUEST["logical"]) && $_REQUEST["logical"] === "Y")
31);
32
34
35$name = preg_replace("/[^a-z0-9_]/i", "", $_REQUEST["name"] ?? '');
36$menufilename = $io->CombinePath($path, ".".$name.".menu.php");
39
41
42//delete menu file
43if(isset($_REQUEST["action"]) && $_REQUEST["action"] == "delete" && check_bitrix_sessid())
44{
45 $success = false;
46 if($io->FileExists($abs_path) && $USER->CanDoFileOperation('fm_delete_file', $arPath_m))
47 {
48 $f = $io->GetFile($abs_path);
49 $arUndoParams = array(
50 'module' => 'fileman',
51 'undoType' => 'delete_menu',
52 'undoHandler' => 'CFileman::UndoFileDelete',
53 'arContent' => array(
54 'site' => $site,
55 'path' => $menufilename,
56 'content' => $f->GetContents(),
58 )
59 );
60
61 if (COption::GetOptionInt("main", "disk_space") > 0)
62 {
63 $quota = new CDiskQuota();
64 $quota->UpdateDiskQuota("file", $f->GetFileSize(), "delete");
65 }
66
67 $f->MarkWritable();
68 $success = $io->Delete($abs_path);
69
70 if(COption::GetOptionString("fileman", "log_menu", "Y")=="Y")
71 {
72 CEventLog::Log("content", "MENU_DELETE", "fileman", $path);
73 }
74 if($success)
75 {
76 $GLOBALS["APPLICATION"]->RemoveFileAccessPermission($arPath_m);
77
78 CUndo::ShowUndoMessage(CUndo::Add($arUndoParams));
79 }
80 }
81?>
82<script bxrunfirst="true">
83<?if($success):?>
84 top.BX.reload('<?=CUtil::JSEscape($back_url);?>', true);
85<?else:?>
86 top.BX.closeWait();
87 alert('<?=CUtil::JSEscape(GetMessage("pub_menu_edit_err_del").' '.$menufilename);?>');
88<?endif;?>
89</script>
90<?
91 die();
92}
93
94if($io->FileExists($abs_path) && empty($new))
95 $bEdit = true;
96else
97 $bEdit = false;
98
99$only_edit = !$USER->CanDoOperation('fileman_add_element_to_menu') || !$USER->CanDoFileOperation('fm_create_new_file', $arPath_m);
100
101/******* POST **********/
102//проверим права на доступ в эту папку
103if(!$USER->CanDoOperation('fileman_edit_existent_files') || !$USER->CanDoFileOperation('fm_edit_existent_file', $arPath_m) || (!$bEdit && $only_edit))
104{
105 $strWarning = GetMessage("ACCESS_DENIED");
106}
107else
108{
109 if($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST['save'] == 'Y')
110 {
111 if (!is_array($ids)) $ids = array();
112
113 $arValues = $_POST;
114
116
117 $aMenuLinksTmp = $res["aMenuLinks"];
118 $aMenuLinksTmp_ = Array();
119
120 //соберем $aMenuLinksTmp из того что пришло с формы
121 $aMenuSort = Array();
122 foreach ($ids as $num)
123 {
124 if (!isset($aMenuLinksTmp[$num-1]) && $only_edit)
125 continue;
126
127 if(${"del_".$num}=="Y" && !$only_edit)
128 continue;
129
130 $aMenuItem = Array($arValues["text_".$num], $arValues["link_".$num]);
131
132 $arAdditionalParams = array(array(), array());
133 if (check_bitrix_sessid() && $arValues['additional_params_'.$num] && CheckSerializedData($arValues['additional_params_'.$num]))
134 {
135 $arAdditionalParams = @unserialize($arValues['additional_params_'.$num], ['allowed_classes' => false]);
136 }
137
138 $aMenuItem = array_merge($aMenuItem, $arAdditionalParams);
139
140 $aMenuLinksTmp_[] = $aMenuItem;
141 $aMenuSort[] = intval(${"sort_".$num});
142 }
143
144 $aMenuLinksTmp = $aMenuLinksTmp_;
145
146 for ($i = 0, $n = count($aMenuSort); $i < $n - 1; $i++)
147 {
148 for ($j = $i + 1; $j < $n; $j++)
149 {
150 if ($aMenuSort[$i] > $aMenuSort[$j])
151 {
152 $tmpSort = $aMenuLinksTmp[$i];
154 $aMenuLinksTmp[$j] = $tmpSort;
155
156 $tmpSort = $aMenuSort[$i];
157 $aMenuSort[$i] = $aMenuSort[$j];
158 $aMenuSort[$j] = $tmpSort;
159 }
160 }
161 }
162
163 //теперь $aMenuLinksTmp прямо в таком готовом виде, что хоть меню рисуй :-)
164 if (!check_bitrix_sessid())
165 {
166 $strWarning = GetMessage('MENU_EDIT_SESSION_EXPIRED');
167 }
168 else
169 {
170 $f = $io->GetFile($abs_path);
171
172 if ($io->FileExists($abs_path))
173 $arUndoParams = array(
174 'module' => 'fileman',
175 'undoType' => 'edit_menu',
176 'undoHandler' => 'CFileman::UndoEditFile',
177 'arContent' => array(
178 'absPath' => $abs_path,
179 'content' => $f->GetContents()
180 )
181 );
182 else
183 $arUndoParams = array(
184 'module' => 'fileman',
185 'undoType' => 'edit_menu',
186 'undoHandler' => 'CFileman::UndoNewFile',
187 'arContent' => array(
188 'absPath' => $abs_path,
189 'path' => $menufilename,
190 'site' => $site
191 )
192 );
193
194 CFileMan::SaveMenu(Array($site, $menufilename), $aMenuLinksTmp, $res["sMenuTemplate"]);
195
196 if(COption::GetOptionString("fileman", "log_menu", "Y")=="Y")
197 {
198 CEventLog::Log("content", ($bEdit ? "MENU_EDIT" : "MENU_ADD"), "fileman", $path);
199 }
200 if($e = $APPLICATION->GetException())
201 $strWarning = $e->GetString();
202
203 if($strWarning == '')
204 {
205 CUndo::ShowUndoMessage(CUndo::Add($arUndoParams));
206 $bEdit = true;
207 ?>
208<script bxrunfirst="true">
209top.BX.WindowManager.Get().Close();
210top.BX.showWait();
211top.BX.reload('<?=CUtil::JSEscape($back_url);?>', true);
212</script>
213<?
214 die();
215 }
216 }
217 }
218}
219/******* /POST **********/
220
221$arMenuTypes = GetMenuTypes($site);
222
223$TITLE = GetMessage("MENU_EDIT_TITLE_".($bEdit ? "EDIT" : "ADD"));
224$DESCRIPTION = str_replace(
225 array("#TYPE#", "#DIR#"),
226 array(!empty($arMenuTypes[$name]) ? $arMenuTypes[$name] : $name, $path),
227 GetMessage("MENU_EDIT_DESCRIPTION_".($bEdit ? "EDIT" : "ADD"))
228);
229
231 array(
232 'TITLE' => GetMessage('MENU_EDIT_TITLE'),
233 'ARGS' => "lang=".urlencode($_GET["lang"])."&site=".urlencode($_GET["site"])."&back_url=".urlencode($_GET["back_url"])."&path=".urlencode($_GET["path"])."&name=".urlencode($_GET["name"])
234 )
235);
236
237// ======================== Show titlebar ============================= //
238$obJSPopup->ShowTitlebar();
239?>
240<script src="/bitrix/js/main/dd.js"></script>
241
242<?
243// ======================== Show description ============================= //
244$obJSPopup->StartDescription('bx-core-edit-menu');
245?>
246<p class="title"><?=$TITLE?></p>
247<p class="note"><?=$DESCRIPTION?>
248</p><p>
249<a href="/bitrix/admin/fileman_menu_edit.php?<?="lang=".urlencode($_GET["lang"])."&site=".urlencode($_GET["site"])."&back_url=".urlencode($_GET["back_url"])."&path=".urlencode($_GET["path"])."&name=".urlencode($_GET["name"])?>"><?=GetMessage('MENU_EDIT_OLD_STYLE')?></a>
250</p>
251<?
252if($strWarning <> "")
253 $obJSPopup->ShowValidationError($strWarning);
254
255?>
256
257<?
258// ======================== Show content ============================= //
259$obJSPopup->StartContent();
260
262if($bEdit && $strWarning == '')
263{
265 $aMenuLinksTmp = $res["aMenuLinks"];
266}
267
268if(!is_array($aMenuLinksTmp))
269 $aMenuLinksTmp = Array();
270?>
271 <input type="hidden" name="save" value="Y" />
272 <table border="0" cellpadding="0" cellspacing="0" class="bx-width100 menu-table">
273 <thead>
274 <tr class="section">
275 <td width="0"></td>
276 <td width="50%"><b><?echo GetMessage("MENU_EDIT_NAME")?></b></td>
277 <td width="50%"><b><?echo GetMessage("MENU_EDIT_LINK")?></b></td>
278 <td width="0"></td>
279 <td width="0"></td>
280 <td width="0"></td>
281 <td width="0"></td>
282 </tr>
283 </thead>
284 </table>
285
286 <div id="bx_menu_layout" class="bx-menu-layout"><?
287 $itemcnt = 0;
288 for($i = 1, $n = count($aMenuLinksTmp); $i <= $n; $i++):
289 $itemcnt++;
291 ?><div class="bx-menu-placement" id="bx_menu_placement_<?=$i?>"><div class="bx-edit-menu-item" id="bx_menu_row_<?=$i?>"><table border="0" cellpadding="0" cellspacing="0" class="bx-width100 internal menu-table"><tbody>
292 <tr>
293
294 <td><input type="hidden" name="sort_<?=$i?>" value="<?echo $i*10?>" />
295 <input type="hidden" name="ids[]" value="<?=$i?>" />
296 <input type="hidden" name="del_<?=$i?>" value="N" />
297 <input type="hidden" name="additional_params_<?=$i?>" value="<?=htmlspecialcharsex(serialize(array($aMenuLinksItem[2], $aMenuLinksItem[3], $aMenuLinksItem[4])))?>" />
298 <span class="rowcontrol drag" title="<?=GetMessage('MENU_EDIT_TOOLTIP_DRAG')?>"></span>
299 </td>
300 <td>
301 <div onmouseout="rowMouseOut(this)" onmouseover="rowMouseOver(this)" class="edit-field view-area" id="view_area_text_<?=$i?>" onclick="editArea('text_<?=$i?>')" title="<?=GetMessage('MENU_EDIT_TOOLTIP_TEXT_EDIT')?>"><?=$aMenuLinksItem[0] <> '' ? htmlspecialcharsbx($aMenuLinksItem[0]) : GetMessage('MENU_EDIT_JS_NONAME')?></div>
302 <div class="edit-area" id="edit_area_text_<?=$i?>" style="display: none;"><input type="text" style="width: 220px;" name="text_<?echo $i?>" value="<?=htmlspecialcharsbx($aMenuLinksItem[0])?>" onblur="viewArea('text_<?=$i?>')" />
303</div>
304 </td>
305 <td>
306 <div onmouseout="rowMouseOut(this)" onmouseover="rowMouseOver(this)" class="edit-field view-area" id="view_area_link_<?=$i?>" onclick="editArea('link_<?=$i?>')" title="<?=GetMessage('MENU_EDIT_TOOLTIP_LINK_EDIT')?>"><?=$aMenuLinksItem[1] <> '' ? htmlspecialcharsbx($aMenuLinksItem[1]) : GetMessage('MENU_EDIT_JS_NONAME')?></div>
307 <div class="edit-area" id="edit_area_link_<?=$i?>" style="display: none;"><input type="text" style="width: 220px;" name="link_<?echo $i?>" value="<?=htmlspecialcharsbx($aMenuLinksItem[1])?>" onblur="viewArea('link_<?=$i?>')" /></div>
308 </td>
309 <td>
310<?
311CAdminFileDialog::ShowScript(
312 Array
313 (
314 "event" => "OpenFileBrowserWindFile_".$i,
315 "arResultDest" => Array("FUNCTION_NAME" => 'setLink'),
316 "arPath" => Array("SITE" => $site, 'PATH' => $aMenuLinksItem[1]),
317 "select" => 'F',// F - file only, D - folder only, DF - files & dirs
318 "operation" => 'O',// O - open, S - save
319 "showUploadTab" => false,
320 "showAddToMenuTab" => false,
321 "fileFilter" => 'php, html',
322 "allowAllFiles" => true,
323 "SaveConfig" => true
324 )
325);
326?>
327 <span onclick="if (!GLOBAL_bDisableActions) {currentLink = '<?=$i?>'; OpenFileBrowserWindFile_<?=$i?>();}" class="rowcontrol folder" title="<?=GetMessage('MENU_EDIT_TOOLTIP_FD')?>"></span>
328 </td>
329 <td><span onclick="menuMoveUp(<?=$i?>)" class="rowcontrol up" style="visibility: <?=($i == 1 ? 'hidden' : 'visible')?>" title="<?=GetMessage('MENU_EDIT_TOOLTIP_UP')?>"></span></td>
330 <td><span onclick="menuMoveDown(<?=$i?>)" class="rowcontrol down" style="visibility: <?=($i == count($aMenuLinksTmp) ? 'hidden' : 'visible')?>" title="<?=GetMessage('MENU_EDIT_TOOLTIP_DOWN')?>"></span></td>
331 <td><span onclick="menuDelete(<?=$i?>)" class="rowcontrol delete" title="<?=GetMessage('MENU_EDIT_TOOLTIP_DELETE')?>"></span></td>
332 </tr>
333 </tbody></table></div></div><?endfor?>
334</div>
335 <?if(!$only_edit):?><br /><input type="button" onClick="menuAdd()" value="<?echo GetMessage("MENU_EDIT_ADD_ITEM")?>" /><?endif;?>
336 <input type="hidden" name="itemcnt" value="<?echo $itemcnt?>" />
337<script>
338var currentLink = -1;
339var currentRow = null;
340
341var GLOBAL_bDisableActions = false;
342var GLOBAL_bDisableDD = false;
343
344var jsMenuMess = {
345 noname: '<?=CUtil::JSEscape(GetMessage('MENU_EDIT_JS_NONAME'))?>'
346}
347
348function setLink(filename, path)
349{
350 <?echo $obJSPopup->jsPopup?>.GetForm()['link_' + currentLink].value = ((path == '' || path == '/') ? '/' : path + '/') + filename;
351 editArea('link_' + currentLink, true);
352 viewArea('link_' + currentLink, true);
353}
354
355function menuCheckIcons()
356{
357 var obLayout = BX('bx_menu_layout');
358
359 for (var i = 0, num = obLayout.childNodes.length; i < num; i++)
360 {
361 if (
362 obLayout.childNodes[i].tagName
363 && obLayout.childNodes[i].tagName == 'DIV'
364 && obLayout.childNodes[i].className == 'bx-menu-placement'
365 )
366 {
367 var obTbody = obLayout.childNodes[i].firstChild.firstChild.tBodies[0];
368
369 obTbody.rows[0].cells[4].firstChild.style.visibility = (i == 0 ? 'hidden' : 'visible');
370 obTbody.rows[0].cells[5].firstChild.style.visibility = (i == num-1 ? 'hidden' : 'visible');
371 obTbody.rows[0].cells[0].firstChild.value = 10 * (i+1);
372 }
373 }
374}
375
376function menuMoveUp(i)
377{
378 if (GLOBAL_bDisableActions)
379 return;
380
381 var obRow = BX('bx_menu_row_' + i);
382 var obPlacement = obRow.parentNode;
383
384 var index = obPlacement.id.substring(18);
385 if (1 >= index)
386 return;
387
388 var obNewPlacement = obPlacement.previousSibling;
389 var obSwap = obNewPlacement.firstChild;
390
391 obPlacement.removeChild(obRow);
392 obNewPlacement.removeChild(obSwap);
393 obPlacement.appendChild(obSwap);
394 obNewPlacement.appendChild(obRow);
395
396 setCurrentRow(obRow);
397 menuCheckIcons();
398}
399
400function menuMoveDown(i)
401{
402 if (GLOBAL_bDisableActions)
403 return;
404
405 var obRow = BX('bx_menu_row_' + i);
406 var obPlacement = obRow.parentNode;
407 var obNewPlacement = obPlacement.nextSibling;
408 if (null == obNewPlacement)
409 return;
410
411 var obSwap = obNewPlacement.firstChild;
412
413 obPlacement.removeChild(obRow);
414 obNewPlacement.removeChild(obSwap);
415 obPlacement.appendChild(obSwap);
416 obNewPlacement.appendChild(obRow);
417
418 setCurrentRow(obRow);
419 menuCheckIcons();
420}
421
422function menuDelete(i)
423{
424 if (GLOBAL_bDisableActions)
425 return;
426
427 var obInput = <?echo $obJSPopup->jsPopup?>.GetForm()['del_' + i];
428 var obPlacement = BX('bx_menu_row_' + i).parentNode;
429
430 obInput.value = 'Y';
431
432 if (obPlacement.firstChild == currentRow) currentRow = null;
433
434 obPlacement = BX.remove(obPlacement);
435 menuCheckIcons();
436}
437
438function menuAdd()
439{
440 var obCounter = <?echo $obJSPopup->jsPopup?>.GetForm().itemcnt;
441 var nums = parseInt(obCounter.value);
442 obCounter.value = ++nums;
443
444 var obPlacement = BX.create('DIV', {props: {className: 'bx-menu-placement', id: 'bx_menu_placement_' + nums}});
445
446 document.getElementById('bx_menu_layout').appendChild(obPlacement);
447
448 var obRow = BX.create('DIV', {props: {className: 'bx-edit-menu-item', id: 'bx_menu_row_' + nums}});
449 obPlacement.appendChild(obRow);
450
451 <?
452 ob_start();
454 Array
455 (
456 "event" => "OpenFileBrowserWindFile____NUMS___",
457 "arResultDest" => Array("FUNCTION_NAME" => 'setLink'),
458 "arPath" => Array("SITE" => $site, 'PATH' => $path),
459 "select" => 'F',// F - file only, D - folder only, DF - files & dirs
460 "operation" => 'O',// O - open, S - save
461 "showUploadTab" => false,
462 "showAddToMenuTab" => false,
463 "fileFilter" => 'php, html',
464 "allowAllFiles" => true,
465 "SaveConfig" => true
466 )
467 );
468 $out = ob_get_contents();
469 ob_end_clean();
470 $out = trim($out);
471 $unscript_pos = mb_strpos($out, '</script>');
472 $out = mb_substr($out, 8, $unscript_pos - 8);
473 $out = trim($out);
474
475 $out = CUtil::JSEscape($out);
476 $out = str_replace('___NUMS___', "' + nums + '", $out);
477 echo 'eval(\''.$out.'\');';
478?>
479
480 var arCellsHTML = [
481 '<span class="rowcontrol drag" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_DRAG'))?>"></span>',
482 getAreaHTML('text_' + nums, '', '<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_TEXT_EDIT'))?>'),
483 getAreaHTML('link_' + nums, '', '<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_LINK_EDIT'))?>'),
484 '<span onclick="if (!GLOBAL_bDisableActions) {currentLink = \'' + nums + '\'; OpenFileBrowserWindFile_' + nums + '();}" class="rowcontrol folder" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_FD'))?>"></span>',
485 '<span onclick="menuMoveUp(' + nums + ')" class="rowcontrol up" style="visibility: ' + (nums == 1 ? 'hidden' : 'visible') + '" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_UP'))?>"></span>',
486 '<span onclick="menuMoveDown(' + nums + ')" class="rowcontrol down" style="visibility: hidden" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_DOWN'))?>"></span>',
487 '<span onclick="menuDelete(' + nums + ')" class="rowcontrol delete" title="<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_DELETE'))?>"></span>'
488 ];
489
490 var row_content = '<table border="0" cellpadding="0" cellspacing="0" class="bx-width100 internal menu-table"><tbody><tr>';
491
492 for (var i = 0; i < arCellsHTML.length; i++)
493 row_content += '<td>' + arCellsHTML[i] + '</td>';
494
495 row_content += '</tr></tbody></table>';
496
497 obRow.innerHTML = row_content;
498
499 var arInputs = [
500 ['ids[]', nums],
501 ['del_' + nums, 'N'],
502 ['sort_' + nums, 2 * nums * 10]
503 ];
504
505 for (i = 0; i<arInputs.length; i++)
506 {
507 var obInput = BX.create('INPUT', {
508 props: {type: 'hidden', name: arInputs[i][0], value: arInputs[i][1]}
509 });
510
511 obInput.value = arInputs[i][1];
512 var obFirstCell = obRow.firstChild.tBodies[0].rows[0].cells[0];
513 obFirstCell.insertBefore(obInput, obFirstCell.firstChild);
514 }
515
516 jsDD.registerDest(obPlacement);
517
518 obRow.onbxdragstart = BXDD_DragStart;
519 obRow.onbxdragstop = BXDD_DragStop;
520 obRow.onbxdraghover = BXDD_DragHover;
521
522 jsDD.registerObject(obRow);
523
524 setCurrentRow(nums);
525 menuCheckIcons();
526}
527
528function getAreaHTML(area, value, title)
529{
530 if (null === value) value = '';
531
532 return '<div onmouseout="rowMouseOut(this)" onmouseover="rowMouseOver(this)" class="edit-field view-area" ' + /*style="width: 220px; padding: 2px; display: block; border: 1px solid white; cursor: text; -moz-box-sizing: border-box; background-position: right center; background-repeat: no-repeat;"*/' id="view_area_' + area + '" onclick="editArea(\'' + area + '\')" title="' + title + '">' + (value ? value : jsMenuMess.noname) + '</div>' +
533 '<div class="edit-area" id="edit_area_' + area + '" style="display: none;"><input type="text" style="width: 220px;" name="' + area + '" value="' + value + '" onblur="viewArea(\'' + area + '\')" /></div>';
534}
535
536var currentEditingRow = null;
537
538function editArea(area, bSilent)
539{
540 if (GLOBAL_bDisableActions)
541 return;
542
543 jsDD.Disable();
544 GLOBAL_bDisableDD = true;
545
546 jsDD.allowSelection();
547 l = BX('bx_menu_layout');
548 l.ondrag = l.onselectstart = null;
549 l.style.MozUserSelect = '';
550
551 if (null == bSilent) bSilent = false;
552
553 var obEditArea = BX('edit_area_' + area);
554 var obViewArea = BX('view_area_' + area);
555
556 obEditArea.style.display = 'block';
557 obViewArea.style.display = 'none';
558
559 if (!bSilent)
560 {
561 obEditArea.firstChild.focus();
562
563 if (BX.browser.IsIE())
564 setTimeout(function () {setCurrentRow(obViewArea.parentNode.parentNode.parentNode.parentNode.parentNode)}, 30);
565 else
566 setCurrentRow(obViewArea.parentNode.parentNode.parentNode.parentNode.parentNode);
567 }
568
569 return obEditArea;
570}
571
572function viewArea(area, bSilent)
573{
574 if (GLOBAL_bDisableActions)
575 return;
576
577 jsDD.Enable();
578 GLOBAL_bDisableDD = false;
579
580 l = BX('bx_menu_layout');
581 l.ondrag = l.onselectstart = BX.False;
582 l.style.MozUserSelect = 'none';
583
584 if (null == bSilent) bSilent = false;
585
586 var obEditArea = BX('edit_area_' + area);
587 var obViewArea = BX('view_area_' + area);
588
589 obEditArea.firstChild.value = BX.util.trim(obEditArea.firstChild.value);
590
591 obViewArea.innerHTML = '';
592 BX.adjust(obViewArea, {text:obEditArea.firstChild.value.length > 0 ? obEditArea.firstChild.value : jsMenuMess.noname})
593
594 obEditArea.style.display = 'none';
595 obViewArea.style.display = 'block';
596
597 currentEditingRow = null;
598 setCurrentRow(obViewArea.parentNode.parentNode.parentNode.parentNode.parentNode);
599
600 return obViewArea;
601}
602
603function setCurrentRow(i)
604{
605 i = BX(i);
606
607 if (null != currentRow) BX.removeClass(currentRow, 'bx-menu-current-row')
608
609 BX.addClass(i, 'bx-menu-current-row');
610 currentRow = i;
611}
612
613function rowMouseOut(obArea)
614{
615 obArea.className = 'edit-field view-area';
616 obArea.style.backgroundColor = '';
617}
618
619function rowMouseOver (obArea)
620{
621 if (GLOBAL_bDisableActions || jsDD.bPreStarted)
622 return;
623
624 //obArea.className = 'edit-field-active view-area';
625 //obArea.style.backgroundColor = 'white';
626}
627
628/* DD handlers */
629function BXDD_DragStart()
630{
631 if (GLOBAL_bDisableDD)
632 return false;
633
634 this.BXOldPlacement = this.parentNode;
635
636 var id = this.id.substring(12);
637 rowMouseOut(viewArea('link_' + id));
638 rowMouseOut(viewArea('text_' + id));
639
640 GLOBAL_bDisableActions = true;
641
642 return true;
643}
644
645function BXDD_DragStop()
646{
647 this.BXOldPlacement = false;
648
649 setTimeout('GLOBAL_bDisableActions = false', 50);
650
651 return true;
652}
653
654function BXDD_DragHover(obPlacement, x, y)
655{
656 if (GLOBAL_bDisableDD)
657 return false;
658
659 if (obPlacement == this.BXOldPlacement)
660 return false;
661
662 var obSwap = obPlacement.firstChild;
663
664 this.BXOldPlacement.removeChild(this);
665 obPlacement.removeChild(obSwap);
666 this.BXOldPlacement.appendChild(obSwap);
667 obPlacement.appendChild(this);
668
669 this.BXOldPlacement = obPlacement;
670
671 menuCheckIcons();
672
673 return true;
674}
675
676BX.ready(function ()
677{
678 jsDD.Reset();
679
680<?
681for ($i = 1, $n = count($aMenuLinksTmp); $i <= $n; $i++):
682?>
683 jsDD.registerDest(BX('bx_menu_placement_<?=$i?>'));
684
685 var obEl = BX('bx_menu_row_<?=$i?>');
686 obEl.onbxdragstart = BXDD_DragStart;
687 obEl.onbxdragstop = BXDD_DragStop;
688 obEl.onbxdraghover = BXDD_DragHover;
689 jsDD.registerObject(obEl);
690<?
691endfor;
692?>
693 jsDD.registerContainer(BX.WindowManager.Get().GetContent());
694 l = BX('bx_menu_layout');
695 l.ondrag = l.onselectstart = BX.False;
696 l.style.MozUserSelect = 'none';
697});
698</script>
699<?
700// ======================== Show buttons ============================= //
701$obJSPopup->ShowStandardButtons();
702?>
703<?
704require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_js.php");
$path
Определения access_edit.php:21
global $APPLICATION
Определения include.php:80
if($canUseYandexMarket) $strWarning
Определения options.php:74
Определения file_dialog.php:8
static ShowScript($arConfig)
Определения file_dialog.php:9
static GetInstance()
Определения virtual_io.php:60
Определения quota.php:6
static Log($SEVERITY, $AUDIT_TYPE_ID, $MODULE_ID, $ITEM_ID, $DESCRIPTION=false, $SITE_ID=false)
Определения event_log.php:32
static FetchFileAccessPerm($path)
Определения fileman.php:1015
static __CheckSite($site)
Определения fileman.php:772
static SaveMenu($path, $aMenuLinksTmp, $sMenuTemplateTmp="")
Определения fileman.php:258
static ParsePath($path, $bLast=false, $url=false, $param="", $bLogical=false)
Определения fileman.php:790
static GetMenuArray($abs_path)
Определения fileman.php:321
Определения jspopup.php:10
static ShowUndoMessage($ID)
Определения undo.php:187
static Add($params=array())
Определения undo.php:9
static JSEscape($s)
Определения util.php:48
$abs_path
Определения component_props2.php:76
$f
Определения component_props.php:52
$arValues
Определения component_props.php:25
$DOC_ROOT
Определения file_edit.php:66
$new
Определения file_edit.php:48
$arParsedPath
Определения file_edit.php:88
else $bEdit
Определения file_edit_src.php:72
bx popup label bx width30 PAGE_NEW_MENU_NAME text width
Определения file_new.php:677
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
bx_acc_lim_group_list limitGroupList[] multiple<?=$group[ 'ID']?> ID selected margin top
Определения file_new.php:657
$res
Определения filter_act.php:7
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $USER
Определения csv_new_run.php:40
$io
Определения csv_new_run.php:98
endif
Определения csv_new_setup.php:990
$success
Определения mail_entry.php:69
CheckSerializedData($str, $max_depth=200)
Определения tools.php:4949
check_bitrix_sessid($varname='sessid')
Определения tools.php:4686
GetMenuTypes($site=false, $default_value=false)
Определения tools.php:4728
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
$DESCRIPTION
Определения menu_edit.php:224
$arPath_m
Определения menu_edit.php:37
for($i=1, $n=count($aMenuLinksTmp); $i<=$n; $i++) $aMenuLinksItem
Определения menu_edit.php:290
setCurrentRow(i)
Определения menu_edit.php:603
$aMenuLinksTmp
Определения menu_edit.php:261
$strWarning
Определения menu_edit.php:40
$name
Определения menu_edit.php:35
$only_edit
Определения menu_edit.php:99
editArea(area, bSilent)
Определения menu_edit.php:538
$TITLE
Определения menu_edit.php:223
text_<?echo $i?><?=htmlspecialcharsbx( $aMenuLinksItem[0])?> viewArea('text_<?=$i?>')" /> </div> </td> <td> <div onmouseout
Определения menu_edit.php:307
$menufilename
Определения menu_edit.php:33
return false
Определения prolog_main_admin.php:185
<? endif;?> window document title
Определения prolog_main_admin.php:76
die
Определения quickway.php:367
lang
Определения options.php:182
$i
Определения factura.php:643
font style
Определения invoice.php:442
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
endfor
Определения template.php:569
$obJSPopup
Определения settings_admin_form.php:102
path
Определения template_copy.php:201
$GLOBALS['_____370096793']
Определения update_client.php:1
$n
Определения update_log.php:107
$site
Определения yandex_run.php:614