Ejemplo n.º 1
0
/**
 * Create admin menu item
 */
function aviators_settings_admin_menu()
{
    $optional_plugins = aviators_core_plugins_list();
    $required_plugins = aviators_core_required_plugins_list();
    $plugins = array_merge($optional_plugins, $required_plugins);
    foreach ($plugins as $key => $plugin) {
        $filename = $plugin['path'] . '/settings.json';
        if (is_file($filename)) {
            $default_item = $key;
            break;
        }
    }
    aviators_settings_register_parent_menu($default_item);
    foreach ($plugins as $plugin) {
        $filename = $plugin['path'] . '/settings.json';
        if (is_file($filename)) {
            $settings = aviators_settings_get_config($filename);
            aviators_settings_apply_settings($settings, $default_item);
        }
    }
}
Ejemplo n.º 2
0
/**
 * 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));
}
Ejemplo n.º 3
0
/**
 * 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);
}