<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */


# функция автоподключения плагина
function admin_menu_autoload($args = array())
{	
	mso_hook_add( 'admin_menu', 'admin_menu_menu');
}

# выводит меню в админке
function admin_menu_menu($args = array()) 
{
	global $admin_menu, $admin_menu_bread, $MSO, $admin_menu_select_option;
	
	$admin_url = getinfo('site_admin_url');
	
	$admin_menu_bread = array(); // хлебные крошки
	
	$nr = "\n";
	$out = '';
	
	$admin_menu_select_option = ''; // <option> для <select>
	
	if ( count($MSO->data['uri_segment']) > 1 )
	{
		$cur_url2 = $MSO->data['uri_segment'][2]; // второй сегмент
		
		# текущий урл строится из сегментов от второго до последнего
		$cur_url = $MSO->data['uri_segment'];
		$cur_url = array_slice($cur_url, 1);
		$cur_url = implode('/', $cur_url);
	
		if (!$cur_url) $cur_url = 'home';
	}
	else  
	{
		$cur_url = 'home';
		$cur_url2 = 'home';
	}
	
	// если меню не содержит подменю, то не выводим его
	$admin_menu1 = $admin_menu; 
	
	foreach ($admin_menu1 as $key => $value)
		if (count($admin_menu1[$key])<2) unset($admin_menu1[$key]);
	
	// pr($admin_menu1);
	
	foreach ($admin_menu1 as $key => $value)
	{
		
		// обрамляющий ul.admin-menu — выводим в конце цикла, чтобы задать css-классы
		$out_block_css_class = 'admin-menu admin-menu-' . ($key ? $key : 'beginning');
		
		$out1 = $nr . '<li class="admin-menu-top"><a href="#" class="admin-menu-section admin-menu-section-' . ($key ? $key : 'beginning') . '">' . _mso_del_menu_pod($value['']) . '</a>';
		
		$admin_menu_select_option .= '<optgroup label="' . htmlspecialchars(_mso_del_menu_pod($value[''])) . '">'. NR;
		
		if (count($value)>1 )
		{
			
			$out1 .= $nr . '<ul class="admin-submenu">';
			
			foreach ($value as $url => $name)
			{
				if ( $value[''] == $name ) continue;

				$opt_selected = '';
				
				if ($url == $cur_url or $url == $cur_url2) 
				{
					$selected = ' class="admin-menu-selected admin-menu-' . mso_slug($url) . '"';
					
					$opt_selected = ' selected';
					
					$out_block_css_class .= ' admin-menu-top-selected';
					
					if (!$admin_menu_bread) // хлебные крошки
					{
						$admin_menu_bread[] = _mso_del_menu_pod($value['']);
						$admin_menu_bread[] = _mso_del_menu_pod($name);
					}
				}
				elseif ($key == 'page' and $cur_url2 == 'page_edit') // редактирование записи
				{
					$out_block_css_class .= ' admin-menu-top-selected';
					$selected = ' class="admin-menu-' . mso_slug($url) . '"';
				}
				else 
				{
					$selected = ' class="admin-menu-' . mso_slug($url) . '"';
				}
				
				$out1 .= $nr . '      <li' . $selected . ' title="' . _mso_del_menu_pod($name) . '"><a href="' . $admin_url . $url . '">' . _mso_del_menu_pod($name) . '</a></li>';
				
				$admin_menu_select_option .= '<option value="' . $admin_url . $url . '"' . $opt_selected . '>' ._mso_del_menu_pod($name) . '</option>'. NR;
			}
			$out1 .= $nr . '</ul>';
		}
		
		$out1 .= $nr . '  </li>';
		
		$out .= $nr . '<ul class="' . $out_block_css_class . '">' . $out1 . '</ul>' . $nr;
	}
	
	
	// пункты в настройки админ-панели в отдельную опцию
	// добавляется в самый верх в Избранное
	$admin_menu_favorites = trim(mso_get_option('admin_menu_favorites', 'general'));

	if ($admin_menu_favorites)
	{
		$menu = str_replace("\r", "", $admin_menu_favorites); // если это windows
		$menu = str_replace("_NR_", "\n", $menu);
		$menu = str_replace(" ~ ", "\n", $menu);
		$menu = str_replace("\n\n\n", "\n", $menu);
		$menu = str_replace("\n\n", "\n", $menu);

		$menu = explode("\n", trim($menu));
		
		$out_my = '<ul class="admin-menu admin-menu-favorites"><li class="admin-menu-top"><a href="#" class="admin-menu-section admin-menu-section-favorites">' . t('Избранное') . '</a><ul class="admin-submenu">';
			
		$my_admin_menu_select_option = '<optgroup label="' . htmlspecialchars(t('Избранное')) . '">';
			
		foreach ($menu as $elem)
		{
			# разобъем строчку по адрес | название
			$elem = explode('|', trim($elem));
			$elem = array_map('trim', $elem);
			$elem = array_unique($elem); 
			
			$url = $name = $attr = '';
			
			if (isset($elem[0])) $url = $elem[0];  // адрес
			if (isset($elem[1])) $name = $elem[1];  // название
			if (isset($elem[2]) and $elem[2]) $attr = ' ' . $elem[2];  // атрибуты
			
			$out_my .= '<li title="' . $name .'"><a href="' . $url . '"' . $attr . '><span>' . $name .'</span></a></li>';
			
			$my_admin_menu_select_option .= '<option value="' . $url . '"' . '>' . $name . '</option>';
		}
		
		$out_my .= '</ul></li></ul>';
			
		$admin_menu_select_option = $my_admin_menu_select_option . $admin_menu_select_option;
			
		$out = $out_my . $out;
	}
	
	return $out;
}


# end of file