PluginProbe
StreamCast – bring live radio to your site with a sleek player / 2.4.0
StreamCast – bring live radio to your site with a sleek player v2.4.0
2.4.5 2.4.4 trunk 1.0 1.1 2.0.0 2.1.10 2.1.2 2.1.4 2.1.5 2.1.8 2.2.1 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 All 29 releases
streamcast / frameworks / codestar-framework / functions / actions.php

actions.php in StreamCast – bring live radio to your site with a sleek player 2.4.0, at frameworks/codestar-framework/functions/actions.php

193 lines 5.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2 /**
3 *
4 * Get icons from admin ajax
5 *
6 * @since 1.0.0
7 * @version 1.0.0
8 *
9 */
10 if ( ! function_exists( 'csf_get_icons' ) ) {
11 function csf_get_icons() {
12
13 $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
14
15 if ( ! wp_verify_nonce( $nonce, 'csf_icon_nonce' ) ) {
16 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'streamcast' ) ) );
17 }
18
19 ob_start();
20
21 $icon_library = ( apply_filters( 'csf_fa4', false ) ) ? 'fa4' : 'fa5';
22
23 CSF::include_plugin_file( 'fields/icon/'. $icon_library .'-icons.php' );
24
25 $icon_lists = apply_filters( 'csf_field_icon_add_icons', csf_get_default_icons() );
26
27 if ( ! empty( $icon_lists ) ) {
28
29 foreach ( $icon_lists as $list ) {
30
31 echo ( count( $icon_lists ) >= 2 ) ? '<div class="csf-icon-title">'. esc_attr( $list['title'] ) .'</div>' : '';
32
33 foreach ( $list['icons'] as $icon ) {
34 echo '<i title="'. esc_attr( $icon ) .'" class="'. esc_attr( $icon ) .'"></i>';
35 }
36
37 }
38
39 } else {
40
41 echo '<div class="csf-error-text">'. esc_html__( 'No data available.', 'streamcast' ) .'</div>';
42
43 }
44
45 $content = ob_get_clean();
46
47 wp_send_json_success( array( 'content' => $content ) );
48
49 }
50 add_action( 'wp_ajax_csf-get-icons', 'csf_get_icons' );
51 }
52
53 /**
54 *
55 * Export
56 *
57 * @since 1.0.0
58 * @version 1.0.0
59 *
60 */
61 if ( ! function_exists( 'csf_export' ) ) {
62 function csf_export() {
63
64 $nonce = ( ! empty( $_GET[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_GET[ 'nonce' ] ) ) : '';
65 $unique = ( ! empty( $_GET[ 'unique' ] ) ) ? sanitize_text_field( wp_unslash( $_GET[ 'unique' ] ) ) : '';
66
67 if ( ! wp_verify_nonce( $nonce, 'csf_backup_nonce' ) ) {
68 die( esc_html__( 'Error: Invalid nonce verification.', 'streamcast' ) );
69 }
70
71 if ( empty( $unique ) ) {
72 die( esc_html__( 'Error: Invalid key.', 'streamcast' ) );
73 }
74
75 // Export
76 header('Content-Type: application/json');
77 header('Content-disposition: attachment; filename=backup-'. gmdate( 'd-m-Y' ) .'.json');
78 header('Content-Transfer-Encoding: binary');
79 header('Pragma: no-cache');
80 header('Expires: 0');
81
82 echo json_encode( get_option( $unique ) );
83
84 die();
85
86 }
87 add_action( 'wp_ajax_csf-export', 'csf_export' );
88 }
89
90 /**
91 *
92 * Import Ajax
93 *
94 * @since 1.0.0
95 * @version 1.0.0
96 *
97 */
98 if ( ! function_exists( 'csf_import_ajax' ) ) {
99 function csf_import_ajax() {
100
101 $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
102 $unique = ( ! empty( $_POST[ 'unique' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'unique' ] ) ) : '';
103
104 if ( ! wp_verify_nonce( $nonce, 'csf_backup_nonce' ) ) {
105 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'streamcast' ) ) );
106 }
107
108 $data = ( ! empty( $_POST[ 'data' ] ) ) ? wp_kses_post_deep( json_decode( wp_unslash( $_POST[ 'data' ] ), true ) ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
109
110 if ( empty( $unique ) ) {
111 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid key.', 'streamcast' ) ) );
112 }
113
114 if ( empty( $data ) || ! is_array( $data ) ) {
115 wp_send_json_error( array( 'error' => esc_html__( 'Error: The response is not a valid JSON response.', 'streamcast' ) ) );
116 }
117
118 // Success
119 update_option( $unique, $data );
120
121 wp_send_json_success();
122
123 }
124 add_action( 'wp_ajax_csf-import', 'csf_import_ajax' );
125 }
126
127 /**
128 *
129 * Reset Ajax
130 *
131 * @since 1.0.0
132 * @version 1.0.0
133 *
134 */
135 if ( ! function_exists( 'csf_reset_ajax' ) ) {
136 function csf_reset_ajax() {
137
138 $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
139 $unique = ( ! empty( $_POST[ 'unique' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'unique' ] ) ) : '';
140
141 if ( ! wp_verify_nonce( $nonce, 'csf_backup_nonce' ) ) {
142 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'streamcast' ) ) );
143 }
144
145 // Success
146 delete_option( $unique );
147
148 wp_send_json_success();
149
150 }
151 add_action( 'wp_ajax_csf-reset', 'csf_reset_ajax' );
152 }
153
154 /**
155 *
156 * Chosen Ajax
157 *
158 * @since 1.0.0
159 * @version 1.0.0
160 *
161 */
162 if ( ! function_exists( 'csf_chosen_ajax' ) ) {
163 function csf_chosen_ajax() {
164
165 $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
166
167 if ( ! wp_verify_nonce( $nonce, 'csf_chosen_ajax_nonce' ) ) {
168 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'streamcast' ) ) );
169 }
170
171 $type = ( ! empty( $_POST[ 'type' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'type' ] ) ) : '';
172 $term = ( ! empty( $_POST[ 'term' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'term' ] ) ) : '';
173 $query = ( ! empty( $_POST[ 'query_args' ] ) ) ? wp_kses_post_deep( wp_unslash( $_POST[ 'query_args' ] ) ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
174
175 if ( empty( $type ) || empty( $term ) ) {
176 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid term ID.', 'streamcast' ) ) );
177 }
178
179 $capability = apply_filters( 'csf_chosen_ajax_capability', 'manage_options' );
180
181 if ( ! current_user_can( $capability ) ) {
182 wp_send_json_error( array( 'error' => esc_html__( 'Error: You do not have permission to do that.', 'streamcast' ) ) );
183 }
184
185 // Success
186 $options = CSF_Fields::field_data( $type, $term, $query );
187
188 wp_send_json_success( $options );
189
190 }
191 add_action( 'wp_ajax_csf-chosen', 'csf_chosen_ajax' );
192 }
193