1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
catalog_menu.php
См. документацию.
1<?php
2
4
9{
13 static protected $urlCurrent = '';
14
19 private function _get_menu_item_width($level)
20 {
21 static $START_MAGIC_NUMBER = 30, $STEP_MAGIC_NUMBER = 21;
22 return $START_MAGIC_NUMBER + $level*$STEP_MAGIC_NUMBER;
23 }
24
29 private function _get_menu_item_padding($level)
30 {
31 static $ADDED_MAGIC_NUMBER = 8;
32 return $this->_get_menu_item_width($level) + $ADDED_MAGIC_NUMBER;
33 }
34
41 public function Show($aMenu, $level = 0, $urlCurrent = '')
42 {
43 if(!static::$urlCurrent)
44 static::$urlCurrent = $urlCurrent;
45
46 $scripts = '';
47 $aMenu["module_id"] = 'iblock';
48
49 $bSubmenu = (isset($aMenu["items"]) && is_array($aMenu["items"]) && !empty($aMenu["items"])) || isset($aMenu["dynamic"]) && $aMenu["dynamic"] == true;
50 $bSectionActive = isset($aMenu["items_id"]) && (in_array($aMenu["items_id"], array_keys($this->aActiveSections)) || $this->IsSectionActive($aMenu["items_id"]));
51
52 $icon = isset($aMenu["icon"]) && $aMenu["icon"] <> ""
53 ? '<span class="adm-submenu-item-link-icon '.$aMenu["icon"].'"></span>'
54 // : ($level < 1 ? '<span class="adm-submenu-item-link-icon" id="default_menu_icon"></span>' : '');
55 : '';
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']).'"' : ''?>><?
59 $onclick = '';
60 if ($bSubmenu)
61 {
62 if(isset($aMenu["dynamic"]) && $aMenu["dynamic"] == true && (!$aMenu["items"] || count($aMenu["items"]) <= 0))
63 {
64 $onclick = "BX.adminMenu.toggleDynSection(".$this->_get_menu_item_width($level).", this.parentNode.parentNode, '".htmlspecialcharsbx(CUtil::JSEscape($aMenu["module_id"]))."', '".htmlspecialcharsbx(CUtil::JSEscape($aMenu["items_id"]))."', '".($level+1)."', '".CUtil::JSEscape(htmlspecialcharsbx(static::$urlCurrent))."')";
65 }
66 elseif(!$aMenu["dynamic"] || !$bSectionActive || $aMenu['dynamic'] && $bSectionActive && isset($aMenu["items"]) && count($aMenu["items"]) > 0)
67 {
68 $onclick = "BX.adminMenu.toggleSection(this.parentNode.parentNode, '".htmlspecialcharsbx(CUtil::JSEscape($aMenu["items_id"]))."', '".($level+1)."')";
69 } //endif;
70 }
71
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><?
73
74 if(isset($aMenu["url"]) && $aMenu["url"] <> ""):
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><?
76 elseif ($bSubmenu):
77 if(isset($aMenu["dynamic"]) && $aMenu["dynamic"] == true && !$bSectionActive && (!$aMenu["items"] || count($aMenu["items"]) <= 0)):
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><?
79 elseif(!$aMenu["dynamic"] || !$bSectionActive || $aMenu['dynamic'] && $bSectionActive && isset($aMenu["items"]) && count($aMenu["items"]) > 0):
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><?
81 endif;
82 else:
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><?
84 endif;
85 ?></div><?
86
87 if(($bSubmenu || (isset($aMenu["dynamic"]) && $aMenu["dynamic"] == true)) && is_array($aMenu["items"]))
88 {
89 echo '<div class="adm-sub-submenu-block-children">';
90 foreach($aMenu["items"] as $submenu)
91 {
92 if($submenu)
93 $scripts .= $this->Show($submenu, $level+1);
94 }
95 echo "</div>";
96 }
97 else
98 echo '<div class="adm-sub-submenu-block-children"></div>';
99 ?></div><?
100 if (isset($aMenu["fav_id"]))
101 {
102 $scripts .= "BX.adminMenu.registerItem('".$id."', {FAV_ID:'".CUtil::JSEscape($aMenu['fav_id'])."'});";
103 }
104 elseif (isset($aMenu["items_id"]) && $aMenu['url'])
105 {
106 $scripts .= "BX.adminMenu.registerItem('".$id."', {ID:'".CUtil::JSEscape($aMenu['items_id'])."', URL:'".CUtil::JSEscape(htmlspecialcharsback($aMenu['url']))."', MODULE_ID:'".$aMenu['module_id']."'});";
107 }
108 elseif (isset($aMenu["items_id"]))
109 {
110 $scripts .= "BX.adminMenu.registerItem('".$id."', {ID:'".CUtil::JSEscape($aMenu['items_id'])."', MODULE_ID:'".$aMenu['module_id']."'});";
111 }
112 elseif ($aMenu['url'])
113 {
114 $scripts .= "BX.adminMenu.registerItem('".$id."', {URL:'".CUtil::JSEscape(htmlspecialcharsback($aMenu['url']))."'});";
115 }
116
117 return $scripts;
118 }
119
125 public function ShowSubmenu($menu_id, $mode="menu", $urlBack = '')
126 {
127 foreach($this->aGlobalMenu as $key=>$menu)
128 if($this->_ShowSubmenu($this->aGlobalMenu[$key], $menu_id, $mode, 0, $urlBack))
129 break;
130 }
131
140 public function _ShowSubmenu(&$aMenu, $menu_id, $mode, $level=0, $urlBack = '')
141 {
142 $bSubmenu = (is_array($aMenu["items"]) && count($aMenu["items"])>0);
143
144 if($bSubmenu)
145 {
146 if($aMenu["items_id"] == $menu_id)
147 {
148 if($mode == "menu")
149 {
150 $menuScripts = "";
151 foreach($aMenu["items"] as $submenu)
152 {
153 if(is_array($submenu))
154 {
155 if($level >= 3)
156 $level = $level - 3;
157 if($urlBack)
158 $submenu = self::fReplaceUrl($submenu, $urlBack);
159 $menuScripts .= $this->Show($submenu, $level, $urlBack);
160 }
161 }
162 if($menuScripts != "")
163 echo '<script>'.$menuScripts.'</script>';
164 }
165
166 return true;
167 }
168 else
169 {
170 foreach($aMenu["items"] as $submenu)
171 if($this->_ShowSubmenu($submenu, $menu_id, $mode, $level+1, $urlBack))
172 return true;
173 }
174 }
175 return false;
176 }
177
183 public static function fReplaceUrl($submenu, $urlCurrent)
184 {
185 $urlCurrentDefault = $urlCurrent;
186
187 $arUrlAdd = array("set_filter" => "Y");
188
189 $url = $submenu["url"];
190 $urlParse = parse_url($url);
191 $arUrlTag = explode("&", $urlParse["query"]);
192
193 foreach ($arUrlTag as $tag)
194 {
195 $tmp = explode("=", $tag);
196 if ($tmp[0] == "IBLOCK_ID" || $tmp[0] == "find_section_section")
197 {
198 if ($tmp[0] == "find_section_section")
199 $tmp[0] = "filter_section";
200
202 $arUrlAdd[$tmp[0]] = $tmp[1];
203 }
204 }
205
206 $url = CHTTP::urlAddParams($urlCurrent, $arUrlAdd, array("encode", "skip_empty"));
207 $submenu["url"] = $url;
208
209 if (isset($submenu["items"]) && count($submenu["items"]) > 0)
210 {
211 $subCatalog = self::fReplaceUrl($submenu["items"], $urlCurrentDefault);
212 $submenu["items"] = $subCatalog;
213 }
214
215 return $submenu;
216 }
217}
Определения admin_lib.php:682
IsSectionActive($section)
Определения admin_lib.php:1336
Определения catalog_menu.php:9
static fReplaceUrl($submenu, $urlCurrent)
Определения catalog_menu.php:183
_ShowSubmenu(&$aMenu, $menu_id, $mode, $level=0, $urlBack='')
Определения catalog_menu.php:140
Show($aMenu, $level=0, $urlCurrent='')
Определения catalog_menu.php:41
ShowSubmenu($menu_id, $mode="menu", $urlBack='')
Определения catalog_menu.php:125
static $urlCurrent
Определения catalog_menu.php:13
static urlDeleteParams($url, $delete_params, $options=array())
Определения http.php:568
static urlAddParams($url, $add_params, $options=[])
Определения http.php:521
if(!is_array($prop["VALUES"])) $tmp
Определения component_props.php:203
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
if(( $ACTION=='EXPORT_EDIT'||$ACTION=='EXPORT_COPY') &&$STEP==1) if($STEP > 1) if(( $ACTION=='EXPORT_EDIT'||$ACTION=='EXPORT_COPY') &&$STEP==2) if($STEP >2) $aMenu
Определения csv_new_setup.php:214
endif
Определения csv_new_setup.php:990
htmlspecialcharsback($str)
Определения tools.php:2693
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
</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
$url
Определения iframe.php:7