Пример #1
0
function bos_ajax_preview()
{
    if (isset($_REQUEST['nonce'])) {
        // Verify that the incoming request is coming with the security nonce
        if (wp_verify_nonce($_REQUEST['nonce'], 'bos_ajax_nonce')) {
            $arrayFields = bos_searchbox_settings_fields_array();
            foreach ($arrayFields as $field) {
                if ($field[1] == 'text' || $field[1] == 'radio' || $field[1] == 'select') {
                    $options[$field[0]] = isset($_REQUEST[$field[0]]) ? stripslashes(sanitize_text_field($_REQUEST[$field[0]])) : '';
                } elseif ($field[1] == 'checkbox') {
                    if ($field[0] == 'calendar') {
                        $options[$field[0]] = empty($_REQUEST['calendar']) ? 0 : 1;
                    }
                    //if ( $field[ 0 ] == 'calendar' )
                    if ($field[0] == 'flexible_dates') {
                        $options[$field[0]] = empty($_REQUEST['flexible_dates']) ? 0 : 1;
                    }
                    //if ( $field[ 0 ] == 'flexible_dates' )
                }
            }
            //foreach( $arrayFields as $field)
            $preview = true;
            echo '<div id="bos_preview_title"><img src="' . BOS_IMG_PLUGIN_DIR . '/preview_title.png" alt="Preview" /></div>';
            bos_create_searchbox($options, $preview);
            die;
        } else {
            die('There was an issue in the preview statement');
        }
    }
}
function bos_searchbox_validate_options($input)
{
    $valid = array();
    $message = array();
    $error = false;
    $arrayFields = bos_searchbox_settings_fields_array();
    foreach ($arrayFields as $field) {
        if ($field[1] == 'text') {
            if ($field[0] == 'aid' || $field[0] == 'widget_width') {
                $valid[$field[0]] = $input[$field[0]];
                if (!empty($input[$field[0]]) && $input[$field[0]] != '' && !is_numeric($input[$field[0]])) {
                    $error = true;
                    $message[] = '"' . $field[2] . '": ' . __('needs to be an integer', BOS_TEXT_DOMAIN) . '<br>';
                }
            } else {
                $valid[$field[0]] = sanitize_text_field($input[$field[0]]);
                //sanitize and escape malicius input
                if ($valid[$field[0]] != $input[$field[0]]) {
                    $error = true;
                    $message[] = '"' . $field[2] . '": ' . __('Incorrect values entered!', BOS_TEXT_DOMAIN) . '<br>';
                }
            }
        } elseif ($field[1] == 'radio') {
            if ($field[0] == 'month_format') {
                switch ($input[$field[0]]) {
                    case 'short':
                        $valid[$field[0]] = $input[$field[0]];
                        break;
                    case 'long':
                    default:
                        $valid[$field[0]] = 'long';
                        //default : long
                        break;
                }
            }
            //$field[ 0 ] == 'month_format'
            if ($field[0] == 'logodim') {
                switch ($input[$field[0]]) {
                    case 'blue_200x33':
                    case 'blue_300x50':
                    case 'white_150x25':
                    case 'white_200x33':
                    case 'white_300x50':
                        $valid[$field[0]] = $input[$field[0]];
                        break;
                    case 'blue_150x25':
                    default:
                        $valid[$field[0]] = 'blue_150x25';
                        //default : blue_150x25
                        break;
                }
            }
            //$field[ 0 ] == 'logodim'
        } elseif ($field[1] == 'checkbox') {
            if ($field[0] == 'calendar') {
                $valid[$field[0]] = empty($input[$field[0]]) ? 0 : 1;
            }
            //if ( $field[ 0 ] == 'calendar' )
            if ($field[0] == 'flexible_dates') {
                $valid[$field[0]] = empty($input[$field[0]]) ? 0 : 1;
            }
            //if ( $field[ 0 ] == 'flexible_dates' )
        } else {
            switch ($input[$field[0]]) {
                case 'center':
                case 'right':
                    $valid[$field[0]] = $input[$field[0]];
                    break;
                case 'left':
                default:
                    $valid[$field[0]] = 'left';
                    //default : left
                    break;
            }
        }
        //logopos entries
    }
    //foreach( $arrayFields as $field)
    if ($error) {
        add_settings_error('bos_searchbox_user_options', 'bos_searchbox_texterror', implode('', $message), 'error');
    }
    return $valid;
}