$menu->set_title($menu_name); } else { // Add the new Menu $menu = new ContentMenu($menu_name); } if (!$menu instanceof ContentMenu) { AppContext::get_response()->redirect('menus.php'); } $menu->enabled(retrieve(POST, 'activ', Menu::MENU_NOT_ENABLED)); if ($menu->is_enabled()) { $menu->set_block(retrieve(POST, 'location', Menu::BLOCK_POSITION__NOT_ENABLED)); } $menu->set_hidden_with_small_screens((bool) retrieve(POST, 'hidden_with_small_screens', false)); $menu->set_auth(Authorizations::build_auth_array_from_form(Menu::MENU_AUTH_BIT)); $menu->set_display_title(retrieve(POST, 'display_title', false)); $menu->set_content(retrieve(POST, 'contents', '', TSTRING_UNCHANGE)); //Filters MenuAdminService::set_retrieved_filters($menu); MenuService::move($menu, $menu->get_block()); MenuService::generate_cache(); AppContext::get_response()->redirect('menus.php#m' . $menu->get_id()); } // Display the Menu administration $edit = !empty($id); include 'lateral_menu.php'; lateral_menu(); $tpl = new FileTemplate('admin/menus/content.tpl'); $editor = AppContext::get_content_formatting_service()->get_default_editor(); $editor->set_identifier('contents'); $tpl->put_all(array('KERNEL_EDITOR' => $editor->display(), 'L_REQUIRE' => LangLoader::get_message('form.explain_required_fields', 'status-messages-common'), 'L_REQUIRE_NAME' => TextHelper::to_js_string($LANG['require_name']), 'L_REQUIRE_TEXT' => TextHelper::to_js_string($LANG['require_text']), 'L_NAME' => $LANG['name'], 'L_CONTENT' => $LANG['content'], 'L_STATUS' => $LANG['status'], 'L_HIDDEN_WITH_SMALL_SCREENS' => $LANG['hidden_with_small_screens'], 'L_AUTHS' => $LANG['auths'], 'L_ENABLED' => LangLoader::get_message('enabled', 'common'), 'L_DISABLED' => LangLoader::get_message('disabled', 'common'), 'L_GUEST' => $LANG['guest'], 'L_USER' => $LANG['member'], 'L_MODO' => $LANG['modo'], 'L_ADMIN' => $LANG['admin'], 'L_LOCATION' => $LANG['location'], 'L_ACTION_MENUS' => $edit ? $LANG['menus_edit'] : LangLoader::get_message('add', 'common'), 'L_ACTION' => $edit ? $LANG['update'] : $LANG['submit'], 'L_RESET' => $LANG['reset'], 'L_PREVIEW' => $LANG['preview'], 'ACTION' => 'save', 'L_DISPLAY_TITLE' => $LANG['display_title'])); //Localisation possibles.
/** * @access private * @desc Build a Menu object from a database result * @param string[key] $db_result the map from the database with the Menu id and serialized object * @return Menu the menu object from the serialized one */ private static function initialize($db_result) { if (!class_exists($db_result['class'])) { $menu = new ContentMenu('Unable to load the menu'); $menu->set_content('Unable to load the menu with the following class : ' . $db_result['class']); } else { $menu = unserialize($db_result['object']); } // Synchronize the object and the database $menu->id($db_result['id']); $menu->enabled($db_result['enabled']); $menu->set_block($db_result['block']); $menu->set_block_position($db_result['position']); if ($menu instanceof LinksMenu || $menu instanceof LinksMenuLink) { $menu->update_uid(); } return $menu; }