3require(
$_SERVER[
"DOCUMENT_ROOT"].
"/bitrix/modules/main/include/prolog_admin_before.php");
4require(
$_SERVER[
"DOCUMENT_ROOT"].
"/bitrix/modules/main/include/prolog_admin_js.php");
6if(!CModule::IncludeModule(
'fileman'))
13if(!
$USER->CanDoOperation(
'fileman_edit_menu_elements'))
49 $arUndoParams =
array(
50 'module' =>
'fileman',
51 'undoType' =>
'delete_menu',
52 'undoHandler' =>
'CFileman::UndoFileDelete',
56 'content' =>
$f->GetContents(),
61 if (COption::GetOptionInt(
"main",
"disk_space") > 0)
64 $quota->UpdateDiskQuota(
"file",
$f->GetFileSize(),
"delete");
70 if(COption::GetOptionString(
"fileman",
"log_menu",
"Y")==
"Y")
82<script bxrunfirst=
"true">
84 top.BX.reload(
'<?=CUtil::JSEscape($back_url);?>',
true);
87 alert(
'<?=CUtil::JSEscape(GetMessage("pub_menu_edit_err_del").' '.$menufilename);?>');
111 if (!is_array($ids)) $ids =
array();
118 $aMenuLinksTmp_ = Array();
121 $aMenuSort = Array();
122 foreach ($ids as $num)
135 $arAdditionalParams = @unserialize(
$arValues[
'additional_params_'.$num], [
'allowed_classes' =>
false]);
138 $aMenuItem = array_merge($aMenuItem, $arAdditionalParams);
140 $aMenuLinksTmp_[] = $aMenuItem;
141 $aMenuSort[] = intval(${
"sort_".$num});
148 for ($j =
$i + 1; $j <
$n; $j++)
150 if ($aMenuSort[
$i] > $aMenuSort[$j])
156 $tmpSort = $aMenuSort[
$i];
157 $aMenuSort[
$i] = $aMenuSort[$j];
158 $aMenuSort[$j] = $tmpSort;
173 $arUndoParams =
array(
174 'module' =>
'fileman',
175 'undoType' =>
'edit_menu',
176 'undoHandler' =>
'CFileman::UndoEditFile',
177 'arContent' =>
array(
179 'content' =>
$f->GetContents()
183 $arUndoParams =
array(
184 'module' =>
'fileman',
185 'undoType' =>
'edit_menu',
186 'undoHandler' =>
'CFileman::UndoNewFile',
187 'arContent' =>
array(
196 if(COption::GetOptionString(
"fileman",
"log_menu",
"Y")==
"Y")
208<script bxrunfirst=
"true">
209top.BX.WindowManager.Get().Close();
211top.BX.reload(
'<?=CUtil::JSEscape($back_url);?>',
true);
225 array(
"#TYPE#",
"#DIR#"),
233 'ARGS' =>
"lang=".urlencode($_GET[
"lang"]).
"&site=".urlencode($_GET[
"site"]).
"&back_url=".urlencode($_GET[
"back_url"]).
"&path=".urlencode($_GET[
"path"]).
"&name=".urlencode($_GET[
"name"])
240<script src=
"/bitrix/js/main/dd.js"></script>
244$obJSPopup->StartDescription(
'bx-core-edit-menu');
246<p
class=
"title"><?=
$TITLE?></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>
271 <input type=
"hidden" name=
"save" value=
"Y" />
272 <table border=
"0" cellpadding=
"0" cellspacing=
"0" class=
"bx-width100 menu-table">
286 <div
id=
"bx_menu_layout" class=
"bx-menu-layout"><?
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>
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>
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?>')" />
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>
314 "event" =>
"OpenFileBrowserWindFile_".
$i,
315 "arResultDest" => Array(
"FUNCTION_NAME" =>
'setLink'),
319 "showUploadTab" =>
false,
320 "showAddToMenuTab" =>
false,
321 "fileFilter" =>
'php, html',
322 "allowAllFiles" => true,
327 <span onclick=
"if (!GLOBAL_bDisableActions) {currentLink = '<?=$i?>'; OpenFileBrowserWindFile_<?=$i?>();}" class=
"rowcontrol folder" title=
"<?=GetMessage('MENU_EDIT_TOOLTIP_FD')?>"></span>
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>
333 </tbody></table></div></div><?
endfor?>
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?>" />
339var currentRow =
null;
341var GLOBAL_bDisableActions =
false;
342var GLOBAL_bDisableDD =
false;
345 noname:
'<?=CUtil::JSEscape(GetMessage('MENU_EDIT_JS_NONAME
'))?>'
348function setLink(filename,
path)
350 <?echo
$obJSPopup->jsPopup?>.GetForm()[
'link_' + currentLink].value = ((
path ==
'' ||
path ==
'/') ?
'/' :
path +
'/') + filename;
351 editArea(
'link_' + currentLink,
true);
352 viewArea(
'link_' + currentLink,
true);
355function menuCheckIcons()
357 var obLayout = BX(
'bx_menu_layout');
359 for (var i = 0, num = obLayout.childNodes.length; i < num; i++)
362 obLayout.childNodes[i].tagName
363 && obLayout.childNodes[i].tagName ==
'DIV'
364 && obLayout.childNodes[i].className ==
'bx-menu-placement'
367 var obTbody = obLayout.childNodes[i].firstChild.firstChild.tBodies[0];
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);
376function menuMoveUp(i)
378 if (GLOBAL_bDisableActions)
381 var obRow = BX(
'bx_menu_row_' + i);
382 var obPlacement = obRow.parentNode;
384 var index = obPlacement.id.substring(18);
388 var obNewPlacement = obPlacement.previousSibling;
389 var obSwap = obNewPlacement.firstChild;
391 obPlacement.removeChild(obRow);
392 obNewPlacement.removeChild(obSwap);
393 obPlacement.appendChild(obSwap);
394 obNewPlacement.appendChild(obRow);
400function menuMoveDown(i)
402 if (GLOBAL_bDisableActions)
405 var obRow = BX(
'bx_menu_row_' + i);
406 var obPlacement = obRow.parentNode;
407 var obNewPlacement = obPlacement.nextSibling;
408 if (
null == obNewPlacement)
411 var obSwap = obNewPlacement.firstChild;
413 obPlacement.removeChild(obRow);
414 obNewPlacement.removeChild(obSwap);
415 obPlacement.appendChild(obSwap);
416 obNewPlacement.appendChild(obRow);
422function menuDelete(i)
424 if (GLOBAL_bDisableActions)
427 var obInput = <?echo
$obJSPopup->jsPopup?>.GetForm()[
'del_' + i];
428 var obPlacement = BX(
'bx_menu_row_' + i).parentNode;
432 if (obPlacement.firstChild == currentRow) currentRow =
null;
434 obPlacement = BX.remove(obPlacement);
440 var obCounter = <?echo
$obJSPopup->jsPopup?>.GetForm().itemcnt;
441 var nums = parseInt(obCounter.value);
442 obCounter.value = ++nums;
444 var obPlacement = BX.create(
'DIV', {props: {className:
'bx-menu-placement', id:
'bx_menu_placement_' + nums}});
446 document.getElementById(
'bx_menu_layout').appendChild(obPlacement);
448 var obRow = BX.create(
'DIV', {props: {className:
'bx-edit-menu-item', id:
'bx_menu_row_' + nums}});
449 obPlacement.appendChild(obRow);
456 "event" =>
"OpenFileBrowserWindFile____NUMS___",
457 "arResultDest" => Array(
"FUNCTION_NAME" =>
'setLink'),
458 "arPath" => Array(
"SITE" =>
$site,
'PATH' =>
$path),
461 "showUploadTab" =>
false,
462 "showAddToMenuTab" =>
false,
463 "fileFilter" =>
'php, html',
464 "allowAllFiles" =>
true,
468 $out = ob_get_contents();
471 $unscript_pos = mb_strpos($out,
'</script>');
472 $out = mb_substr($out, 8, $unscript_pos - 8);
476 $out = str_replace(
'___NUMS___',
"' + nums + '", $out);
477 echo
'eval(\''.$out.
'\');
';
481 '<span
class=
"rowcontrol drag" title=
"<?=CUtil::JSEscape(GetMessage('MENU_EDIT_TOOLTIP_DRAG'))?>"></span>
',
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>
'
490 var row_content = '<table border=
"0" cellpadding=
"0" cellspacing=
"0" class=
"bx-width100 internal menu-table"><tbody><tr>
';
492 for (var i = 0; i < arCellsHTML.length; i++)
493 row_content += '<td>
' + arCellsHTML[i] + '</td>
';
495 row_content += '</tr></tbody></table>
';
497 obRow.innerHTML = row_content;
501 ['del_
' + nums, 'N
'],
502 ['sort_
' + nums, 2 * nums * 10]
505 for (i = 0; i<arInputs.length; i++)
507 var obInput = BX.create('INPUT
', {
508 props: {type: 'hidden
', name: arInputs[i][0], value: arInputs[i][1]}
511 obInput.value = arInputs[i][1];
512 var obFirstCell = obRow.firstChild.tBodies[0].rows[0].cells[0];
513 obFirstCell.insertBefore(obInput, obFirstCell.firstChild);
516 jsDD.registerDest(obPlacement);
518 obRow.onbxdragstart = BXDD_DragStart;
519 obRow.onbxdragstop = BXDD_DragStop;
520 obRow.onbxdraghover = BXDD_DragHover;
522 jsDD.registerObject(obRow);
528function getAreaHTML(area, value, title)
530 if (null === value) value = '';
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>
';
536var currentEditingRow = null;
538function editArea(area, bSilent)
540 if (GLOBAL_bDisableActions)
544 GLOBAL_bDisableDD = true;
546 jsDD.allowSelection();
547 l = BX('bx_menu_layout
');
548 l.ondrag = l.onselectstart = null;
549 l.style.MozUserSelect = '';
551 if (null == bSilent) bSilent = false;
553 var obEditArea = BX('edit_area_
' + area);
554 var obViewArea = BX('view_area_
' + area);
556 obEditArea.style.display = 'block
';
557 obViewArea.style.display = 'none
';
561 obEditArea.firstChild.focus();
563 if (BX.browser.IsIE())
564 setTimeout(function () {setCurrentRow(obViewArea.parentNode.parentNode.parentNode.parentNode.parentNode)}, 30);
566 setCurrentRow(obViewArea.parentNode.parentNode.parentNode.parentNode.parentNode);
572function viewArea(area, bSilent)
574 if (GLOBAL_bDisableActions)
578 GLOBAL_bDisableDD = false;
580 l = BX('bx_menu_layout
');
581 l.ondrag = l.onselectstart = BX.False;
582 l.style.MozUserSelect = 'none
';
584 if (null == bSilent) bSilent = false;
586 var obEditArea = BX('edit_area_
' + area);
587 var obViewArea = BX('view_area_
' + area);
589 obEditArea.firstChild.value = BX.util.trim(obEditArea.firstChild.value);
591 obViewArea.innerHTML = '';
592 BX.adjust(obViewArea, {text:obEditArea.firstChild.value.length > 0 ? obEditArea.firstChild.value : jsMenuMess.noname})
594 obEditArea.style.display = 'none
';
595 obViewArea.style.display = 'block
';
597 currentEditingRow = null;
598 setCurrentRow(obViewArea.parentNode.parentNode.parentNode.parentNode.parentNode);
603function setCurrentRow(i)
607 if (null != currentRow) BX.removeClass(currentRow, 'bx-menu-current-row
')
609 BX.addClass(i, 'bx-menu-current-row
');
613function rowMouseOut(obArea)
615 obArea.className = 'edit-field view-area
';
616 obArea.style.backgroundColor = '';
619function rowMouseOver (obArea)
621 if (GLOBAL_bDisableActions || jsDD.bPreStarted)
624 //obArea.className = 'edit-field-active view-area
';
625 //obArea.style.backgroundColor = 'white
';
629function BXDD_DragStart()
631 if (GLOBAL_bDisableDD)
634 this.BXOldPlacement = this.parentNode;
636 var id = this.id.substring(12);
637 rowMouseOut(viewArea('link_
' + id));
638 rowMouseOut(viewArea('text_
' + id));
640 GLOBAL_bDisableActions = true;
645function BXDD_DragStop()
647 this.BXOldPlacement = false;
649 setTimeout('GLOBAL_bDisableActions =
false', 50);
654function BXDD_DragHover(obPlacement, x, y)
656 if (GLOBAL_bDisableDD)
659 if (obPlacement == this.BXOldPlacement)
662 var obSwap = obPlacement.firstChild;
664 this.BXOldPlacement.removeChild(this);
665 obPlacement.removeChild(obSwap);
666 this.BXOldPlacement.appendChild(obSwap);
667 obPlacement.appendChild(this);
669 this.BXOldPlacement = obPlacement;
681for ($i = 1, $n = count($aMenuLinksTmp); $i <= $n; $i++):
683 jsDD.registerDest(BX('bx_menu_placement_<?=$i?>
'));
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);
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
';
700// ======================== Show buttons ============================= //
701$obJSPopup->ShowStandardButtons();
704require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_js.php");
if($canUseYandexMarket) $strWarning
static ShowScript($arConfig)
static Log($SEVERITY, $AUDIT_TYPE_ID, $MODULE_ID, $ITEM_ID, $DESCRIPTION=false, $SITE_ID=false)
static FetchFileAccessPerm($path)
static __CheckSite($site)
static SaveMenu($path, $aMenuLinksTmp, $sMenuTemplateTmp="")
static ParsePath($path, $bLast=false, $url=false, $param="", $bLogical=false)
static GetMenuArray($abs_path)
static ShowUndoMessage($ID)
static Add($params=array())
bx popup label bx width30 PAGE_NEW_MENU_NAME text width
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
bx_acc_lim_group_list limitGroupList[] multiple<?=$group[ 'ID']?> ID selected margin top
$_SERVER["DOCUMENT_ROOT"]
CheckSerializedData($str, $max_depth=200)
check_bitrix_sessid($varname='sessid')
GetMenuTypes($site=false, $default_value=false)
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
<? endif;?> window document title
</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."%"
$GLOBALS['_____370096793']