Example #1
0
function yiw_panel_configuration_save()
{
    if (isset($_REQUEST['action'])) {
        $tab = yiw_get_current_tab();
        switch ($_REQUEST['action']) {
            case 'yiw-save-configuration':
                $configs = get_option('yiw_configs');
                $actual_config = array();
                if ($configs != false) {
                    $configs = maybe_unserialize($configs);
                } else {
                    $configs = array();
                }
                $config_name = esc_attr($_REQUEST['new_configuration']);
                $config_slug = yiw_check_if_exists(sanitize_title($config_name), $configs, 'key');
                $actual_config[$config_slug] = array('name' => $config_name, 'values' => yiw_theme_options_from_db());
                // 				echo $config_slug;
                // 				yiw_debug( $configs ); die;
                update_option('yiw_configs', array_merge($configs, $actual_config));
                $url = admin_url('themes.php') . "?page={$_GET['page']}&tab={$tab}&message=saved";
                yiw_end_process($url, false);
                break;
            case 'yiw-apply-configuration':
                $configs = get_option('yiw_configs');
                if (!$configs) {
                    break;
                }
                $config_to_apply = esc_attr($_REQUEST['name_configuration']);
                yiw_update_theme_options($configs[$config_to_apply]['values']);
                $url = admin_url('themes.php') . "?page={$_GET['page']}&tab={$tab}&message=saved";
                yiw_end_process($url, false);
                break;
            case 'yiw-delete-config':
                $configs = get_option('yiw_configs');
                if ($configs != false) {
                    $configs = maybe_unserialize($configs);
                } else {
                    $configs = array();
                }
                $to_delete = esc_attr($_REQUEST['id']);
                if (isset($configs[$to_delete])) {
                    unset($configs[$to_delete]);
                }
                update_option('yiw_configs', $configs);
                $url = admin_url('themes.php') . "?page={$_GET['page']}&tab={$tab}&message=delete";
                yiw_end_process($url, false);
                break;
            case 'yiw-import-configuration':
                if (!isset($_REQUEST['import-theme-options'])) {
                    break;
                }
                $options = unserialize(base64_decode($_REQUEST['import-theme-options']));
                yiw_update_theme_options($options);
                $url = admin_url('themes.php') . "?page={$_GET['page']}&tab={$tab}&message=delete";
                yiw_end_process($url, false);
                break;
        }
    }
}
Example #2
0
function yiw_check_if_exists($value, $array, $check = 'value')
{
    $match = array();
    if ($check == 'value' && !in_array($value, $array) || $check == 'key' && !isset($array[$value])) {
        return $value;
    } else {
        if (!preg_match('/([a-z]+)-([0-9]+)/', $value, $match)) {
            $i = 1;
        } else {
            $i = intval($match[2]) + 1;
            $value = $match[1];
        }
        return yiw_check_if_exists($value . '-' . $i, $array, $check);
    }
}