<?php
/**
 *
 * @author  ahrasis http://smf.ahrasis.com
 * @license BSD http://opensource.org/licenses/BSD-3-Clause
 * @mod     Alternative Menu With Top Menu Icon & Button Remover
 *
 */

if (!defined('SMF'))
	die('Hacking attempt...');

function AlternativeMenu_Buttons(&$areas)
{
	global $context, $modSettings, $user_info, $txt, $scripturl, $settings;

	// Load the ROAM language
	loadLanguage('AlternativeMenu');

	// Add our css but change it for cetain action(s)
	if (!empty($modSettings['alternativemenu']) && !empty($modSettings['altmenu_replace_with_icon'])) {
	$context['html_headers'] .= '<link rel="stylesheet" type="text/css" href="' . $settings['default_theme_url']. '/css/AlternativeMenu.styles.css?fin20" />';
	}

	if (!empty($modSettings['alternativemenu'])) {

		// Set up the menu privileges.
		$context['allow_search'] = allowedTo('search_posts');
		$context['allow_admin'] = allowedTo(array('admin_forum', 'manage_boards', 'manage_permissions', 'moderate_forum', 'manage_membergroups', 'manage_bans', 'send_mail', 'edit_news', 'manage_attachments', 'manage_smileys'));
		$context['allow_edit_profile'] = !$user_info['is_guest'] && allowedTo(array('profile_view_own', 'profile_view_any', 'profile_identity_own', 'profile_identity_any', 'profile_extra_own', 'profile_extra_any', 'profile_remove_own', 'profile_remove_any', 'moderate_forum', 'manage_membergroups', 'profile_title_own', 'profile_title_any'));
		$context['allow_memberlist'] = allowedTo('view_mlist');
		$context['allow_calendar'] = allowedTo('calendar_view') && !empty($modSettings['cal_enabled']);
		$context['allow_moderation_center'] = $context['user']['can_mod'];
		$context['allow_pm'] = allowedTo('pm_read');
		$context['allow_arcade'] = allowedTo('arcade_view');

		// This will allow top menu removal and/or change from text to icon
		$areas['home']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['home'] : $txt['home_icon'];

		$areas['arcade']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['arcade'] : $txt['arcade_icon'];
		$areas['arcade']['show'] = $context['allow_arcade'] && !empty($modSettings['arcadeEnabled']) ? true : false;

		$areas['help']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['help'] : $txt['help_icon'];
		$areas['help']['show'] = empty($modSettings['altmenu_remove_help']) ? true : false;

		$areas['search']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['search'] : $txt['search_icon'];
		$areas['search']['show'] = $context['allow_search'] && empty($modSettings['altmenu_remove_search']) ? true : false;

		$areas['admin']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['admin'] : $txt['admin_icon'];

		$areas['moderate']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['moderate'] : $txt['moderate_icon'];

		$areas['profile']['title'] = (!empty($modSettings['cptta_enable']) && !empty($context['user']['avatar']['href']))  ? '<img src="' . $context['user']['avatar']['href'] . '" title="' . $txt['profile'] . '" alt="' . $txt['profile'] . '" width="20" height="20" />' : (empty($modSettings['altmenu_replace_with_icon']) ? $txt['profile'] : $txt['profile_icon']);
		$areas['profile']['show'] = $context['allow_edit_profile'] && empty($modSettings['altmenu_remove_profile']) ? true : false;

		$areas['pm']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['pm_short'] : $txt['pm_short_icon'];
		$areas['pm']['show'] = $context['allow_pm'] && empty($modSettings['altmenu_remove_pm']) ? true : false;

		$areas['calendar']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['calendar'] : $txt['calendar_icon'];
		$areas['calendar']['show'] = $context['allow_calendar'] && empty($modSettings['altmenu_remove_calendar']) ? true : false;

		$areas['mlist']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['members_title'] : $txt['members_title_icon'];
		$areas['mlist']['show'] = $context['allow_memberlist'] && empty($modSettings['altmenu_remove_mlist']) ? true : false;

		$areas['login']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['login'] : $txt['login_icon'];

		$areas['register']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['register'] : $txt['register_icon'];
		$areas['register']['show'] = $user_info['is_guest'] && empty($modSettings['altmenu_remove_register']) ? true : false;

		$areas['logout']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['logout'] : $txt['logout_icon'];

		// Additional for Portal, Portamx, Download, Teampage, Shop, Multimedia, Arcade & Gallery
		$areas['forum']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['forums'] : $txt['forum_icon'];
		$areas['arcade']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['arcade'] : $txt['arcade_icon'];
		$areas['gallery']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['gallery'] : $txt['gallery_icon'];
		$areas['downloads']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['downloads'] : $txt['downloads_icon'];
        $areas['shop']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['shop'] : $txt['shop_icon'];
        $areas['dldir']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['downloads'] : $txt['downloads_icon'];
        $areas['teampage']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['teampage'] : $txt['teampage_icon'];
        $areas['multimedia']['title'] = empty($modSettings['altmenu_replace_with_icon']) ? $txt['multimedia'] : $txt['multimedia_icon'];
	}
}

function AlternativeMenu_Admin(&$admin_areas)
{
	global $txt;

	// Load the AlternativeMenu language
	loadLanguage('AlternativeMenu');

	// Add our menu item
	$admin_areas['config']['areas']['modsettings']['subsections']['alternativemenu'] = array($txt['AlternativeMenu'],);
}

function AlternativeMenu_Settings(&$subActions)
{
	global $txt, $scripturl, $context, $modSettings, $settings;

	// Load the AlternativeMenu language
	loadLanguage('AlternativeMenu');

	// Add AlternativeMenu Settings
	$subActions['alternativemenu'] = 'AlternativeMenu';
}

function AlternativeMenu($return_config = false)
{
	global $txt, $scripturl, $context, $settings, $sc, $modSettings;

	$config_vars = array(
		// Mod authors, feel free to modify this alternative menu but don't remove this statement and basic menu!!
		array('check', 'alternativemenu'),
		'',
		array('check', 'altmenu_remove_arcade'),
		array('check', 'altmenu_remove_help'),
		array('check', 'altmenu_remove_search'),
		array('check', 'altmenu_remove_profile'),
		array('check', 'altmenu_remove_pm'),
		array('check', 'altmenu_remove_calendar'),
		array('check', 'altmenu_remove_mlist'),
		array('check', 'altmenu_remove_register'),
		'',
		array('check', 'altmenu_replace_with_icon'),
	);

	// Make it even easier to add new settings.
	call_integration_hook('integrate_alternative_menu_settings', array(&$config_vars));

	if ($return_config)
		return $config_vars;

	$context['post_url'] = $scripturl . '?action=admin;area=modsettings;save;sa=alternativemenu';
	$context['settings_title'] = $txt['altmenu_description'];

	// Saving?
	if (isset($_GET['save']))
	{
		checkSession();

		$save_vars = $config_vars;

		// This line is to help mod authors do a search/add after if you want to add something here. Keyword: FOOT TAPPING SUCKS!
		saveDBSettings($save_vars);

		// This line is to help mod authors do a search/add after if you want to add something here. Keyword: I LOVE TEA!
		redirectexit('action=admin;area=modsettings;sa=alternativemenu');
	}

	// This line is to help mod authors do a search/add after if you want to add something here. Keyword: RED INK IS FOR TEACHERS AND THOSE WHO LIKE PAIN!
	prepareDBSettingContext($config_vars);
}
?>