- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
function Show($aMenu, $level=0)
{
$scripts = '';
$bSubmenu = (isset($aMenu["items"]) && is_array($aMenu["items"]) && !empty($aMenu["items"])) || isset($aMenu["dynamic"]) && $aMenu["dynamic"] == true;
$bSectionActive = isset($aMenu["items_id"]) && (in_array($aMenu["items_id"], array_keys($this->aActiveSections)) || $this->IsSectionActive($aMenu["items_id"]));
$icon = isset($aMenu["icon"]) && $aMenu["icon"] <> ""
? '<span class="adm-submenu-item-link-icon '.$aMenu["icon"].'"></span>'
// : ($level < 1 ? '<span class="adm-submenu-item-link-icon" id="default_menu_icon"></span>' : '');
: '';
$id = 'menu_item_'.RandString(10);
?><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' : ''?>"><?
?><div class="adm-submenu-item-name<?=!$bSubmenu ? ' adm-submenu-no-children' : ''?>" id="<?=$id?>" data-type="submenu-item"<?=isset($aMenu['fav_id']) ? ' data-fav-id="'.intval($aMenu['fav_id']).'"' : ''?>><?
$onclick = '';
if ($bSubmenu)
{
if(isset($aMenu["dynamic"]) && $aMenu["dynamic"] == true && (!$aMenu["items"] || count($aMenu["items"]) <= 0))
{
$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)."')";
}
elseif(!$aMenu["dynamic"] || !$bSectionActive || $aMenu['dynamic'] && $bSectionActive && isset($aMenu["items"]) && count($aMenu["items"]) > 0)
{
$onclick = "BX.adminMenu.toggleSection(this.parentNode.parentNode, '".htmlspecialcharsbx(CUtil::JSEscape($aMenu["items_id"]))."', '".($level+1)."')";
} //endif;
}
?><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><?
if(isset($aMenu["url"]) && $aMenu["url"] <> ""):
?><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="<?=$aMenu["url"]?>"><?=$icon?><span class="adm-submenu-item-name-link-text"><?=$aMenu["text"]?></span></a><?
elseif ($bSubmenu):
if(isset($aMenu["dynamic"]) && $aMenu["dynamic"] == true && !$bSectionActive && (!$aMenu["items"] || count($aMenu["items"]) <= 0)):
?><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)?>, this.parentNode.parentNode, '<?=htmlspecialcharsbx(CUtil::JSEscape($aMenu["module_id"]))?>', '<?=htmlspecialcharsbx(CUtil::JSEscape($aMenu["items_id"]))?>', '<?=$level+1?>')"><?=$icon?><span class="adm-submenu-item-name-link-text"><?=$aMenu["text"]?></span></a><?
elseif(!$aMenu["dynamic"] || !$bSectionActive || $aMenu['dynamic'] && $bSectionActive && isset($aMenu["items"]) && count($aMenu["items"]) > 0):
?><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><?
else:
?><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><?
endif;
else:
?><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><?
endif;
?></div><?
if(($bSubmenu || (isset($aMenu["dynamic"]) && $aMenu["dynamic"] == true)) && is_array($aMenu["items"]))
{
echo "<div class=\"adm-sub-submenu-block-children\">";
foreach($aMenu["items"] as $submenu)
{
if($submenu)
{
$scripts .= $this->Show($submenu, $level+1);
}
}
echo "</div>";
}
это между прочим метод класса CAdminPage административного интерфейса 1С Битрикс.
Адская смесь всех вэб-технологий, от которой лопаются глаза!
Thorax 20.10.2015 13:40 # −2
roman-kashitsyn 20.10.2015 14:35 # +1
guest 20.10.2015 15:53 # 0
roman-kashitsyn 20.10.2015 16:04 # +1
CHayT 20.10.2015 14:37 # +1
gost 20.10.2015 14:54 # +1
nik757 20.10.2015 17:53 # 0
"Между прочем" - это потому, что весь это 3,14здец находится в методе класса, где ему не место. Не говоря уже про разделение M-V-C а тут млять порноMVC в одном файле
Keeper 20.10.2015 20:56 # 0
barbarbar 20.11.2015 16:30 # 0
defecate-plusplus 20.10.2015 22:01 # 0
вот неужели нет адекватной замены ему? (шарепойнт не предлагать)
а мне теперь субподряд/аутсорс искать
Vasiliy 20.10.2015 22:13 # 0
Полно. Как мне рассказывал один разработчик на Битрексе, заказуны сут паром от интеграции с 1С бухгалтерией.
Хотя проблему сделать тоже самое на другие платформы я не вижу.
bormand 20.10.2015 22:35 # 0
Но ведь у битрикса от 1с только название?
И с 1с поди xml'ками общается? Или всё же более тесная интеграция?
defecate-plusplus 20.10.2015 22:39 # 0
корпоративный портал - календари, персоны, чят, новости, вот это всё
причем, почему-то конкретно на битриксе надо делать
а у меня чо т нет совсем желания расширяться пыхоёбом по такому счастливому случаю
Vasiliy 21.10.2015 14:02 # 0
маркетинг годный у 1C
Stallman 21.10.2015 14:20 # 0
defecate-plusplus 21.10.2015 14:46 # +2
просто максимально избегаю
Vasiliy 22.10.2015 14:15 # 0
defecate-plusplus 22.10.2015 15:15 # +1
Vasiliy 21.10.2015 13:58 # 0
nik757 21.10.2015 08:45 # 0
аналогичная ситуация. Мои соболезнования...
guest 23.10.2015 17:12 # 0
inkanus-gray 23.10.2015 17:41 # 0
kegdan 24.10.2015 22:39 # +1