if (!empty($parent_name) && $parent_name === $sanitised_name) { $parent_name_found = true; $parent_name = $key; } } if (!$item_name_found) { register_error(elgg_echo('error:missing_data')); return; } if (!empty($parent_name) && !$parent_name_found) { register_error(elgg_echo('error:missing_data')); return; } if ($parent_name_found) { $menu_config[$item_name]['parent_name'] = $parent_name; } else { unset($menu_config[$item_name]['parent_name']); } foreach ($menu_config as $key => $value) { // internal menu names get sanitized as class in menus, so look up matching items in config $sanitised_name = strtolower($key); $sanitised_name = str_replace('_', '-', $sanitised_name); $sanitised_name = str_replace(':', '-', $sanitised_name); $sanitised_name = str_replace(' ', '-', $sanitised_name); if (!in_array($sanitised_name, $items)) { continue; } $menu_config[$key]['priority'] = array_search($sanitised_name, $items); } $menu->setMenuConfig($menu_config);
<?php $menu_name = get_input('menu_name'); $contents = get_uploaded_file('import'); if (empty($contents)) { register_error(elgg_echo('menu_builder:actions:import:error:upload')); forward(REFERER); } $config = json_decode($contents, true); if (!is_array($config) || empty($config)) { register_error(elgg_echo('menu_builder:actions:import:error:invalid:content')); forward(REFERER); } // assume we're good at this point, delete current menu $menu = new \ColdTrick\MenuBuilder\Menu($menu_name); $menu->setMenuConfig(); // removes the current config foreach ($config as $item) { // convert old export to new format if (isset($item['guid'])) { $item['name'] = $item['guid']; unset($item['guid']); } if (isset($item['title'])) { $item['text'] = $item['title']; unset($item['title']); } if (isset($item['url'])) { $item['href'] = $item['url']; unset($item['url']); }
<?php $name = get_input('item_name'); $menu_name = get_input('menu_name'); $menu = new \ColdTrick\MenuBuilder\Menu($menu_name); $menu_items = $menu->getMenuConfig(); if (empty($menu_items)) { return; } menu_builder_delete_menu_item($name, $menu_items); $menu->setMenuConfig($menu_items); system_message(elgg_echo('menu_builder:actions:delete:success')); forward("admin/appearance/menu_items?menu_name={$menu_name}");