19 private function _get_menu_item_width($level)
21 static $START_MAGIC_NUMBER = 30, $STEP_MAGIC_NUMBER = 21;
22 return $START_MAGIC_NUMBER + $level*$STEP_MAGIC_NUMBER;
29 private function _get_menu_item_padding($level)
31 static $ADDED_MAGIC_NUMBER = 8;
32 return $this->_get_menu_item_width($level) + $ADDED_MAGIC_NUMBER;
43 if(!static::$urlCurrent)
47 $aMenu[
"module_id"] =
'iblock';
49 $bSubmenu = (isset(
$aMenu[
"items"]) && is_array(
$aMenu[
"items"]) && !empty(
$aMenu[
"items"])) || isset(
$aMenu[
"dynamic"]) &&
$aMenu[
"dynamic"] ==
true;
53 ?
'<span class="adm-submenu-item-link-icon '.$aMenu[
"icon"].
'"></span>'
56 $id =
'menu_item_'.randString(10);
57 ?><div
class=
"adm-sub-submenu-block<?=$level > 0 ? ' adm-submenu-level-'.($level+1) : ''?><?=$bSectionActive && isset($aMenu["items
"]) && is_array($aMenu["items
"]) && count($aMenu['items']) > 0 ? ' adm-sub-submenu-open' : ''?><?=$aMenu["_active
"] ? ' adm-submenu-item-active' : ''?>"><?
58 ?><div
class=
"adm-submenu-item-name<?=!$bSubmenu ? ' adm-submenu-no-children' : ''?>" id=
"<?=$id?>" <?=isset(
$aMenu[
'fav_id']) ?
' data-fav-id="'.intval(
$aMenu[
'fav_id']).
'"' :
''?>><?
68 $onclick =
"BX.adminMenu.toggleSection(this.parentNode.parentNode, '".htmlspecialcharsbx(CUtil::JSEscape(
$aMenu[
"items_id"])).
"', '".($level+1).
"')";
72 ?><span
class=
"adm-submenu-item-arrow"<?=$level > 0 ?
' style="width:'.$this->_get_menu_item_width($level).
'px;"' :
''?><?=$onclick ?
' onclick="'.$onclick.
'"' :
''?>><span
class=
"adm-submenu-item-arrow-icon"></span></span><?
75 ?><a
class=
"adm-submenu-item-name-link<?=(isset($aMenu["readonly
"]) && $aMenu["readonly
"] == true? ' menutext-readonly':'')?>"<?=$level > 0 ?
' style="padding-left:'.$this->_get_menu_item_padding($level).
'px;"' :
''?> href=
"<?=htmlspecialcharsbx($aMenu["url
"]);?>"><?=$icon?><span
class=
"adm-submenu-item-name-link-text"><?=
$aMenu[
"text"]?></span></a><?
78 ?><a
class=
"adm-submenu-item-name-link<?=(isset($aMenu["readonly
"]) && $aMenu["readonly
"] == true? ' menutext-readonly':'')?>"<?=$level > 0 ?
' style="padding-left:'.$this->_get_menu_item_padding($level).
'px;"' :
''?> href=
"javascript:void(0)" onclick=
"BX.adminMenu.toggleDynSection(<?=$this->_get_menu_item_width($level-1)?>, this.parentNode.parentNode, '<?=htmlspecialcharsbx(CUtil::JSEscape($aMenu["module_id
"]))?>', '<?=htmlspecialcharsbx(CUtil::JSEscape($aMenu["items_id
"]))?>', '<?=$level+1?>', '<?=CUtil::JSEscape(htmlspecialcharsbx(static::$urlCurrent))?>')"><?=$icon?><span
class=
"adm-submenu-item-name-link-text"><?=
$aMenu[
"text"]?></span></a><?
80 ?><a
class=
"adm-submenu-item-name-link<?=(isset($aMenu["readonly
"]) && $aMenu["readonly
"] == true? ' menutext-readonly':'')?>"<?=$level > 0 ?
' style="padding-left:'.$this->_get_menu_item_padding($level).
'px;"' :
''?> href=
"javascript:void(0)" onclick=
"BX.adminMenu.toggleSection(this.parentNode.parentNode, '<?=htmlspecialcharsbx(CUtil::JSEscape($aMenu["items_id
"]))?>', '<?=$level+1?>')"><?=$icon?><span
class=
"adm-submenu-item-name-link-text"><?=
$aMenu[
"text"]?></span></a><?
83 ?><span
class=
"adm-submenu-item-name-link<?=(isset($aMenu["readonly
"]) && $aMenu["readonly
"] == true? ' menutext-readonly':'')?>"<?=$level > 0 ?
' style="padding-left:'.$this->_get_menu_item_padding($level).
'px"' :
''?>><?=$icon?><span
class=
"adm-submenu-item-name-link-text"><?=
$aMenu[
"text"]?></span></span><?
87 if(($bSubmenu || (isset(
$aMenu[
"dynamic"]) &&
$aMenu[
"dynamic"] ==
true)) && is_array(
$aMenu[
"items"]))
89 echo
'<div class="adm-sub-submenu-block-children">';
90 foreach(
$aMenu[
"items"] as $submenu)
93 $scripts .= $this->
Show($submenu, $level+1);
98 echo
'<div class="adm-sub-submenu-block-children"></div>';
100 if (isset(
$aMenu[
"fav_id"]))
102 $scripts .=
"BX.adminMenu.registerItem('".$id.
"', {FAV_ID:'".CUtil::JSEscape(
$aMenu[
'fav_id']).
"'});";
106 $scripts .=
"BX.adminMenu.registerItem('".$id.
"', {ID:'".CUtil::JSEscape(
$aMenu[
'items_id']).
"', URL:'".CUtil::JSEscape(
htmlspecialcharsback(
$aMenu[
'url'])).
"', MODULE_ID:'".
$aMenu[
'module_id'].
"'});";
110 $scripts .=
"BX.adminMenu.registerItem('".$id.
"', {ID:'".CUtil::JSEscape(
$aMenu[
'items_id']).
"', MODULE_ID:'".
$aMenu[
'module_id'].
"'});";
125 public function ShowSubmenu($menu_id, $mode=
"menu", $urlBack =
'')
127 foreach($this->aGlobalMenu as
$key=>$menu)
128 if($this->
_ShowSubmenu($this->aGlobalMenu[
$key], $menu_id, $mode, 0, $urlBack))
146 if(
$aMenu[
"items_id"] == $menu_id)
151 foreach(
$aMenu[
"items"] as $submenu)
153 if(is_array($submenu))
159 $menuScripts .= $this->
Show($submenu, $level, $urlBack);
162 if($menuScripts !=
"")
163 echo
'<script>'.$menuScripts.
'</script>';
170 foreach(
$aMenu[
"items"] as $submenu)
171 if($this->
_ShowSubmenu($submenu, $menu_id, $mode, $level+1, $urlBack))
187 $arUrlAdd =
array(
"set_filter" =>
"Y");
189 $url = $submenu[
"url"];
190 $urlParse = parse_url(
$url);
191 $arUrlTag = explode(
"&", $urlParse[
"query"]);
193 foreach ($arUrlTag as $tag)
195 $tmp = explode(
"=", $tag);
196 if (
$tmp[0] ==
"IBLOCK_ID" ||
$tmp[0] ==
"find_section_section")
198 if (
$tmp[0] ==
"find_section_section")
199 $tmp[0] =
"filter_section";
207 $submenu[
"url"] =
$url;
209 if (isset($submenu[
"items"]) &&
count($submenu[
"items"]) > 0)
212 $submenu[
"items"] = $subCatalog;
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)