PluginProbe ʕ •ᴥ•ʔ
Search Regex / 2.3
Search Regex v2.3
trunk 1.4.12 1.4.13 1.4.14 1.4.15 1.4.16 2.0 2.0.1 2.1 2.2 2.2.1 2.3 2.3.1 2.3.2 2.3.3 2.4 2.4.1 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1 3.1.1 3.1.2 3.2 3.3 3.3.0 3.3.1 3.4 3.4.1 3.4.2
search-regex / search-regex-settings.php
search-regex Last commit date
api 5 years ago images 6 years ago locale 5 years ago models 5 years ago source 5 years ago README.md 11 years ago license.txt 18 years ago readme.txt 5 years ago search-regex-admin.php 5 years ago search-regex-capabilities.php 5 years ago search-regex-cli.php 6 years ago search-regex-settings.php 5 years ago search-regex-strings.php 5 years ago search-regex-version.php 5 years ago search-regex.css 6 years ago search-regex.js 5 years ago search-regex.php 5 years ago
search-regex-settings.php
108 lines
1 <?php
2
3 /** @var String */
4 define( 'SEARCHREGEX_OPTION', 'searchregex_options' );
5 /** @var String */
6 define( 'SEARCHREGEX_API_JSON', 0 );
7 /** @var String */
8 define( 'SEARCHREGEX_API_JSON_INDEX', 1 );
9 /** @var String */
10 define( 'SEARCHREGEX_API_JSON_RELATIVE', 3 );
11
12 /**
13 * Get default Search Regex options
14 *
15 * @return Array
16 */
17 function searchregex_get_default_options() {
18 $defaults = [
19 'support' => false,
20 'rest_api' => SEARCHREGEX_API_JSON,
21 'actionDropdown' => true,
22 'defaultPreset' => 0,
23 ];
24
25 return \apply_filters( 'searchregex_default_options', $defaults );
26 }
27
28 /**
29 * Set Search Regex options. Can be passed as many options as necessary and the rest will be unchanged
30 *
31 * @param Array $settings Array of name => value.
32 * @return Array Array of name => value
33 */
34 function searchregex_set_options( array $settings = array() ) {
35 $options = searchregex_get_options();
36
37 if ( isset( $settings['rest_api'] ) && in_array( intval( $settings['rest_api'], 10 ), array( 0, 1, 2, 3, 4 ), true ) ) {
38 $options['rest_api'] = intval( $settings['rest_api'], 10 );
39 }
40
41 if ( isset( $settings['support'] ) ) {
42 $options['support'] = $settings['support'] ? true : false;
43 }
44
45 if ( isset( $settings['actionDropdown'] ) ) {
46 $options['actionDropdown'] = $settings['actionDropdown'] ? true : false;
47 }
48
49 if ( isset( $settings['defaultPreset'] ) ) {
50 $options['defaultPreset'] = preg_replace( '/[^A-Fa-f0-9]*/', '', $settings['defaultPreset'] );
51 }
52
53 \update_option( SEARCHREGEX_OPTION, \apply_filters( 'searchregex_save_options', $options ) );
54 return $options;
55 }
56
57 /**
58 * Return Search Regex options
59 *
60 * @return Array Array of data
61 */
62 function searchregex_get_options() {
63 $options = \get_option( SEARCHREGEX_OPTION );
64 $defaults = searchregex_get_default_options();
65
66 foreach ( $defaults as $key => $value ) {
67 if ( ! isset( $options[ $key ] ) ) {
68 $options[ $key ] = $value;
69 }
70 }
71
72 // Remove old options not in searchregex_get_default_options()
73 foreach ( array_keys( $options ) as $key ) {
74 if ( ! isset( $defaults[ $key ] ) ) {
75 unset( $options[ $key ] );
76 }
77 }
78
79 return $options;
80 }
81
82 /**
83 * Get the configured REST API
84 *
85 * @param boolean $type Type of API.
86 * @return String API URL
87 */
88 function searchregex_get_rest_api( $type = false ) {
89 if ( $type === false ) {
90 $options = searchregex_get_options();
91 $type = $options['rest_api'];
92 }
93
94 $url = \get_rest_url(); // SEARCHREGEX_API_JSON
95
96 if ( $type === SEARCHREGEX_API_JSON_INDEX ) {
97 $url = \home_url( '/index.php?rest_route=/' );
98 } elseif ( $type === SEARCHREGEX_API_JSON_RELATIVE ) {
99 $relative = \wp_parse_url( $url, PHP_URL_PATH );
100
101 if ( $relative ) {
102 $url = $relative;
103 }
104 }
105
106 return $url;
107 }
108