/** * Renders settings page */ function aviators_settings_render_settings_page() { $plugins = aviator_core_get_all_plugins_list(); $page = $_GET['page']; $config = aviators_settings_get_config($plugins[$page]['path'] . '/settings.json'); $tabs = aviators_settings_get_tabs($page); $registered_tabs = aviators_settings_get_registered_pages($_GET['page']); $submit = get_submit_button(); $active_tab = !empty($_GET['tab']) ? $_GET['tab'] : $tabs[0]->settings->slug; $forms = array(); foreach ($registered_tabs as $registered_tab) { if ($registered_tab == $active_tab) { $forms[] = $_GET['page'] . '_' . $registered_tab; } } foreach ($tabs as $tab) { if ($tab->settings->slug == $active_tab) { $active_tab_title = $tab->settings->title; } } echo View::render('settings/wrapper.twig', array('active_tab_title' => $active_tab_title, 'title' => __('Settings', 'settings'), 'page_title' => $config->title, 'tabs' => aviators_settings_render_tabs(), 'forms' => $forms, 'active_tab' => $active_tab, 'submit' => $submit)); }
/** * Fetch value for certain option * * @param $tab_slug string * @param $section_id string * @param $option_id string * * @return mixed|void */ function aviators_settings_get_value($plugin_slug, $section_id, $option_id) { $plugins = aviator_core_get_all_plugins_list(); if (!isset($plugins[$plugin_slug])) { return; } $config = aviators_settings_get_config($plugins[$plugin_slug]['path'] . '/settings.json'); foreach ($config->tabs as $tab) { foreach ($tab->sections as $section) { if ($section->settings->id == $section_id) { foreach ($section->options as $option) { if ($option->id == $option_id) { $result = $option; break; } } } } } $key = $plugin_slug . '_' . $section_id . '_' . $option_id; return get_option($key, !empty($result->default) ? $result->default : NULL); }