<?php
/**
 * Save menu items.
 *
 * @package Elgg
 * @subpackage Core
 */

$featured_urls = get_input('featured_urls', array());
$custom_item_names = get_input('custom_item_names', array());
$custom_item_urls = get_input('custom_item_urls', array());

// save the full information from the menu item into the config table
// this will be checked upon display that it is still valid (based upon url)
$menu_items = get_register('menu');
$menu_urls = array();
$featured_url_info = array();

foreach ($menu_items as $name => $info) {
	$menu_urls[$info->value->url] = $info;
}

foreach ($featured_urls as $url) {
	if (array_key_exists($url, $menu_urls)) {
		$featured_url_info[] = $menu_urls[$url];
	}
}

// save the custom items
$custom_count = count($custom_item_names);
$custom_items = array();
for ($i = 0; $i < $custom_count; $i++) {
	if (isset($custom_item_names[$i]) && isset($custom_item_names[$i])) {
		$name = $custom_item_names[$i];
		$url = $custom_item_urls[$i];

		if ($name && $url) {
			$custom_items[$url] = $name;
		}
	}
}


// set_config() always returns 0 so can't check for failures
set_config('menu_items_featured_urls', $featured_url_info);
set_config('menu_items_custom_items', $custom_items);

system_message(elgg_echo('admin:menu_items:saved'));

forward(REFERER);