Changeset 2907407
- Timestamp:
- 05/03/2023 10:21:49 AM (3 years ago)
- Location:
- g-core-labs-cdn/trunk
- Files:
-
- 10 edited
-
ajax/save.php (modified) (2 diffs)
-
css/custom.css (modified) (1 diff)
-
includes/about.php (modified) (1 diff)
-
includes/admin.php (modified) (7 diffs)
-
includes/function.php (modified) (1 diff)
-
includes/help.php (modified) (1 diff)
-
includes/stream.php (modified) (1 diff)
-
index.php (modified) (1 diff)
-
js/scripts.js (modified) (1 diff)
-
uninstall.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
g-core-labs-cdn/trunk/ajax/save.php
r2907361 r2907407 1 1 <?php 2 /** 3 * Save 4 * 5 * @package GCORE 6 */ 7 8 $gcore_tabs = array( 9 'main' => array( 'name' => esc_html( __( 'General', 'gcore_translate' ) ) ), 10 'types' => array( 'name' => esc_html( __( 'File types', 'gcore_translate' ) ) ), 11 'folders' => array( 'name' => esc_html( __( 'Folders', 'gcore_translate' ) ) ), 12 'exceptions' => array( 'name' => esc_html( __( 'Exceptions', 'gcore_translate' ) ) ), 2 3 $tabs = array( 4 'main' => array('name' => __('General', "gcore_translate")), 5 'types' => array('name' => __('File types', "gcore_translate")), 6 'folders' => array('name' => __('Folders', "gcore_translate")), 7 'exceptions' => array('name' => __('Exceptions', "gcore_translate")) 13 8 ); 14 if ( isset( $_GET['tab'] ) && in_array( $_GET['tab'], array( 'types', 'folders', 'exceptions' ), true )) {15 sanitize_text_field( wp_unslash( $_GET['tab'] ) );9 if (isset($_GET['tab']) AND in_array($_GET['tab'], array('types', 'folders', 'exceptions'))) { 10 $get_tab = $_GET['tab']; 16 11 } else { 17 $get_tab = 'main'; 18 } 19 $del = null !== isset( $_GET['del'] ) ? sanitize_text_field( wp_unslash( $_GET['del'] ) ) : null; 20 21 if ( isset( $_POST['save'] ) ) { 22 if ( 'main' === $get_tab ) { 23 $gcore_cdn_url = isset( $_POST['gcore_cdn_url'] ) ? trim( esc_url_raw( wp_unslash( $_POST['gcore_cdn_url'] ) ) ) : ''; 24 if ( '' !== $gcore_cdn_url ) { 25 $gcore_cdn_url = trailingslashit( untrailingslashit( $gcore_cdn_url ) ); 26 } 27 update_option( 'gcore_cdn_url', $gcore_cdn_url ); 28 $gcore_enable_cdn = isset( $_POST['gcore_enable_cdn'] ) ? intval( $_POST['gcore_enable_cdn'] ) : 0; 29 update_option( 'gcore_enable_cdn', $gcore_enable_cdn ); 30 } 31 if ( 'types' === $get_tab ) { 32 $gcore_cdn_types = get_option( 'gcore_cdn_types' ); 33 $new_type = isset( $_POST['new_type'] ) ? sanitize_text_field( wp_unslash( $_POST['new_type'] ) ) : ''; 34 $new_type = preg_replace( '/[^a-zA-Z0-9]/ui', '', strtolower( trim( $new_type ) ) ); 35 if ( '' !== $new_type ) { 36 if ( '' !== $gcore_cdn_types ) { 37 $gcore_cdn_types = json_decode( $gcore_cdn_types, true ); 38 } else { 39 $gcore_cdn_types = array(); 40 } 41 array_push( $gcore_cdn_types, $new_type ); 42 $gcore_cdn_types = array_unique( $gcore_cdn_types ); 43 $gcore_cdn_types = wp_json_encode( $gcore_cdn_types ); 44 update_option( 'gcore_cdn_types', $gcore_cdn_types ); 45 } 46 update_option( 'gcore_type_image', isset( $_POST['gcore_type_image'] ) ? intval( $_POST['gcore_type_image'] ) : 0 ); 47 update_option( 'gcore_type_video', isset( $_POST['gcore_type_video'] ) ? intval( $_POST['gcore_type_video'] ) : 0 ); 48 update_option( 'gcore_type_audio', isset( $_POST['gcore_type_audio'] ) ? intval( $_POST['gcore_type_audio'] ) : 0 ); 49 update_option( 'gcore_type_js', isset( $_POST['gcore_type_js'] ) ? intval( $_POST['gcore_type_js'] ) : 0 ); 50 update_option( 'gcore_type_css', isset( $_POST['gcore_type_css'] ) ? intval( $_POST['gcore_type_css'] ) : 0 ); 51 update_option( 'gcore_type_archive', isset( $_POST['gcore_type_archive'] ) ? intval( $_POST['gcore_type_archive'] ) : 0 ); 52 update_option( 'gcore_type_advanced', isset( $_POST['gcore_type_advanced'] ) ? intval( $_POST['gcore_type_advanced'] ) : 0 ); 53 54 } 55 if ( 'folders' === $get_tab ) { 56 $gcore_cdn_folders = get_option( 'gcore_cdn_folders' ); 57 $new_folder = isset( $_POST['new_folder'] ) ? trim( sanitize_text_field( wp_unslash( $_POST['new_folder'] ) ) ) : ''; 58 if ( '' !== $new_folder ) { 59 $new_folder = trailingslashit( untrailingslashit( $new_folder ) ); 60 $first = substr( $new_folder, 0, 1 ); 61 if ( '/' !== $first ) { 62 $new_folder = '/' . $new_folder; 63 } 64 if ( '' !== $gcore_cdn_folders ) { 65 $gcore_cdn_folders = json_decode( $gcore_cdn_folders, true ); 66 } else { 67 $gcore_cdn_folders = array(); 68 } 69 array_push( $gcore_cdn_folders, $new_folder ); 70 $gcore_cdn_folders = array_unique( $gcore_cdn_folders ); 71 $gcore_cdn_folders = wp_json_encode( $gcore_cdn_folders ); 72 update_option( 'gcore_cdn_folders', $gcore_cdn_folders ); 73 } 74 update_option( 'gcore_folder_templates', intval( isset( $_POST['gcore_folder_templates'] ) ? $_POST['gcore_folder_templates'] : 0 ) ); 75 update_option( 'gcore_folder_plugins', intval( isset( $_POST['gcore_folder_plugins'] ) ? $_POST['gcore_folder_plugins'] : 0 ) ); 76 update_option( 'gcore_folder_content', intval( isset( $_POST['gcore_folder_content'] ) ? $_POST['gcore_folder_content'] : 0 ) ); 77 update_option( 'gcore_folder_advanced', intval( isset( $_POST['gcore_folder_advanced'] ) ? $_POST['gcore_folder_advanced'] : 0 ) ); 78 79 } 80 if ( 'exceptions' === $get_tab ) { 81 $gcore_cdn_exceptions = get_option( 'gcore_cdn_exceptions' ); 82 $new_exception = isset( $_POST['new_exception'] ) ? trim( wp_unslash( esc_url_raw( wp_unslash( $_POST['new_exception'] ) ) ) ) : ''; 83 $new_exception = explode( '?', $new_exception ); 84 $new_exception = explode( '&', $new_exception[0] ); 85 $new_exception = $new_exception[0]; 86 if ( '' !== $new_exception ) { 87 if ( '' !== $gcore_cdn_exceptions ) { 88 $gcore_cdn_exceptions = json_decode( $gcore_cdn_exceptions, true ); 89 } else { 90 $gcore_cdn_exceptions = array(); 91 } 92 array_push( $gcore_cdn_exceptions, $new_exception ); 93 $gcore_cdn_exceptions = array_unique( $gcore_cdn_exceptions ); 94 $gcore_cdn_exceptions = wp_json_encode( $gcore_cdn_exceptions ); 95 update_option( 'gcore_cdn_exceptions', $gcore_cdn_exceptions ); 96 } 97 } 98 } elseif ( null !== $del ) { 99 if ( 'types' === $get_tab ) { 100 $gcore_cdn_types = get_option( 'gcore_cdn_types' ); 101 $new_type = preg_replace( '/[^a-zA-Z0-9]/ui', '', strtolower( trim( $del ) ) ); 102 if ( '' !== $new_type ) { 103 if ( '' !== $gcore_cdn_types ) { 104 $gcore_cdn_types = json_decode( $gcore_cdn_types, true ); 105 $k = array_search( $new_type, $gcore_cdn_types, true ); 106 if ( false !== $k ) { 107 unset( $gcore_cdn_types[ $k ] ); 108 $gcore_cdn_types = wp_json_encode( $gcore_cdn_types ); 109 update_option( 'gcore_cdn_types', $gcore_cdn_types ); 110 } 111 } 112 } 113 } 114 if ( 'folders' === $get_tab ) { 115 $gcore_cdn_folders = get_option( 'gcore_cdn_folders' ); 116 $new_folder = isset( $_POST['new_folder'] ) ? trim( sanitize_text_field( wp_unslash( $_POST['new_folder'] ) ) ) : ''; 117 if ( '' !== $new_folder ) { 118 $new_folder = trailingslashit( untrailingslashit( $new_folder ) ); 119 $first = substr( $new_folder, 0, 1 ); 120 if ( '/' !== $first ) { 121 $new_folder = '/' . $new_folder; 122 } 123 if ( '' !== $gcore_cdn_folders ) { 124 $gcore_cdn_folders = json_decode( $gcore_cdn_folders, true ); 125 $k = array_search( $new_folder, $gcore_cdn_folders, true ); 126 if ( false !== $k ) { 127 unset( $gcore_cdn_folders[ $k ] ); 128 $gcore_cdn_folders = wp_json_encode( $gcore_cdn_folders ); 129 update_option( 'gcore_cdn_folders', $gcore_cdn_folders ); 130 } 131 } 132 } 133 } 134 if ( 'exceptions' === $get_tab ) { 135 $gcore_cdn_exceptions = get_option( 'gcore_cdn_exceptions' ); 136 $new_exception = isset( $_POST['new_exception'] ) ? trim( wp_unslash( esc_url_raw( wp_unslash( $_POST['new_exception'] ) ) ) ) : ''; 137 if ( '' !== $new_exception ) { 138 if ( '' !== $gcore_cdn_exceptions ) { 139 $gcore_cdn_exceptions = json_decode( $gcore_cdn_exceptions, true ); 140 $k = array_search( $new_exception, $gcore_cdn_exceptions, true ); 141 if ( false !== $k ) { 142 unset( $gcore_cdn_exceptions[ $k ] ); 143 $gcore_cdn_exceptions = wp_json_encode( $gcore_cdn_exceptions ); 144 update_option( 'gcore_cdn_exceptions', $gcore_cdn_exceptions ); 145 } 146 } 147 } 148 } 149 } 150 151 $gcore_enable_cdn = get_option( 'gcore_enable_cdn' ); 152 $gcore_cdn_disabled = ( 1 === $gcore_enable_cdn ) ? '' : ' disabled'; 153 154 if ( 'main' === $get_tab ) { 155 $gcore_cdn_url = get_option( 'gcore_cdn_url' ); 156 $gcore_enable_cdn_checked = 1 === (int) $gcore_enable_cdn ? ' checked="checked"' : ''; 157 } 158 if ( 'types' === $get_tab ) { 159 160 $gcore_type_advanced = get_option( 'gcore_type_advanced' ); 161 $gcore_type_advanced_checked = ( 1 === (int) $gcore_type_advanced ) ? ' checked="checked"' : ''; 162 163 if ( 0 === $gcore_type_advanced ) { 164 $gcore_type_image = get_option( 'gcore_type_image' ); 165 $gcore_type_image_checked = ( 1 === (int) $gcore_type_image ) ? ' checked="checked"' : ''; 166 $gcore_type_video = get_option( 'gcore_type_video' ); 167 $gcore_type_video_checked = ( 1 === (int) $gcore_type_video ) ? ' checked="checked"' : ''; 168 $gcore_type_audio = get_option( 'gcore_type_audio' ); 169 $gcore_type_audio_checked = ( 1 === (int) $gcore_type_audio ) ? ' checked="checked"' : ''; 170 $gcore_type_js = get_option( 'gcore_type_js' ); 171 $gcore_type_js_checked = ( 1 === (int) $gcore_type_js ) ? ' checked="checked"' : ''; 172 $gcore_type_css = get_option( 'gcore_type_css' ); 173 $gcore_type_css_checked = ( 1 === (int) $gcore_type_css ) ? ' checked="checked"' : ''; 174 $gcore_type_archive = get_option( 'gcore_type_archive' ); 175 $gcore_type_archive_checked = ( 1 === (int) $gcore_type_archive ) ? ' checked="checked"' : ''; 176 } else { 177 $gcore_type_image_checked = ' disabled'; 178 $gcore_type_video_checked = ' disabled'; 179 $gcore_type_audio_checked = ' disabled'; 180 $gcore_type_js_checked = ' disabled'; 181 $gcore_type_css_checked = ' disabled'; 182 $gcore_type_archive_checked = ' disabled'; 183 } 184 185 186 $gcore_cdn_types = get_option( 'gcore_cdn_types' ); 187 $gcore_cdn_types = json_decode( $gcore_cdn_types, true ); 188 if ( '' === $gcore_cdn_types ) { 189 $gcore_cdn_types = array(); 190 } 191 } 192 if ( 'folders' === $get_tab ) { 193 194 $gcore_folder_advanced = get_option( 'gcore_folder_advanced' ); 195 $gcore_folder_advanced_checked = ( 1 === (int) $gcore_folder_advanced ) ? ' checked="checked"' : ''; 196 197 if ( 0 === $gcore_folder_advanced ) { 198 $gcore_folder_templates = get_option( 'gcore_folder_templates' ); 199 $gcore_folder_templates_checked = ( 1 === (int) $gcore_folder_templates ) ? ' checked="checked"' : ''; 200 $gcore_folder_plugins = get_option( 'gcore_folder_plugins' ); 201 $gcore_folder_plugins_checked = ( 1 === (int) $gcore_folder_plugins ) ? ' checked="checked"' : ''; 202 $gcore_folder_content = get_option( 'gcore_folder_content' ); 203 $gcore_folder_content_checked = ( 1 === (int) $gcore_folder_content ) ? ' checked="checked"' : ''; 204 } else { 205 $gcore_folder_templates_checked = ' disabled'; 206 $gcore_folder_plugins_checked = ' disabled'; 207 $gcore_folder_content_checked = ' disabled'; 208 } 209 210 $gcore_cdn_folders = get_option( 'gcore_cdn_folders' ); 211 $gcore_cdn_folders = json_decode( $gcore_cdn_folders, true ); 212 if ( '' === $gcore_cdn_folders ) { 213 $gcore_cdn_folders = array(); 214 } 215 } 216 if ( 'exceptions' === $get_tab ) { 217 $gcore_cdn_exceptions = get_option( 'gcore_cdn_exceptions' ); 218 $gcore_cdn_exceptions = json_decode( $gcore_cdn_exceptions, true ); 219 if ( '' === $gcore_cdn_exceptions ) { 220 $gcore_cdn_exceptions = array(); 221 } 222 } 223 224 225 $title_page = $gcore_tabs[ $get_tab ]['name']; 12 $get_tab = 'main'; 13 } 14 15 16 if (isset($_POST['save'])) { 17 if ($get_tab == "main") { 18 $gcore_cdn_url = sanitize_url(esc_url(trim($_POST['gcore_cdn_url']))); 19 if ($gcore_cdn_url != '') { 20 $gcore_cdn_url = trailingslashit(untrailingslashit($gcore_cdn_url)); 21 } 22 update_option('gcore_cdn_url', $gcore_cdn_url); 23 update_option('gcore_enable_cdn', intval($_POST['gcore_enable_cdn'])); 24 } 25 if ($get_tab == "types") { 26 $gcore_cdn_types = get_option('gcore_cdn_types'); 27 $new_type = preg_replace('/[^a-zA-Z0-9]/ui', '', strtolower(trim($_POST['new_type']))); 28 if ($new_type != '') { 29 if ($gcore_cdn_types != '') { 30 $gcore_cdn_types = json_decode($gcore_cdn_types, true); 31 } else { 32 $gcore_cdn_types = array(); 33 } 34 array_push($gcore_cdn_types, $new_type); 35 $gcore_cdn_types = array_unique($gcore_cdn_types); 36 $gcore_cdn_types = json_encode($gcore_cdn_types); 37 update_option('gcore_cdn_types', $gcore_cdn_types); 38 } 39 update_option('gcore_type_image', intval($_POST['gcore_type_image'])); 40 update_option('gcore_type_video', intval($_POST['gcore_type_video'])); 41 update_option('gcore_type_audio', intval($_POST['gcore_type_audio'])); 42 update_option('gcore_type_js', intval($_POST['gcore_type_js'])); 43 update_option('gcore_type_css', intval($_POST['gcore_type_css'])); 44 update_option('gcore_type_archive', intval($_POST['gcore_type_archive'])); 45 update_option('gcore_type_advanced', intval($_POST['gcore_type_advanced'])); 46 47 } 48 if ($get_tab == "folders") { 49 $gcore_cdn_folders = get_option('gcore_cdn_folders'); 50 $new_folder = sanitize_text_field(trim($_POST['new_folder'])); 51 if ($new_folder != '') { 52 $new_folder = trailingslashit(untrailingslashit($new_folder)); 53 $first = substr($new_folder, 0, 1); 54 if ($first != "/") { 55 $new_folder = "/" . $new_folder; 56 } 57 if ($gcore_cdn_folders != '') { 58 $gcore_cdn_folders = json_decode($gcore_cdn_folders, true); 59 } else { 60 $gcore_cdn_folders = array(); 61 } 62 array_push($gcore_cdn_folders, $new_folder); 63 $gcore_cdn_folders = array_unique($gcore_cdn_folders); 64 $gcore_cdn_folders = json_encode($gcore_cdn_folders); 65 update_option('gcore_cdn_folders', $gcore_cdn_folders); 66 } 67 update_option('gcore_folder_templates', intval($_POST['gcore_folder_templates'])); 68 update_option('gcore_folder_plugins', intval($_POST['gcore_folder_plugins'])); 69 update_option('gcore_folder_content', intval($_POST['gcore_folder_content'])); 70 update_option('gcore_folder_advanced', intval($_POST['gcore_folder_advanced'])); 71 72 } 73 if ($get_tab == "exceptions") { 74 $gcore_cdn_exceptions = get_option('gcore_cdn_exceptions'); 75 $new_exception = sanitize_text_field(esc_url(trim($_POST['new_exception']))); 76 $new_exception = explode("?", $new_exception); 77 $new_exception = explode("&", $new_exception[0]); 78 $new_exception = $new_exception[0]; 79 if ($new_exception != '') { 80 if ($gcore_cdn_exceptions != '') { 81 $gcore_cdn_exceptions = json_decode($gcore_cdn_exceptions, true); 82 } else { 83 $gcore_cdn_exceptions = array(); 84 } 85 array_push($gcore_cdn_exceptions, $new_exception); 86 $gcore_cdn_exceptions = array_unique($gcore_cdn_exceptions); 87 $gcore_cdn_exceptions = json_encode($gcore_cdn_exceptions); 88 update_option('gcore_cdn_exceptions', $gcore_cdn_exceptions); 89 } 90 } 91 } elseif (isset($_GET['del'])) { 92 if ($get_tab == "types") { 93 $gcore_cdn_types = get_option('gcore_cdn_types'); 94 $new_type = preg_replace('/[^a-zA-Z0-9]/ui', '', strtolower(trim($_GET['del']))); 95 if ($new_type != '') { 96 if ($gcore_cdn_types != '') { 97 $gcore_cdn_types = json_decode($gcore_cdn_types, true); 98 if (($k = array_search($new_type, $gcore_cdn_types)) !== false) { 99 unset($gcore_cdn_types[$k]); 100 $gcore_cdn_types = json_encode($gcore_cdn_types); 101 update_option('gcore_cdn_types', $gcore_cdn_types); 102 } 103 } 104 } 105 } 106 if ($get_tab == "folders") { 107 $gcore_cdn_folders = get_option('gcore_cdn_folders'); 108 $new_folder = sanitize_text_field(trim($_GET['del'])); 109 if ($new_folder != '') { 110 $new_folder = trailingslashit(untrailingslashit($new_folder)); 111 $first = substr($new_folder, 0, 1); 112 if ($first != "/") { 113 $new_folder = "/" . $new_folder; 114 } 115 if ($gcore_cdn_folders != '') { 116 $gcore_cdn_folders = json_decode($gcore_cdn_folders, true); 117 118 if (($k = array_search($new_folder, $gcore_cdn_folders)) !== false) { 119 unset($gcore_cdn_folders[$k]); 120 $gcore_cdn_folders = json_encode($gcore_cdn_folders); 121 update_option('gcore_cdn_folders', $gcore_cdn_folders); 122 } 123 } 124 } 125 } 126 if ($get_tab == "exceptions") { 127 $gcore_cdn_exceptions = get_option('gcore_cdn_exceptions'); 128 $new_exception = sanitize_text_field(esc_url(trim($_GET['del']))); 129 if ($new_exception != '') { 130 if ($gcore_cdn_exceptions != '') { 131 $gcore_cdn_exceptions = json_decode($gcore_cdn_exceptions, true); 132 133 if (($k = array_search($new_exception, $gcore_cdn_exceptions)) !== false) { 134 unset($gcore_cdn_exceptions[$k]); 135 $gcore_cdn_exceptions = json_encode($gcore_cdn_exceptions); 136 update_option('gcore_cdn_exceptions', $gcore_cdn_exceptions); 137 } 138 } 139 } 140 } 141 } 142 143 $gcore_enable_cdn = get_option('gcore_enable_cdn'); 144 $gcore_cdn_disabled = $gcore_enable_cdn == 1 ? '' : ' disabled'; 145 146 if ($get_tab == "main") { 147 $gcore_cdn_url = get_option('gcore_cdn_url'); 148 $gcore_enable_cdn_checked = $gcore_enable_cdn == 1 ? ' checked="checked"' : ''; 149 } 150 if ($get_tab == "types") { 151 152 $gcore_type_advanced = get_option('gcore_type_advanced'); 153 $gcore_type_advanced_checked = $gcore_type_advanced == 1 ? ' checked="checked"' : ''; 154 155 if ($gcore_type_advanced == 0) { 156 $gcore_type_image = get_option('gcore_type_image'); 157 $gcore_type_image_checked = $gcore_type_image == 1 ? ' checked="checked"' : ''; 158 $gcore_type_video = get_option('gcore_type_video'); 159 $gcore_type_video_checked = $gcore_type_video == 1 ? ' checked="checked"' : ''; 160 $gcore_type_audio = get_option('gcore_type_audio'); 161 $gcore_type_audio_checked = $gcore_type_audio == 1 ? ' checked="checked"' : ''; 162 $gcore_type_js = get_option('gcore_type_js'); 163 $gcore_type_js_checked = $gcore_type_js == 1 ? ' checked="checked"' : ''; 164 $gcore_type_css = get_option('gcore_type_css'); 165 $gcore_type_css_checked = $gcore_type_css == 1 ? ' checked="checked"' : ''; 166 $gcore_type_archive = get_option('gcore_type_archive'); 167 $gcore_type_archive_checked = $gcore_type_archive == 1 ? ' checked="checked"' : ''; 168 } else { 169 $gcore_type_image_checked = ' disabled'; 170 $gcore_type_video_checked = ' disabled'; 171 $gcore_type_audio_checked = ' disabled'; 172 $gcore_type_js_checked = ' disabled'; 173 $gcore_type_css_checked = ' disabled'; 174 $gcore_type_archive_checked = ' disabled'; 175 } 176 177 178 $gcore_cdn_types = get_option('gcore_cdn_types'); 179 $gcore_cdn_types = json_decode($gcore_cdn_types, true); 180 if ($gcore_cdn_types == '') { 181 $gcore_cdn_types = array(); 182 } 183 } 184 if ($get_tab == "folders") { 185 186 $gcore_folder_advanced = get_option('gcore_folder_advanced'); 187 $gcore_folder_advanced_checked = $gcore_folder_advanced == 1 ? ' checked="checked"' : ''; 188 189 if ($gcore_folder_advanced == 0) { 190 $gcore_folder_templates = get_option('gcore_folder_templates'); 191 $gcore_folder_templates_checked = $gcore_folder_templates == 1 ? ' checked="checked"' : ''; 192 $gcore_folder_plugins = get_option('gcore_folder_plugins'); 193 $gcore_folder_plugins_checked = $gcore_folder_plugins == 1 ? ' checked="checked"' : ''; 194 $gcore_folder_content = get_option('gcore_folder_content'); 195 $gcore_folder_content_checked = $gcore_folder_content == 1 ? ' checked="checked"' : ''; 196 } else { 197 $gcore_folder_templates_checked = ' disabled'; 198 $gcore_folder_plugins_checked = ' disabled'; 199 $gcore_folder_content_checked = ' disabled'; 200 } 201 202 $gcore_cdn_folders = get_option('gcore_cdn_folders'); 203 $gcore_cdn_folders = json_decode($gcore_cdn_folders, true); 204 if ($gcore_cdn_folders == '') { 205 $gcore_cdn_folders = array(); 206 } 207 } 208 if ($get_tab == "exceptions") { 209 $gcore_cdn_exceptions = get_option('gcore_cdn_exceptions'); 210 $gcore_cdn_exceptions = json_decode($gcore_cdn_exceptions, true); 211 if ($gcore_cdn_exceptions == '') { 212 $gcore_cdn_exceptions = array(); 213 } 214 } 215 216 217 $title_page = $tabs[$get_tab]['name']; 226 218 227 219 $admin_url = admin_url(); 228 $data = '';229 $data .= '230 <h1>' . esc_html( __( 'CDN settings', 'gcore_translate' ) ) . ' - ' . esc_html( $title_page ). '</h1>220 $data = ''; 221 $data .= ' 222 <h1>' . __("CDN settings", "gcore_translate") . ' - ' . $title_page . '</h1> 231 223 <div> 232 224 <h3> 233 225 '; 234 226 235 foreach ( $gcore_tabs as $key => $value) {236 $c = $key == $get_tab ? ' nav-tab-active': '';237 $data .= '<a class="nav-tab' . esc_html( $c ) . '" href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=' . esc_html( $key ) . '">' . esc_html( $value['name'] ). '</a>';227 foreach ($tabs as $key => $value) { 228 $c = $key == $get_tab ? " nav-tab-active" : ''; 229 $data .= '<a class="nav-tab' . $c . '" href="' . $admin_url . 'admin.php?page=gcore_labs&tab=' . $key . '">' . $value['name'] . '</a>'; 238 230 } 239 231 $data .= '</h3> … … 241 233 <form method="post" name="preferences" id="preferences" class="validate">'; 242 234 243 if ( 'main' === $get_tab) {244 $data .= '<table class="form-table" style="max-width: 600px;">235 if ($get_tab == "main") { 236 $data .= '<table class="form-table" style="max-width: 600px;"> 245 237 <tr class="form-field form-required"> 246 238 <td colspan="2"> 247 <input type="checkbox" name="gcore_enable_cdn" id="gcore_enable_cdn" value="1" ' . esc_html( $gcore_enable_cdn_checked ) . '> <label for="gcore_enable_cdn">' . esc_html( __( 'Enable CDN', 'gcore_translate' )) . '</label>248 <p class="description" id="tagline-description">' . esc_html( __( 'In the paths to files conforming to the rules specified below, a domain will be replaced with a personal domain.', 'gcore_translate' )) . '</p>239 <input type="checkbox" name="gcore_enable_cdn" id="gcore_enable_cdn" value="1" ' . $gcore_enable_cdn_checked . '> <label for="gcore_enable_cdn">' . __("Enable CDN", "gcore_translate") . '</label> 240 <p class="description" id="tagline-description">' . __("In the paths to files conforming to the rules specified below, a domain will be replaced with a personal domain.", "gcore_translate") . '</p> 249 241 </td> 250 242 </tr> 251 243 <tr class="form-field form-required"> 252 <td scope="row"><label for="user_login">' . esc_html( __( 'Personal domain (for configuring CNAME)', 'gcore_translate' )) . '</label></td>244 <td scope="row"><label for="user_login">' . __("Personal domain (for configuring CNAME)", "gcore_translate") . '</label></td> 253 245 <td> 254 <input type="text" name="gcore_cdn_url" id="gcore_cdn_url" ' . esc_html( $gcore_cdn_disabled ) . ' value="' . esc_url( $gcore_cdn_url ) . '" placeholder="' . esc_html( __( 'Example', 'gcore_translate' )) . ': https://cdn.example.com/">255 <p class="description" id="tagline-description">' . esc_html( __( 'Specify the personal domain with a scheme corresponding to the one specified in Gcore control panel. If you are using a domain in your zone, make sure that this domain is added in the DNS provider settings.', 'gcore_translate' )) . '</p>246 <input type="text" name="gcore_cdn_url" id="gcore_cdn_url" ' . $gcore_cdn_disabled . ' value="' . $gcore_cdn_url . '" placeholder="' . __("Example", "gcore_translate") . ': https://cdn.example.com/"> 247 <p class="description" id="tagline-description">' . __("Specify the personal domain with a scheme corresponding to the one specified in Gcore control panel. If you are using a domain in your zone, make sure that this domain is added in the DNS provider settings.", "gcore_translate") . '</p> 256 248 </td> 257 249 </tr> 258 250 <tr> 259 251 <td></td> 260 <td style="text-align: right"><button type="submit" name="save" id="save" class="button button-primary"><span class="save">' . esc_html( __( 'Save', 'gcore_translate' ) ) . '</span><span class="save_go">' . esc_html( __( 'Save and Go', 'gcore_translate' )) . '</span></button></td>252 <td style="text-align: right"><button type="submit" name="save" id="save" class="button button-primary"><span class="save">' . __("Save", "gcore_translate") . '</span><span class="save_go">' . __("Save and Go", "gcore_translate") . '</span></button></td> 261 253 </tr> 262 254 </table> 263 255 '; 264 256 } 265 if ( 'types' === $get_tab) {266 $data .= '<div class="clear"></div>267 <p class="description" style="margin:15px 0 0 5px">' . esc_html( __( 'Specify the types of files you want to distribute via CDN.', 'gcore_translate' )) . '</p>257 if ($get_tab == "types") { 258 $data .= '<div class="clear"></div> 259 <p class="description" style="margin:15px 0 0 5px">' . __("Specify the types of files you want to distribute via CDN.", "gcore_translate") . '</p> 268 260 <table class="form-table" style="max-width: 600px;"> 269 261 <tr class="form-field form-required"> 270 <td><input type="checkbox" name="gcore_type_image" id="gcore_type_image" value="1" ' . esc_html( $gcore_type_image_checked ) . '> <label for="gcore_type_image">' . esc_html( __( 'Type Images', 'gcore_translate' )) . '</label></td>271 <td><input type="checkbox" name="gcore_type_video" id="gcore_type_video" value="1" ' . esc_html( $gcore_type_video_checked ) . '> <label for="gcore_type_video">' . esc_html( __( 'Type Video', 'gcore_translate' )) . '</label></td>272 <td><input type="checkbox" name="gcore_type_audio" id="gcore_type_audio" value="1" ' . esc_html( $gcore_type_audio_checked ) . '> <label for="gcore_type_audio">' . esc_html( __( 'Type Audio', 'gcore_translate' )) . '</label></td>273 </tr> 274 <tr class="form-field form-required"> 275 <td><input type="checkbox" name="gcore_type_js" id="gcore_type_js" value="1" ' . esc_html( $gcore_type_js_checked ) . '> <label for="gcore_type_js">' . esc_html( __( 'Type JS', 'gcore_translate' )) . '</label></td>276 <td><input type="checkbox" name="gcore_type_css" id="gcore_type_css" value="1" ' . esc_html( $gcore_type_css_checked ) . '> <label for="gcore_type_css">' . esc_html( __( 'Type CSS', 'gcore_translate' )) . '</label></td>277 <td><input type="checkbox" name="gcore_type_archive" id="gcore_type_archive" value="1" ' . esc_html( $gcore_type_archive_checked ) . '> <label for="gcore_type_archive">' . esc_html( __( 'Type Archive', 'gcore_translate' )) . '</label></td>278 </tr> 279 </table> 280 <div style="margin: 10px"><input type="checkbox" name="gcore_type_advanced" id="gcore_type_advanced" value="1" ' . esc_html( $gcore_type_advanced_checked ) . '> <label for="gcore_type_advanced">' . esc_html( __( 'Advanced property', 'gcore_translate' )) . '</label></div>281 '; 282 $data .= '262 <td><input type="checkbox" name="gcore_type_image" id="gcore_type_image" value="1" ' . $gcore_type_image_checked . '> <label for="gcore_type_image">' . __("Type Images", "gcore_translate") . '</label></td> 263 <td><input type="checkbox" name="gcore_type_video" id="gcore_type_video" value="1" ' . $gcore_type_video_checked . '> <label for="gcore_type_video">' . __("Type Video", "gcore_translate") . '</label></td> 264 <td><input type="checkbox" name="gcore_type_audio" id="gcore_type_audio" value="1" ' . $gcore_type_audio_checked . '> <label for="gcore_type_audio">' . __("Type Audio", "gcore_translate") . '</label></td> 265 </tr> 266 <tr class="form-field form-required"> 267 <td><input type="checkbox" name="gcore_type_js" id="gcore_type_js" value="1" ' . $gcore_type_js_checked . '> <label for="gcore_type_js">' . __("Type JS", "gcore_translate") . '</label></td> 268 <td><input type="checkbox" name="gcore_type_css" id="gcore_type_css" value="1" ' . $gcore_type_css_checked . '> <label for="gcore_type_css">' . __("Type CSS", "gcore_translate") . '</label></td> 269 <td><input type="checkbox" name="gcore_type_archive" id="gcore_type_archive" value="1" ' . $gcore_type_archive_checked . '> <label for="gcore_type_archive">' . __("Type Archive", "gcore_translate") . '</label></td> 270 </tr> 271 </table> 272 <div style="margin: 10px"><input type="checkbox" name="gcore_type_advanced" id="gcore_type_advanced" value="1" ' . $gcore_type_advanced_checked . '> <label for="gcore_type_advanced">' . __("Advanced property", "gcore_translate") . '</label></div> 273 '; 274 $data .= ' 283 275 <table class="form-table" style="max-width: 600px;"> 284 276 '; 285 if ( 1 === (int) $gcore_type_advanced) {286 foreach ( $gcore_cdn_types as $gcore_type) {287 $admin_url = admin_url();288 $data.= '<tr class="form-field form-required">289 <td scope="row">' . esc_html( $gcore_type ). '</td>290 <td><a ' . esc_html( $gcore_cdn_disabled ) . ' href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=types&del=' . esc_html( $gcore_type ) . '" class="button button-danger">' . esc_html( __( 'Delete', 'gcore_translate' )) . '</a></td>277 if ($gcore_type_advanced == 1) { 278 foreach ($gcore_cdn_types as $type) { 279 $admin_url = admin_url(); 280 $data .= '<tr class="form-field form-required"> 281 <td scope="row">' . $type . '</td> 282 <td><a ' . $gcore_cdn_disabled . ' href="' . $admin_url . 'admin.php?page=gcore_labs&tab=types&del=' . $type . '" class="button button-danger">' . __("Delete", "gcore_translate") . '</a></td> 291 283 </tr>'; 292 }293 $data .= '<tr class="form-field form-required">294 <td scope="row"><input ' . esc_html( $gcore_cdn_disabled ) . ' type="text" name="new_type" placeholder="' . esc_html( __( 'Example', 'gcore_translate' )) . ': jpg"></td>295 <td><input ' . esc_html( $gcore_cdn_disabled ) . ' type="submit" name="save" class="button button-primary" value="' . esc_html( __( 'Add', 'gcore_translate' )) . '"></td>296 </tr> 297 </table> 298 '; 299 }300 $data .= '<p class="submit"><input type="submit" name="save" id="save" class="button button-primary" value="' . esc_html( __( 'Save', 'gcore_translate' )) . '"></p>';301 } 302 if ( 'folders' === $get_tab) {303 $data .= '<div class="clear"></div>304 <p class="description" style="margin:15px 0 0 5px;max-width: 600px;">' . esc_html( __( 'Specify folders containing files you want to distribute via CDN. Leave this field blank to distribute files from all folders via CDN. Please note that only files that match file types specified on the File Types tab will be delivered via CDN.', 'gcore_translate' )) . '</p>284 } 285 $data .= '<tr class="form-field form-required"> 286 <td scope="row"><input ' . $gcore_cdn_disabled . ' type="text" name="new_type" placeholder="' . __("Example", "gcore_translate") . ': jpg"></td> 287 <td><input ' . $gcore_cdn_disabled . ' type="submit" name="save" class="button button-primary" value="' . __("Add", "gcore_translate") . '"></td> 288 </tr> 289 </table> 290 '; 291 } 292 $data .= '<p class="submit"><input type="submit" name="save" id="save" class="button button-primary" value="' . __("Save", "gcore_translate") . '"></p>'; 293 } 294 if ($get_tab == "folders") { 295 $data .= '<div class="clear"></div> 296 <p class="description" style="margin:15px 0 0 5px;max-width: 600px;">' . __("Specify folders containing files you want to distribute via CDN. Leave this field blank to distribute files from all folders via CDN. Please note that only files that match file types specified on the File Types tab will be delivered via CDN.", "gcore_translate") . '</p> 305 297 <table class="form-table" style="max-width: 600px;"> 306 298 <tr class="form-field form-required"> 307 <td><input type="checkbox" name="gcore_folder_templates" id="gcore_folder_templates" value="1" ' . esc_html( $gcore_folder_templates_checked ) . '> <label for="gcore_folder_templates">' . esc_html( __( 'Folder Templates', 'gcore_translate' )) . '</label></td>308 <td><input type="checkbox" name="gcore_folder_plugins" id="gcore_folder_plugins" value="1" ' . esc_html( $gcore_folder_plugins_checked ) . '> <label for="gcore_folder_plugins">' . esc_html( __( 'Folder Plugins', 'gcore_translate' )) . '</label></td>309 <td><input type="checkbox" name="gcore_folder_content" id="gcore_folder_content" value="1" ' . esc_html( $gcore_folder_content_checked ) . '> <label for="gcore_folder_content">' . esc_html( __( 'Folder Content', 'gcore_translate' )) . '</label></td>310 </tr> 311 </table> 312 <div style="margin: 10px"><input type="checkbox" name="gcore_folder_advanced" id="gcore_folder_advanced" value="1" ' . esc_html( $gcore_folder_advanced_checked ) . '> <label for="gcore_folder_advanced">' . esc_html( __( 'Advanced property', 'gcore_translate' )) . '</label></div>313 '; 314 $data .= '299 <td><input type="checkbox" name="gcore_folder_templates" id="gcore_folder_templates" value="1" ' . $gcore_folder_templates_checked . '> <label for="gcore_folder_templates">' . __("Folder Templates", "gcore_translate") . '</label></td> 300 <td><input type="checkbox" name="gcore_folder_plugins" id="gcore_folder_plugins" value="1" ' . $gcore_folder_plugins_checked . '> <label for="gcore_folder_plugins">' . __("Folder Plugins", "gcore_translate") . '</label></td> 301 <td><input type="checkbox" name="gcore_folder_content" id="gcore_folder_content" value="1" ' . $gcore_folder_content_checked . '> <label for="gcore_folder_content">' . __("Folder Content", "gcore_translate") . '</label></td> 302 </tr> 303 </table> 304 <div style="margin: 10px"><input type="checkbox" name="gcore_folder_advanced" id="gcore_folder_advanced" value="1" ' . $gcore_folder_advanced_checked . '> <label for="gcore_folder_advanced">' . __("Advanced property", "gcore_translate") . '</label></div> 305 '; 306 $data .= ' 315 307 <table class="form-table" style="max-width: 600px;"> 316 308 '; 317 if ( 1 === (int) $gcore_folder_advanced) {318 foreach ( $gcore_cdn_folders as $folder) {319 $folder_code = rawurlencode( $folder);320 $data.= '<tr class="form-field form-required">321 <td scope="row">' . esc_html( $folder ). '</td>322 <td><a ' . esc_html( $gcore_cdn_disabled ) . ' href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=folders&del=' . esc_html( $folder_code ) . '" class="button button-danger">' . esc_html( __( 'Delete', 'gcore_translate' )) . '</a></td>309 if ($gcore_folder_advanced == 1) { 310 foreach ($gcore_cdn_folders as $folder) { 311 $folder_code = urlencode($folder); 312 $data .= '<tr class="form-field form-required"> 313 <td scope="row">' . $folder . '</td> 314 <td><a ' . $gcore_cdn_disabled . ' href="' . $admin_url . 'admin.php?page=gcore_labs&tab=folders&del=' . $folder_code . '" class="button button-danger">' . __("Delete", "gcore_translate") . '</a></td> 323 315 </tr>'; 324 }325 $data .= '<tr class="form-field form-required">326 <td scope="row"><input ' . esc_html( $gcore_cdn_disabled ) . ' type="text" name="new_folder" placeholder="' . esc_html( __( 'Example', 'gcore_translate' )) . ': /wp-content/uploads/"></td>327 <td><input ' . esc_html( $gcore_cdn_disabled ) . ' type="submit" name="save" class="button button-primary" value="' . esc_html( __( 'Add', 'gcore_translate' )) . '"></td>316 } 317 $data .= '<tr class="form-field form-required"> 318 <td scope="row"><input ' . $gcore_cdn_disabled . ' type="text" name="new_folder" placeholder="' . __("Example", "gcore_translate") . ': /wp-content/uploads/"></td> 319 <td><input ' . $gcore_cdn_disabled . ' type="submit" name="save" class="button button-primary" value="' . __("Add", "gcore_translate") . '"></td> 328 320 </tr> 329 321 </table> 330 322 '; 331 }332 $data .= '<p class="submit"><input type="submit" name="save" id="save" class="button button-primary" value="' . esc_html( __( 'Save', 'gcore_translate' )) . '"></p>';333 } 334 if ( 'exceptions' === $get_tab) {335 $data .= '<div class="clear"></div>336 <p class="description" style="margin:15px 0 0 5px">' . esc_html( __( 'Specify the URLs you want to add to the exceptions list and not distribute them via CDN.', 'gcore_translate' )) . '</p>323 } 324 $data .= '<p class="submit"><input type="submit" name="save" id="save" class="button button-primary" value="' . __("Save", "gcore_translate") . '"></p>'; 325 } 326 if ($get_tab == "exceptions") { 327 $data .= '<div class="clear"></div> 328 <p class="description" style="margin:15px 0 0 5px">' . __("Specify the URLs you want to add to the exceptions list and not distribute them via CDN.", "gcore_translate") . '</p> 337 329 <table class="form-table" style="max-width: 600px;">'; 338 330 339 foreach ( $gcore_cdn_exceptions as $exception) {340 $delete_url= admin_url();341 $exception_code = rawurlencode( $exception);342 343 $data .= '<tr class="form-field form-required">344 <td scope="row"><a href="' . esc_html( $exception ) . '" target="_blank">' . esc_html( $exception ). '</a></td>345 <td><a ' . esc_html( $gcore_cdn_disabled ) . ' href="' . esc_url( $delete_url ) . 'admin.php?page=gcore_labs&tab=exceptions&del=' . esc_html( $exception_code ) . '" class="button button-danger">' . esc_html( __( 'Delete', 'gcore_translate' )) . '</a></td>331 foreach ($gcore_cdn_exceptions as $exception) { 332 $delete_url = admin_url(); 333 $exception_code = urlencode($exception); 334 335 $data .= '<tr class="form-field form-required"> 336 <td scope="row"><a href="' . $exception . '" target="_blank">' . $exception . '</a></td> 337 <td><a ' . $gcore_cdn_disabled . ' href="' . $delete_url . 'admin.php?page=gcore_labs&tab=exceptions&del=' . $exception_code . '" class="button button-danger">' . __("Delete", "gcore_translate") . '</a></td> 346 338 </tr>'; 347 }348 $data .= '<tr class="form-field form-required">349 <td scope="row"><input ' . esc_html( $gcore_cdn_disabled ) . ' type="text" name="new_exception" placeholder="' . esc_html( __( 'Example', 'gcore_translate' )) . ': https://example.com/exepstions-page.html"></td>350 <td><input ' . esc_html( $gcore_cdn_disabled ) . ' type="submit" name="save" class="button button-primary" value="' . esc_html( __( 'Add', 'gcore_translate' )) . '"></td>339 } 340 $data .= '<tr class="form-field form-required"> 341 <td scope="row"><input ' . $gcore_cdn_disabled . ' type="text" name="new_exception" placeholder="' . __("Example", "gcore_translate") . ': https://example.com/exepstions-page.html"></td> 342 <td><input ' . $gcore_cdn_disabled . ' type="submit" name="save" class="button button-primary" value="' . __("Add", "gcore_translate") . '"></td> 351 343 </tr> 352 344 </table>'; 353 345 } 354 346 $data .= '</form>'; 355 echo esc_html( $data);347 echo esc_html($data); -
g-core-labs-cdn/trunk/css/custom.css
r2907361 r2907407 1 1 .button-gcore { 2 display: inline-block;3 text-decoration: none;4 font-size: 13px;5 line-height: 2.15384615;6 min-height: 30px;7 margin: 0;8 padding: 0 10px;9 cursor: pointer;10 border-width: 1px;11 border-style: solid;12 -webkit-appearance: none;13 border-radius: 3px;14 white-space: nowrap;15 box-sizing: border-box;2 display: inline-block; 3 text-decoration: none; 4 font-size: 13px; 5 line-height: 2.15384615; 6 min-height: 30px; 7 margin: 0; 8 padding: 0 10px; 9 cursor: pointer; 10 border-width: 1px; 11 border-style: solid; 12 -webkit-appearance: none; 13 border-radius: 3px; 14 white-space: nowrap; 15 box-sizing: border-box; 16 16 } 17 17 .button-gcore.focus, 18 18 .button-gcore.hover, 19 19 .button-gcore { 20 color: #FFFFFF;21 border-color: #FF5700;22 background: #FF5700;20 color: #FFFFFF; 21 border-color: #FF5700; 22 background: #FF5700; 23 23 } 24 24 .button-gcore:hover { 25 background: #FFFFFF;26 border-color: #FF5700;27 color: #FF5700;25 background: #FFFFFF; 26 border-color: #FF5700; 27 color: #FF5700; 28 28 } -
g-core-labs-cdn/trunk/includes/about.php
r2907361 r2907407 1 <?php 2 /** 3 * About 4 * 5 * @package GCORE 6 */ 7 8 ?> 9 <h1><?php printf( esc_html( __( 'About', 'gcore_translate' ) ) ); ?></h1> 10 <p><?php printf( esc_html( __( 'Author', 'gcore_translate' ) ) ); ?>: <a href="https://gcore.com/" target="_blank">Gcore</a></p> 11 <p><?php printf( esc_html( __( 'Version', 'gcore_translate' ) ) ); ?>: <strong>1.1.9</strong></p> 12 <p><?php printf( esc_html( __( 'Supported WordPress version: 5.4 and above', 'gcore_translate' ) ) ); ?></p> 1 <h1><?php printf(__("About", "gcore_translate")); ?></h1> 2 <p><?php printf(__("Author", "gcore_translate")); ?>: <a href="https://gcore.com/" target="_blank">Gcore</a></p> 3 <p><?php printf(__("Version", "gcore_translate")); ?>: <strong>1.1.9</strong></p> 4 <p><?php printf(__("Supported WordPress version: 5.4 and above", "gcore_translate")); ?></p> -
g-core-labs-cdn/trunk/includes/admin.php
r2907361 r2907407 1 1 <?php 2 /** 3 * Admin 4 * 5 * @package GCORE 6 */ 7 8 $tabs_list = array( 9 'main' => array( 'name' => esc_html( __( 'General', 'gcore_translate' ) ) ), 10 'types' => array( 'name' => esc_html( __( 'File types', 'gcore_translate' ) ) ), 11 'folders' => array( 'name' => esc_html( __( 'Folders', 'gcore_translate' ) ) ), 12 'exceptions' => array( 'name' => esc_html( __( 'Exceptions', 'gcore_translate' ) ) ), 13 ); 14 15 $del = isset( $_GET['del'] ) ? sanitize_text_field( wp_unslash( $_GET['del'] ) ) : null; 16 17 if ( isset( $_GET['tab'] ) && in_array( $_GET['tab'], array( 'types', 'folders', 'exceptions' ), true ) ) { 18 $get_tab = sanitize_text_field( wp_unslash( $_GET['tab'] ) ); 2 3 $tabs = [ 4 'main' => ['name' => __('General', "gcore_translate")], 5 'types' => ['name' => __('File types', "gcore_translate")], 6 'folders' => ['name' => __('Folders', "gcore_translate")], 7 'exceptions' => ['name' => __('Exceptions', "gcore_translate")] 8 ]; 9 if (isset($_GET['tab']) and in_array($_GET['tab'], ['types', 'folders', 'exceptions'])) { 10 $get_tab = sanitize_text_field($_GET['tab']); 19 11 } else { 20 $get_tab = 'main';21 } 22 if ( null !== $del ) { 23 if ( 'types' === $get_tab ) { 24 $gcore_cdn_types = get_option( 'gcore_cdn_types' ); 25 $new_type = preg_replace( '/[^a-zA-Z0-9]/ui', '', strtolower( trim( $del ) ) ); 26 if ( '' !== $new_type ) { 27 if ( '' !== $gcore_cdn_types ) { 28 $gcore_cdn_types = json_decode( $gcore_cdn_types, true ); 29 $k = array_search( $new_type, $gcore_cdn_types, true ); 30 if ( false !== $k ) { 31 unset( $gcore_cdn_types[ $k ] ); 32 $gcore_cdn_types = wp_json_encode( $gcore_cdn_types);33 update_option( 'gcore_cdn_types', $gcore_cdn_types);34 } 35 }36 }37 }38 if ( 'folders' === $get_tab ) { 39 $gcore_cdn_folders = get_option( 'gcore_cdn_folders' ); 40 $new_folder = sanitize_text_field( trim( $del ));41 if ( '' !== $new_folder ) { 42 $new_folder = trailingslashit( untrailingslashit( $new_folder ) ); 43 $first = substr( $new_folder, 0, 1);44 if ( '/' !== $first ) { 45 $new_folder = '/' . $new_folder; 46 } 47 if ( '' !== $gcore_cdn_folders ) { 48 $gcore_cdn_folders = json_decode( $gcore_cdn_folders, true ); 49 50 $k = array_search( $new_folder, $gcore_cdn_folders, true ); 51 if ( false !== $k) {52 unset( $gcore_cdn_folders[ $k ]);53 $gcore_cdn_folders = wp_json_encode( $gcore_cdn_folders);54 update_option( 'gcore_cdn_folders', $gcore_cdn_folders);55 }56 }57 }58 }59 if ( 'exceptions' !== $get_tab) {60 $gcore_cdn_exceptions = get_option( 'gcore_cdn_exceptions');61 $new_exception = esc_url( trim( $del ));62 if ( '' !== $new_exception) {63 if ( '' !== $gcore_cdn_exceptions) {64 $gcore_cdn_exceptions = json_decode( $gcore_cdn_exceptions, true);65 $k = array_search( $new_exception, $gcore_cdn_exceptions, true ); 66 if ( false !== $k) {67 unset( $gcore_cdn_exceptions[ $k ]);68 $gcore_cdn_exceptions = wp_json_encode( $gcore_cdn_exceptions);69 update_option( 'gcore_cdn_exceptions', $gcore_cdn_exceptions);70 }71 }72 }73 }74 } 75 76 $gcore_enable_cdn = get_option( 'gcore_enable_cdn');77 $gcore_cdn_disabled = 1 === (int) $gcore_enable_cdn? '' : ' disabled';78 79 if ( 'main' === $get_tab) {80 $gcore_cdn_url = get_option( 'gcore_cdn_url');81 $gcore_enable_cdn_checked = 1 === (int) $gcore_enable_cdn? ' checked="checked"' : '';82 } 83 if ( 'types' === $get_tab) {84 85 $gcore_type_advanced = get_option( 'gcore_type_advanced');86 $gcore_type_advanced_checked = 1 === (int) $gcore_type_advanced? ' checked="checked"' : '';87 88 if ( 0 === $gcore_type_advanced) {89 $gcore_type_image = get_option( 'gcore_type_image');90 $gcore_type_image_checked = 1 === (int) $gcore_type_image? ' checked="checked"' : '';91 $gcore_type_video = get_option( 'gcore_type_video');92 $gcore_type_video_checked = 1 === (int) $gcore_type_video? ' checked="checked"' : '';93 $gcore_type_audio = get_option( 'gcore_type_audio');94 $gcore_type_audio_checked = 1 === (int) $gcore_type_audio? ' checked="checked"' : '';95 $gcore_type_js = get_option( 'gcore_type_js');96 $gcore_type_js_checked = 1 === (int) $gcore_type_js? ' checked="checked"' : '';97 $gcore_type_css = get_option( 'gcore_type_css');98 $gcore_type_css_checked = 1 === (int) $gcore_type_css? ' checked="checked"' : '';99 $gcore_type_archive = get_option( 'gcore_type_archive');100 $gcore_type_archive_checked = 1 === (int) $gcore_type_archive? ' checked="checked"' : '';101 } else {102 $gcore_type_image_checked= ' disabled';103 $gcore_type_video_checked= ' disabled';104 $gcore_type_audio_checked= ' disabled';105 $gcore_type_js_checked= ' disabled';106 $gcore_type_css_checked= ' disabled';107 $gcore_type_archive_checked = ' disabled';108 }109 110 111 $gcore_cdn_types = get_option( 'gcore_cdn_types');112 $gcore_cdn_types = json_decode( $gcore_cdn_types, true);113 if ( '' === $gcore_cdn_types) {114 $gcore_cdn_types = array();115 }116 } 117 if ( 'folders' === $get_tab) {118 119 $gcore_folder_advanced = get_option( 'gcore_folder_advanced');120 $gcore_folder_advanced_checked = 1 === (int) $gcore_folder_advanced? ' checked="checked"' : '';121 122 if ( 0 === $gcore_folder_advanced) {123 $gcore_folder_templates = get_option( 'gcore_folder_templates');124 $gcore_folder_templates_checked = 1 === (int) $gcore_folder_templates? ' checked="checked"' : '';125 $gcore_folder_plugins = get_option( 'gcore_folder_plugins');126 $gcore_folder_plugins_checked = 1 === (int) $gcore_folder_plugins? ' checked="checked"' : '';127 $gcore_folder_content = get_option( 'gcore_folder_content');128 $gcore_folder_content_checked = 1 === (int) $gcore_folder_content? ' checked="checked"' : '';129 $gcore_folder_wp = get_option( 'gcore_folder_wp');130 $gcore_folder_wp_checked = 1 === (int) $gcore_folder_wp? ' checked="checked"' : '';131 } else {132 $gcore_folder_templates_checked = ' disabled';133 $gcore_folder_plugins_checked= ' disabled';134 $gcore_folder_content_checked= ' disabled';135 $gcore_folder_wp_checked= ' disabled';136 }137 138 $gcore_cdn_folders = get_option( 'gcore_cdn_folders');139 $gcore_cdn_folders = json_decode( $gcore_cdn_folders, true);140 if ( '' === $gcore_cdn_folders) {141 $gcore_cdn_folders = array();142 }143 } 144 if ( 'exceptions' === $get_tab) {145 $gcore_cdn_exceptions = get_option( 'gcore_cdn_exceptions');146 $gcore_cdn_exceptions = json_decode( $gcore_cdn_exceptions, true);147 if ( '' === $gcore_cdn_exceptions) {148 $gcore_cdn_exceptions = array();149 }150 } 151 152 153 $title_page = $tabs _list[ $get_tab]['name'];12 $get_tab = 'main'; 13 } 14 15 16 if (isset($_GET['del'])) { 17 if ($get_tab == "types") { 18 $gcore_cdn_types = get_option('gcore_cdn_types'); 19 $new_type = preg_replace('/[^a-zA-Z0-9]/ui', '', strtolower(trim($_GET['del']))); 20 if ($new_type != '') { 21 if ($gcore_cdn_types != '') { 22 $gcore_cdn_types = json_decode($gcore_cdn_types, true); 23 if (($k = array_search($new_type, $gcore_cdn_types)) !== false) { 24 unset($gcore_cdn_types[$k]); 25 $gcore_cdn_types = json_encode($gcore_cdn_types); 26 update_option('gcore_cdn_types', $gcore_cdn_types); 27 } 28 } 29 } 30 } 31 if ($get_tab == "folders") { 32 $gcore_cdn_folders = get_option('gcore_cdn_folders'); 33 $new_folder = sanitize_text_field(trim($_GET['del'])); 34 if ($new_folder != '') { 35 $new_folder = trailingslashit(untrailingslashit($new_folder)); 36 $first = substr($new_folder, 0, 1); 37 if ($first != "/") { 38 $new_folder = "/" . $new_folder; 39 } 40 if ($gcore_cdn_folders != '') { 41 $gcore_cdn_folders = json_decode($gcore_cdn_folders, true); 42 43 if (($k = array_search($new_folder, $gcore_cdn_folders)) !== false) { 44 unset($gcore_cdn_folders[$k]); 45 $gcore_cdn_folders = json_encode($gcore_cdn_folders); 46 update_option('gcore_cdn_folders', $gcore_cdn_folders); 47 } 48 } 49 } 50 } 51 if ($get_tab == "exceptions") { 52 $gcore_cdn_exceptions = get_option('gcore_cdn_exceptions'); 53 $new_exception = sanitize_text_field(esc_url(trim($_GET['del']))); 54 if ($new_exception != '') { 55 if ($gcore_cdn_exceptions != '') { 56 $gcore_cdn_exceptions = json_decode($gcore_cdn_exceptions, true); 57 58 if (($k = array_search($new_exception, $gcore_cdn_exceptions)) !== false) { 59 unset($gcore_cdn_exceptions[$k]); 60 $gcore_cdn_exceptions = json_encode($gcore_cdn_exceptions); 61 update_option('gcore_cdn_exceptions', $gcore_cdn_exceptions); 62 } 63 } 64 } 65 } 66 } 67 68 $gcore_enable_cdn = get_option('gcore_enable_cdn'); 69 $gcore_cdn_disabled = $gcore_enable_cdn == 1 ? '' : ' disabled'; 70 71 if ($get_tab == "main") { 72 $gcore_cdn_url = get_option('gcore_cdn_url'); 73 $gcore_enable_cdn_checked = $gcore_enable_cdn == 1 ? ' checked="checked"' : ''; 74 } 75 if ($get_tab == "types") { 76 77 $gcore_type_advanced = get_option('gcore_type_advanced'); 78 $gcore_type_advanced_checked = $gcore_type_advanced == 1 ? ' checked="checked"' : ''; 79 80 if ($gcore_type_advanced == 0) { 81 $gcore_type_image = get_option('gcore_type_image'); 82 $gcore_type_image_checked = $gcore_type_image == 1 ? ' checked="checked"' : ''; 83 $gcore_type_video = get_option('gcore_type_video'); 84 $gcore_type_video_checked = $gcore_type_video == 1 ? ' checked="checked"' : ''; 85 $gcore_type_audio = get_option('gcore_type_audio'); 86 $gcore_type_audio_checked = $gcore_type_audio == 1 ? ' checked="checked"' : ''; 87 $gcore_type_js = get_option('gcore_type_js'); 88 $gcore_type_js_checked = $gcore_type_js == 1 ? ' checked="checked"' : ''; 89 $gcore_type_css = get_option('gcore_type_css'); 90 $gcore_type_css_checked = $gcore_type_css == 1 ? ' checked="checked"' : ''; 91 $gcore_type_archive = get_option('gcore_type_archive'); 92 $gcore_type_archive_checked = $gcore_type_archive == 1 ? ' checked="checked"' : ''; 93 } else { 94 $gcore_type_image_checked = ' disabled'; 95 $gcore_type_video_checked = ' disabled'; 96 $gcore_type_audio_checked = ' disabled'; 97 $gcore_type_js_checked = ' disabled'; 98 $gcore_type_css_checked = ' disabled'; 99 $gcore_type_archive_checked = ' disabled'; 100 } 101 102 103 $gcore_cdn_types = get_option('gcore_cdn_types'); 104 $gcore_cdn_types = json_decode($gcore_cdn_types, true); 105 if ($gcore_cdn_types == '') { 106 $gcore_cdn_types = []; 107 } 108 } 109 if ($get_tab == "folders") { 110 111 $gcore_folder_advanced = get_option('gcore_folder_advanced'); 112 $gcore_folder_advanced_checked = $gcore_folder_advanced == 1 ? ' checked="checked"' : ''; 113 114 if ($gcore_folder_advanced == 0) { 115 $gcore_folder_templates = get_option('gcore_folder_templates'); 116 $gcore_folder_templates_checked = $gcore_folder_templates == 1 ? ' checked="checked"' : ''; 117 $gcore_folder_plugins = get_option('gcore_folder_plugins'); 118 $gcore_folder_plugins_checked = $gcore_folder_plugins == 1 ? ' checked="checked"' : ''; 119 $gcore_folder_content = get_option('gcore_folder_content'); 120 $gcore_folder_content_checked = $gcore_folder_content == 1 ? ' checked="checked"' : ''; 121 $gcore_folder_wp = get_option('gcore_folder_wp'); 122 $gcore_folder_wp_checked = $gcore_folder_wp == 1 ? ' checked="checked"' : ''; 123 } else { 124 $gcore_folder_templates_checked = ' disabled'; 125 $gcore_folder_plugins_checked = ' disabled'; 126 $gcore_folder_content_checked = ' disabled'; 127 $gcore_folder_wp_checked = ' disabled'; 128 } 129 130 $gcore_cdn_folders = get_option('gcore_cdn_folders'); 131 $gcore_cdn_folders = json_decode($gcore_cdn_folders, true); 132 if ($gcore_cdn_folders == '') { 133 $gcore_cdn_folders = []; 134 } 135 } 136 if ($get_tab == "exceptions") { 137 $gcore_cdn_exceptions = get_option('gcore_cdn_exceptions'); 138 $gcore_cdn_exceptions = json_decode($gcore_cdn_exceptions, true); 139 if ($gcore_cdn_exceptions == '') { 140 $gcore_cdn_exceptions = []; 141 } 142 } 143 144 145 $title_page = $tabs[$get_tab]['name']; 154 146 155 147 $admin_url = admin_url(); 156 $data = '';157 $data .= '158 <h1>' . esc_html( __( 'CDN settings', 'gcore_translate' ) ) . ' - ' . esc_html( $title_page ). '</h1>148 $data = ''; 149 $data .= ' 150 <h1>' . __("CDN settings", "gcore_translate") . ' - ' . $title_page . '</h1> 159 151 <div> 160 152 <h3> 161 153 '; 162 154 163 foreach ( $tabs_list as $key => $value) {164 $c = $key === $get_tab ? ' nav-tab-active': '';165 if ( 0 === $gcore_enable_cdn) {166 $li_style = 'style="opacity:0.3"';167 $href = '#';168 } else {169 $li_style = '';170 $href = esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=' . esc_html( $key );171 }172 $data .= '<a ' . $li_style . ' class="g-d nav-tab' . $c . '" href="' . $href . '" data-href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=' . esc_html( $key ) . '">' . esc_html( $value['name'] ). '</a>';155 foreach ($tabs as $key => $value) { 156 $c = $key == $get_tab ? " nav-tab-active" : ''; 157 if ($gcore_enable_cdn == 0) { 158 $li_style = "style=\"opacity:0.3\""; 159 $href = "#"; 160 } else { 161 $li_style = ""; 162 $href = $admin_url . 'admin.php?page=gcore_labs&tab=' . $key; 163 } 164 $data .= '<a ' . $li_style . ' class="g-d nav-tab' . $c . '" href="' . $href . '" data-href="' . $admin_url . 'admin.php?page=gcore_labs&tab=' . $key . '">' . $value['name'] . '</a>'; 173 165 } 174 166 $data .= '</h3> … … 176 168 '; 177 169 178 if ( 'main' === $get_tab) {179 $data .= '<table class="form-table" style="max-width: 600px;">170 if ($get_tab == "main") { 171 $data .= '<table class="form-table" style="max-width: 600px;"> 180 172 <tr class="form-field form-required"> 181 173 <td colspan="2"> 182 174 <label class="el-checkbox el-checkbox-sm"> 183 <input id="gcore_enable_cdn" type="checkbox" class="g-c" data-t="checkbox" data-o="gcore_enable_cdn" value="1" ' . esc_html( $gcore_enable_cdn_checked ). '>184 <span class="el-checkbox-style pull-right"></span> 185 <span class="margin-r">' . esc_html( __( 'Enable CDN', 'gcore_translate' )) . '</span>186 </label> 187 <p class="description" id="tagline-description">' . esc_html( __( 'In the paths to files conforming to the rules specified below, a domain will be replaced with a personal domain.', 'gcore_translate' )) . '</p>175 <input id="gcore_enable_cdn" type="checkbox" class="g-c" data-t="checkbox" data-o="gcore_enable_cdn" value="1" ' . $gcore_enable_cdn_checked . '> 176 <span class="el-checkbox-style pull-right"></span> 177 <span class="margin-r">' . __("Enable CDN", "gcore_translate") . '</span> 178 </label> 179 <p class="description" id="tagline-description">' . __("In the paths to files conforming to the rules specified below, a domain will be replaced with a personal domain.", "gcore_translate") . '</p> 188 180 </td> 189 181 </tr> 190 182 <tr class="form-field form-required"> 191 <td scope="row"><label for="user_login">' . esc_html( __( 'Personal domain (for configuring CNAME)', 'gcore_translate' )) . '</label></td>192 <td> 193 <input type="text" class="g-d g-c" id="gcore_cdn_url" data-t="url" data-o="gcore_cdn_url" ' . esc_html( $gcore_cdn_disabled ) . ' value="' . esc_url( $gcore_cdn_url ) . '" placeholder="' . esc_html( __( 'Example', 'gcore_translate' )) . ': https://cdn.example.com/">194 <p class="description" id="tagline-description">' . esc_html( __( 'Specify the personal domain with a scheme corresponding to the one specified in Gcore control panel. If you are using a domain in your zone, make sure that this domain is added in the DNS provider settings.', 'gcore_translate' )) . '</p>183 <td scope="row"><label for="user_login">' . __("Personal domain (for configuring CNAME)", "gcore_translate") . '</label></td> 184 <td> 185 <input type="text" class="g-d g-c" id="gcore_cdn_url" data-t="url" data-o="gcore_cdn_url" ' . $gcore_cdn_disabled . ' value="' . $gcore_cdn_url . '" placeholder="' . __("Example", "gcore_translate") . ': https://cdn.example.com/"> 186 <p class="description" id="tagline-description">' . __("Specify the personal domain with a scheme corresponding to the one specified in Gcore control panel. If you are using a domain in your zone, make sure that this domain is added in the DNS provider settings.", "gcore_translate") . '</p> 195 187 </td> 196 188 </tr> 197 189 <tr> 198 190 <td></td> 199 <td style="text-align: right"><a href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=types" class="button-gcore">' . esc_html( __( 'Next', 'gcore_translate' )) . '</a></td>191 <td style="text-align: right"><a href="' . $admin_url . 'admin.php?page=gcore_labs&tab=types" class="button-gcore">' . __("Next", "gcore_translate") . '</a></td> 200 192 </tr> 201 193 </table> 202 194 '; 203 195 } 204 if ( 'types' === $get_tab) {205 $data .= '<div class="clear"></div>206 <p class="description" style="margin:15px 0 0 5px">' . esc_html( __( 'Specify the types of files you want to distribute via CDN.', 'gcore_translate' )) . '</p>207 <table class="form-table" style="max-width: 600px;"> 208 <tr class="form-field form-required"> 209 <td> 210 <label class="el-checkbox el-checkbox-sm"> 211 <input id="gcore_type_image" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_image" value="1" ' . esc_html( $gcore_type_image_checked ). '>212 <span class="el-checkbox-style pull-right"></span> 213 <span class="margin-r">' . esc_html( __( 'Type Images', 'gcore_translate' )) . '</span>196 if ($get_tab == "types") { 197 $data .= '<div class="clear"></div> 198 <p class="description" style="margin:15px 0 0 5px">' . __("Specify the types of files you want to distribute via CDN.", "gcore_translate") . '</p> 199 <table class="form-table" style="max-width: 600px;"> 200 <tr class="form-field form-required"> 201 <td> 202 <label class="el-checkbox el-checkbox-sm"> 203 <input id="gcore_type_image" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_image" value="1" ' . $gcore_type_image_checked . '> 204 <span class="el-checkbox-style pull-right"></span> 205 <span class="margin-r">' . __("Type Images", "gcore_translate") . '</span> 214 206 </label> 215 207 </td> 216 208 <td> 217 209 <label class="el-checkbox el-checkbox-sm"> 218 <input id="gcore_type_video" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_video" value="1" ' . esc_html( $gcore_type_video_checked ). '>219 <span class="el-checkbox-style pull-right"></span> 220 <span class="margin-r">' . esc_html( __( 'Type Video', 'gcore_translate' )) . '</span>210 <input id="gcore_type_video" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_video" value="1" ' . $gcore_type_video_checked . '> 211 <span class="el-checkbox-style pull-right"></span> 212 <span class="margin-r">' . __("Type Video", "gcore_translate") . '</span> 221 213 </label> 222 214 </td> 223 215 <td> 224 216 <label class="el-checkbox el-checkbox-sm"> 225 <input id="gcore_type_audio" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_audio" value="1" ' . esc_html( $gcore_type_audio_checked ). '>226 <span class="el-checkbox-style pull-right"></span> 227 <span class="margin-r">' . esc_html( __( 'Type Audio', 'gcore_translate' )) . '</span>228 </label> 229 </td> 230 </tr> 231 <tr class="form-field form-required"> 232 <td> 233 <label class="el-checkbox el-checkbox-sm"> 234 <input id="gcore_type_js" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_js" type="checkbox" value="1" ' . esc_html( $gcore_type_js_checked ). '>235 <span class="el-checkbox-style pull-right"></span> 236 <span class="margin-r">' . esc_html( __( 'Type JS', 'gcore_translate' )) . '</span>237 </label> 238 </td> 239 <td> 240 <label class="el-checkbox el-checkbox-sm"> 241 <input id="gcore_type_css" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_css" type="checkbox" value="1" ' . esc_html( $gcore_type_css_checked ). '>242 <span class="el-checkbox-style pull-right"></span> 243 <span class="margin-r">' . esc_html( __( 'Type CSS', 'gcore_translate' )) . '</span>244 </label> 245 </td> 246 <td> 247 <label class="el-checkbox el-checkbox-sm"> 248 <input id="gcore_type_archive" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_archive" type="checkbox" value="1" ' . esc_html( $gcore_type_archive_checked ). '>249 <span class="el-checkbox-style pull-right"></span> 250 <span class="margin-r">' . esc_html( __( 'Type Archive', 'gcore_translate' )) . '</span>217 <input id="gcore_type_audio" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_audio" value="1" ' . $gcore_type_audio_checked . '> 218 <span class="el-checkbox-style pull-right"></span> 219 <span class="margin-r">' . __("Type Audio", "gcore_translate") . '</span> 220 </label> 221 </td> 222 </tr> 223 <tr class="form-field form-required"> 224 <td> 225 <label class="el-checkbox el-checkbox-sm"> 226 <input id="gcore_type_js" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_js" type="checkbox" value="1" ' . $gcore_type_js_checked . '> 227 <span class="el-checkbox-style pull-right"></span> 228 <span class="margin-r">' . __("Type JS", "gcore_translate") . '</span> 229 </label> 230 </td> 231 <td> 232 <label class="el-checkbox el-checkbox-sm"> 233 <input id="gcore_type_css" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_css" type="checkbox" value="1" ' . $gcore_type_css_checked . '> 234 <span class="el-checkbox-style pull-right"></span> 235 <span class="margin-r">' . __("Type CSS", "gcore_translate") . '</span> 236 </label> 237 </td> 238 <td> 239 <label class="el-checkbox el-checkbox-sm"> 240 <input id="gcore_type_archive" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_type_archive" type="checkbox" value="1" ' . $gcore_type_archive_checked . '> 241 <span class="el-checkbox-style pull-right"></span> 242 <span class="margin-r">' . __("Type Archive", "gcore_translate") . '</span> 251 243 </label> 252 244 </td> … … 255 247 <td colspan="3"> 256 248 <label class="el-switch"> 257 <input id="gcore_type_advanced" type="checkbox" class="g-c" data-t="checkbox" data-o="gcore_type_advanced" type="checkbox" value="1" ' . esc_html( $gcore_type_advanced_checked ). '>249 <input id="gcore_type_advanced" type="checkbox" class="g-c" data-t="checkbox" data-o="gcore_type_advanced" type="checkbox" value="1" ' . $gcore_type_advanced_checked . '> 258 250 <span class="el-switch-style"></span> 259 251 </label> 260 <span class="margin-r">' . esc_html( __( 'Advanced property', 'gcore_translate' )) . '</span>252 <span class="margin-r">' . __("Advanced property", "gcore_translate") . '</span> 261 253 </td> 262 254 </tr> 263 255 '; 264 if ( 0 === $gcore_type_advanced ) { 265 $disabled = 'display:none;'; 266 } else { 267 $disabled = ''; 268 } 269 $data .= ' 270 <table class="form-table list-advanced advanced-show" data-t="types" style="max-width: 600px;' . esc_html( $disabled ) . '"></table> 271 <table class="form-table" style="max-width: 600px;"> 272 <tr> 273 <td style="text-align: left"><a href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=main" class="button-gcore">' . esc_html( __( 'Previous', 'gcore_translate' ) ) . '</a></td> 274 <td style="text-align: right"><a href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=folders" class="button-gcore">' . esc_html( __( 'Next', 'gcore_translate' ) ) . '</a></td> 256 if ($gcore_type_advanced == 0) $disabled = "display:none;"; else $disabled = ''; 257 $data .= ' 258 <table class="form-table list-advanced advanced-show" data-t="types" style="max-width: 600px;' . $disabled . '"></table> 259 <table class="form-table" style="max-width: 600px;"> 260 <tr> 261 <td style="text-align: left"><a href="' . $admin_url . 'admin.php?page=gcore_labs&tab=main" class="button-gcore">' . __("Previous", "gcore_translate") . '</a></td> 262 <td style="text-align: right"><a href="' . $admin_url . 'admin.php?page=gcore_labs&tab=folders" class="button-gcore">' . __("Next", "gcore_translate") . '</a></td> 275 263 </tr> 276 264 </table> 277 265 '; 278 266 } 279 if ( 'folders' === $get_tab) {280 $data .= '<div class="clear"></div>281 <p class="description" style="margin:15px 0 0 5px;max-width: 600px;">' . esc_html( __( 'Specify folders containing files you want to distribute via CDN. Please note that only files that match file types specified on the File Types tab will be delivered via CDN.', 'gcore_translate' )) . '</p>282 <table class="form-table" style="max-width: 600px;"> 283 <tr class="form-field form-required"> 284 <td> 285 <label class="el-checkbox el-checkbox-sm"> 286 <input id="gcore_folder_templates" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_folder_templates" type="checkbox" value="1" ' . esc_html( $gcore_folder_templates_checked ). '>287 <span class="el-checkbox-style pull-right"></span> 288 <span class="margin-r">' . esc_html( __( 'Folder Templates', 'gcore_translate' )) . '</span>267 if ($get_tab == "folders") { 268 $data .= '<div class="clear"></div> 269 <p class="description" style="margin:15px 0 0 5px;max-width: 600px;">' . __("Specify folders containing files you want to distribute via CDN. Please note that only files that match file types specified on the File Types tab will be delivered via CDN.", "gcore_translate") . '</p> 270 <table class="form-table" style="max-width: 600px;"> 271 <tr class="form-field form-required"> 272 <td> 273 <label class="el-checkbox el-checkbox-sm"> 274 <input id="gcore_folder_templates" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_folder_templates" type="checkbox" value="1" ' . $gcore_folder_templates_checked . '> 275 <span class="el-checkbox-style pull-right"></span> 276 <span class="margin-r">' . __("Folder Templates", "gcore_translate") . '</span> 289 277 </label> 290 278 </td> 291 279 <td> 292 280 <label class="el-checkbox el-checkbox-sm"> 293 <input id="gcore_folder_plugins" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_folder_plugins" type="checkbox" value="1" ' . esc_html( $gcore_folder_plugins_checked ). '>294 <span class="el-checkbox-style pull-right"></span> 295 <span class="margin-r">' . esc_html( __( 'Folder Plugins', 'gcore_translate' )) . '</span>281 <input id="gcore_folder_plugins" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_folder_plugins" type="checkbox" value="1" ' . $gcore_folder_plugins_checked . '> 282 <span class="el-checkbox-style pull-right"></span> 283 <span class="margin-r">' . __("Folder Plugins", "gcore_translate") . '</span> 296 284 </label> 297 285 </td> … … 300 288 <input id="gcore_folder_content" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_folder_content" type="checkbox" value="1" ' . $gcore_folder_content_checked . '> 301 289 <span class="el-checkbox-style pull-right"></span> 302 <span class="margin-r">' . esc_html( __( 'Folder Content', 'gcore_translate' )) . '</span>303 </label> 304 </td> 305 <td> 306 <label class="el-checkbox el-checkbox-sm"> 307 <input id="gcore_folder_wp" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_folder_wp" type="checkbox" value="1" ' . esc_html( $gcore_folder_wp_checked ). '>308 <span class="el-checkbox-style pull-right"></span> 309 <span class="margin-r">' . esc_html( __( 'Folder WordPress', 'gcore_translate' )) . '</span>290 <span class="margin-r">' . __("Folder Content", "gcore_translate") . '</span> 291 </label> 292 </td> 293 <td> 294 <label class="el-checkbox el-checkbox-sm"> 295 <input id="gcore_folder_wp" type="checkbox" class="g-c list-ch" data-t="checkbox" data-o="gcore_folder_wp" type="checkbox" value="1" ' . $gcore_folder_wp_checked . '> 296 <span class="el-checkbox-style pull-right"></span> 297 <span class="margin-r">' . __("Folder Wordpress", "gcore_translate") . '</span> 310 298 </label> 311 299 </td> … … 314 302 <td colspan="4"> 315 303 <label class="el-switch"> 316 <input id="gcore_folder_advanced" type="checkbox" class="g-c" data-t="checkbox" data-o="gcore_folder_advanced" type="checkbox" value="1" ' . esc_html( $gcore_folder_advanced_checked ). '>304 <input id="gcore_folder_advanced" type="checkbox" class="g-c" data-t="checkbox" data-o="gcore_folder_advanced" type="checkbox" value="1" ' . $gcore_folder_advanced_checked . '> 317 305 <span class="el-switch-style"></span> 318 306 </label> 319 <span class="margin-r">' . esc_html( __( 'Advanced property', 'gcore_translate' )) . '</span>307 <span class="margin-r">' . __("Advanced property", "gcore_translate") . '</span> 320 308 </td> 321 309 </tr> 322 310 </table> 323 311 '; 324 if ( 0 === $gcore_folder_advanced ) { 325 $disabled = 'display:none;'; 326 } else { 327 $disabled = ''; 328 } 329 $data .= '<table class="form-table list-advanced advanced-show" data-t="folders" style="max-width: 600px;' . esc_html( $disabled ) . '"></table> 330 <table class="form-table" style="max-width: 600px;"> 331 <tr> 332 <td style="text-align: left"><a href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=types" class="button-gcore">' . esc_html( __( 'Previous', 'gcore_translate' ) ) . '</a></td> 333 <td style="text-align: right"><a href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=exceptions" class="button-gcore">' . esc_html( __( 'Next', 'gcore_translate' ) ) . '</a></td> 312 if ($gcore_folder_advanced == 0) $disabled = "display:none;"; else $disabled = ''; 313 $data .= '<table class="form-table list-advanced advanced-show" data-t="folders" style="max-width: 600px;' . $disabled . '"></table> 314 <table class="form-table" style="max-width: 600px;"> 315 <tr> 316 <td style="text-align: left"><a href="' . $admin_url . 'admin.php?page=gcore_labs&tab=types" class="button-gcore">' . __("Previous", "gcore_translate") . '</a></td> 317 <td style="text-align: right"><a href="' . $admin_url . 'admin.php?page=gcore_labs&tab=exceptions" class="button-gcore">' . __("Next", "gcore_translate") . '</a></td> 334 318 </tr> 335 319 </table> 336 320 '; 337 321 } 338 if ( 'exceptions' === $get_tab) {339 $data .= '<div class="clear"></div>340 <p class="description" style="margin:15px 0 0 5px">' . esc_html( __( 'Specify the URLs you want to add to the exceptions list and not distribute them via CDN.', 'gcore_translate' )) . '</p>341 <table class="form-table list-advanced advanced-show" data-t="exceptions" style="max-width: 600px;' . esc_html( $disabled ). '"></table>342 <table class="form-table" style="max-width: 600px;"> 343 <tr> 344 <td style="text-align: left"><a href="' . esc_url( $admin_url ) . 'admin.php?page=gcore_labs&tab=folders" class="button-gcore">' . esc_html( __( 'Previous', 'gcore_translate' )) . '</a></td>322 if ($get_tab == "exceptions") { 323 $data .= '<div class="clear"></div> 324 <p class="description" style="margin:15px 0 0 5px">' . __("Specify the URLs you want to add to the exceptions list and not distribute them via CDN.", "gcore_translate") . '</p> 325 <table class="form-table list-advanced advanced-show" data-t="exceptions" style="max-width: 600px;' . $disabled . '"></table> 326 <table class="form-table" style="max-width: 600px;"> 327 <tr> 328 <td style="text-align: left"><a href="' . $admin_url . 'admin.php?page=gcore_labs&tab=folders" class="button-gcore">' . __("Previous", "gcore_translate") . '</a></td> 345 329 <td></td> 346 330 </tr> … … 349 333 } 350 334 351 $allowed_tags = wp_kses_allowed_html( 'post' );352 $allowed_tags['input'] = array(353 'type' => true,354 'name' => true,355 'value' => true,356 'disabled' => true,357 'checked' => true,358 'readonly' => true,359 'data-e' => true,360 'data-t' => true,361 'data-o' => true,362 'data-type' => true,335 $allowed_tags = wp_kses_allowed_html( 'post' ); 336 $allowed_tags['input'] = array( 337 'type' => true, 338 'name' => true, 339 'value' => true, 340 'disabled' => true, 341 'checked' => true, 342 'readonly' => true, 343 'data-e' => true, 344 'data-t' => true, 345 'data-o' => true, 346 'data-type' => true, 363 347 'placeholder' => true, 364 'id' => true,365 'class' => true,366 'required' => true,348 'id' => true, 349 'class' => true, 350 'required' => true, 367 351 ); 368 352 $allowed_tags['select'] = array( 369 'name' => true,370 'value' => true,371 'id' => true,372 'class' => true,353 'name' => true, 354 'value' => true, 355 'id' => true, 356 'class' => true, 373 357 'required' => true, 374 358 ); 375 359 $allowed_tags['button'] = array( 376 'value' => true,377 'disabled' => true,378 'type' => true,379 'name' => true,380 'data-e' => true,381 'data-t' => true,382 'data-o' => true,383 'id' => true,384 'class' => true,360 'value' => true, 361 'disabled' => true, 362 'type' => true, 363 'name' => true, 364 'data-e' => true, 365 'data-t' => true, 366 'data-o' => true, 367 'id' => true, 368 'class' => true, 385 369 'data-type' => true, 386 370 ); … … 388 372 'value' => true, 389 373 ); 390 add_filter( 391 'safe_style_css', 392 function( $styles ) { 393 $styles[] = 'display'; 394 return $styles; 395 } 396 ); 397 echo wp_kses( $data, $allowed_tags ) 398 . '<script>const gcoreAmaranMsgSaved = "' . esc_html( __( 'Saved', 'gcore_translate' ) ) . '";const gcoreAmaranMsgDeleted = "' . esc_html( __( 'Deleted', 'gcore_translate' ) ) . '";const gcoreAmaranMsgAdded = "' . esc_html( __( 'Added', 'gcore_translate' ) ) . '";</script>'; 374 add_filter( 'safe_style_css', function( $styles ) { 375 $styles[] = 'display'; 376 return $styles; 377 } ); 378 echo wp_kses($data, $allowed_tags) 379 .'<script>const gcoreAmaranMsgSaved = "'.esc_html(__("Saved", "gcore_translate")).'";const gcoreAmaranMsgDeleted = "'.esc_html(__("Deleted", "gcore_translate")).'";const gcoreAmaranMsgAdded = "'.esc_html(__("Added", "gcore_translate")).'";</script>'; -
g-core-labs-cdn/trunk/includes/function.php
r2907361 r2907407 1 1 <?php 2 /** 3 * Function 4 * 5 * @package gcore 6 */ 7 8 add_action( 'wp_ajax_gcore_save', 'gcore_ajax_save' ); 9 10 /** 11 * Function gcore_ajax_save 12 * 13 * @return void 14 */ 15 function gcore_ajax_save() { 16 $type = isset( $_POST['t'] ) ? sanitize_text_field( wp_unslash( $_POST['t'] ) ) : null; 17 18 if ( in_array( $type, array( 'url', 'int', 'checkbox' ), true ) ) { 19 $option = isset( $_POST['o'] ) ? sanitize_text_field( wp_unslash( $_POST['o'] ) ) : null; 20 if ( 'url' === $type ) { 21 $value = trim( esc_url_raw( wp_unslash($_POST['v'] ) ) ); 22 23 if ( '' !== $value ) { 24 $value = trailingslashit( untrailingslashit( $value ) ); 25 } 26 } elseif ( 'int' === $type ) { 27 $value = intval( $_POST['v'] ); 28 } elseif ( 'checkbox' === $type ) { 29 $value = isset( $_POST['v'] ) ? intval( $_POST['v'] ) : 0; 30 if ( 'gcore_type_advanced' === $option ) { 31 update_option( 'gcore_type_image', 0 ); 32 update_option( 'gcore_type_video', 0 ); 33 update_option( 'gcore_type_audio', 0 ); 34 update_option( 'gcore_type_js', 0 ); 35 update_option( 'gcore_type_css', 0 ); 36 update_option( 'gcore_type_archive', 0 ); 37 } 38 if ( 'gcore_folder_advanced' === $option ) { 39 update_option( 'gcore_folder_templates', 0 ); 40 update_option( 'gcore_folder_plugins', 0 ); 41 update_option( 'gcore_folder_content', 0 ); 42 } 43 } 44 update_option( $option, $value ); 45 echo esc_html( $value ); 46 } else { 47 echo 0; 48 } 49 wp_die(); 50 } 51 52 add_action( 'wp_ajax_gcore_advance_param_add', 'gcore_ajax_advance_param_add' ); 53 54 /** 55 * Function gcore_ajax_advance_param_add 56 * 57 * @return void 58 */ 59 function gcore_ajax_advance_param_add() { 60 $type = isset( $_POST['t'] ) ? sanitize_text_field( wp_unslash( $_POST['t'] ) ) : null; 61 if ( in_array( $type, array( 'types', 'folders', 'exceptions' ), true ) ) { 62 $gcore_array = get_option( 'gcore_cdn_' . $type, wp_json_encode( array() ) ); 63 $v = isset( $_POST['v'] ) ? sanitize_text_field( wp_unslash( $_POST['v'] ) ) : null; 64 $value = ''; 65 if ( 'types' === $type ) { 66 $value = preg_replace( '/[^a-zA-Z0-9]/ui', '', strtolower( trim( $v ) ) ); 67 } elseif ( 'folders' === $type ) { 68 $value = trim( $v ); 69 } elseif ( 'exceptions' === $type ) { 70 $value = esc_url( trim( $v ) ); 71 $value = explode( '?', $value ); 72 $value = explode( '&', $value[0] ); 73 $value = $value[0]; 74 } 75 76 if ( '' !== $value ) { 77 if ( 'folders' === $type ) { 78 $value = trailingslashit( untrailingslashit( $value ) ); 79 $first = substr( $value, 0, 1 ); 80 if ( '/' !== $first ) { 81 $value = '/' . $value; 82 } 83 } 84 if ( '' !== $gcore_array ) { 85 $gcore_array = json_decode( $gcore_array, true ); 86 } else { 87 $gcore_array = array(); 88 } 89 array_push( $gcore_array, $value ); 90 $gcore_array = array_unique( $gcore_array ); 91 $gcore_array = wp_json_encode( $gcore_array ); 92 update_option( 'gcore_cdn_' . $type, $gcore_array ); 93 echo 1; 94 } else { 95 echo 0; 96 } 97 } else { 98 echo 0; 99 } 100 wp_die(); 101 } 102 103 add_action( 'wp_ajax_gcore_advance_param_del', 'gcore_ajax_advance_param_del' ); 104 105 /** 106 * Function gcore_ajax_advance_param_del 107 * 108 * @return void 109 */ 110 function gcore_ajax_advance_param_del() { 111 $type = isset( $_POST['t'] ) ? sanitize_text_field( wp_unslash( $_POST['t'] ) ) : null; 112 if ( in_array( $type, array( 'types', 'folders', 'exceptions' ), true ) ) { 113 $gcore_array = get_option( 'gcore_cdn_' . $type ); 114 $v = isset( $_POST['v'] ) ? sanitize_text_field( wp_unslash( $_POST['v'] ) ) : null; 115 $value = ''; 116 if ( 'types' === $type ) { 117 $value = preg_replace( '/[^a-zA-Z0-9]/ui', '', strtolower( trim( $v ) ) ); 118 } elseif ( 'folders' === $type ) { 119 $value = sanitize_text_field( trim( $v ) ); 120 } elseif ( 'exceptions' === $type ) { 121 $value = sanitize_text_field( esc_url( trim( $v ) ) ); 122 $value = explode( '?', $value ); 123 $value = explode( '&', $value[0] ); 124 $value = $value[0]; 125 } 126 if ( '' !== $value ) { 127 if ( 'folders' === $type ) { 128 $value = trailingslashit( untrailingslashit( $value ) ); 129 $first = substr( $value, 0, 1 ); 130 if ( '/' !== $first ) { 131 $value = '/' . $value; 132 } 133 } 134 if ( '' !== $gcore_array ) { 135 $gcore_array = json_decode( $gcore_array, true ); 136 $k = array_search( $value, $gcore_array, true ); 137 if ( false !== $k ) { 138 unset( $gcore_array[ $k ] ); 139 $gcore_array = wp_json_encode( $gcore_array ); 140 update_option( 'gcore_cdn_' . $type, $gcore_array ); 141 echo 1; 142 } else { 143 echo 0; 144 } 145 } else { 146 echo 0; 147 } 148 } else { 149 echo 0; 150 } 151 } else { 152 echo 0; 153 } 154 wp_die(); 155 } 156 157 add_action( 'wp_ajax_gcore_advance_param_show', 'gcore_ajax_advance_param_show' ); 158 /** 159 * Function gcore_ajax_advance_param_show 160 * 161 * @return void 162 */ 163 function gcore_ajax_advance_param_show() { 164 $type = isset( $_POST['t'] ) ? sanitize_text_field( wp_unslash( $_POST['t'] ) ) : null; 165 $data = ''; 166 if ( in_array( $type, array( 'types', 'folders', 'exceptions' ), true ) ) { 167 168 $gcore_array = get_option( 'gcore_cdn_' . $type ); 169 $gcore_array = json_decode( $gcore_array, true ); 170 if ( '' === $gcore_array ) { 171 $gcore_array = array(); 172 } 173 $example = ''; 174 if ( 'types' === $type ) { 175 $example = 'jpg'; 176 } elseif ( 'folders' === $type ) { 177 $example = '/wp-content/uploads/'; 178 } elseif ( 'exceptions' === $type ) { 179 $example = 'https://example.com/exeptions-page.html'; 180 } 181 182 foreach ( $gcore_array as $element ) { 183 $data .= '<tr class="form-field form-required"> 2 3 add_action('wp_ajax_gcore_save', 'gcore_ajax_save'); 4 function gcore_ajax_save() 5 { 6 $type = sanitize_text_field($_POST['t']); 7 if (in_array($_POST['t'], ['url', 'int', 'checkbox'])) { 8 $value = ''; 9 $option = sanitize_text_field($_POST['o']); 10 if ($type == 'url') { 11 $value = sanitize_text_field(esc_url(trim($_POST['v']))); 12 if ($value != '') { 13 $value = trailingslashit(untrailingslashit($value)); 14 } 15 } elseif ($type == 'int') { 16 $value = intval(sanitize_text_field($_POST['v'])); 17 } elseif ($type == 'checkbox') { 18 $value = intval(sanitize_text_field($_POST['v'])); 19 if ($option == 'gcore_type_advanced') { 20 update_option('gcore_type_image', 0); 21 update_option('gcore_type_video', 0); 22 update_option('gcore_type_audio', 0); 23 update_option('gcore_type_js', 0); 24 update_option('gcore_type_css', 0); 25 update_option('gcore_type_archive', 0); 26 } 27 if ($option == 'gcore_folder_advanced') { 28 update_option('gcore_folder_templates', 0); 29 update_option('gcore_folder_plugins', 0); 30 update_option('gcore_folder_content', 0); 31 } 32 } 33 update_option($option, $value); 34 echo esc_html($value); 35 } else { 36 echo 0; 37 } 38 wp_die(); 39 } 40 41 add_action('wp_ajax_gcore_advance_param_add', 'gcore_ajax_advance_param_add'); 42 function gcore_ajax_advance_param_add() 43 { 44 $type = sanitize_text_field($_POST['t']); 45 if (in_array($type, ['types', 'folders', 'exceptions'])) { 46 $gcore_array = get_option('gcore_cdn_' . $type); 47 $value = ''; 48 if($type == "types") { 49 $value = preg_replace('/[^a-zA-Z0-9]/ui', '', strtolower(trim($_POST['v']))); 50 } elseif($type == "folders") { 51 $value = sanitize_text_field(trim($_POST['v'])); 52 } elseif($type == "exceptions") { 53 $value = sanitize_text_field(esc_url(trim($_POST['v']))); 54 $value = explode("?", $value); 55 $value = explode("&", $value[0]); 56 $value = $value[0]; 57 } 58 if ($value != '') { 59 if($type == "folders") { 60 $value = trailingslashit(untrailingslashit($value)); 61 $first = substr($value, 0, 1); 62 if ($first != "/") { 63 $value = "/" . $value; 64 } 65 } 66 if ($gcore_array != '') { 67 $gcore_array = json_decode($gcore_array, true); 68 } else { 69 $gcore_array = []; 70 } 71 array_push($gcore_array, $value); 72 $gcore_array = array_unique($gcore_array); 73 $gcore_array = json_encode($gcore_array); 74 update_option('gcore_cdn_' . $type, $gcore_array); 75 echo 1; 76 } else { 77 echo 0; 78 } 79 } else { 80 echo 0; 81 } 82 wp_die(); 83 } 84 85 add_action('wp_ajax_gcore_advance_param_del', 'gcore_ajax_advance_param_del'); 86 function gcore_ajax_advance_param_del() 87 { 88 $type = sanitize_text_field($_POST['t']); 89 if (in_array($type, ['types', 'folders', 'exceptions'])) { 90 $gcore_array = get_option('gcore_cdn_' . $type); 91 $value = ''; 92 if($type == "types") { 93 $value = preg_replace('/[^a-zA-Z0-9]/ui', '', strtolower(trim($_POST['v']))); 94 } elseif($type == "folders") { 95 $value = sanitize_text_field(trim($_POST['v'])); 96 } elseif($type == "exceptions") { 97 $value = sanitize_text_field(esc_url(trim($_POST['v']))); 98 $value = explode("?", $value); 99 $value = explode("&", $value[0]); 100 $value = $value[0]; 101 } 102 if ($value != '') { 103 if($type == "folders") { 104 $value = trailingslashit(untrailingslashit($value)); 105 $first = substr($value, 0, 1); 106 if ($first != "/") { 107 $value = "/" . $value; 108 } 109 } 110 if ($gcore_array != '') { 111 $gcore_array = json_decode($gcore_array, true); 112 if (($k = array_search($value, $gcore_array)) !== false) { 113 unset($gcore_array[$k]); 114 $gcore_array = json_encode($gcore_array); 115 update_option('gcore_cdn_' . $type, $gcore_array); 116 echo 1; 117 } else { 118 echo 0; 119 } 120 } else { 121 echo 0; 122 } 123 } else { 124 echo 0; 125 } 126 } else { 127 echo 0; 128 } 129 wp_die(); 130 } 131 132 add_action('wp_ajax_gcore_advance_param_show', 'gcore_ajax_advance_param_show'); 133 function gcore_ajax_advance_param_show() 134 { 135 136 $type = sanitize_text_field($_POST['t']); 137 $data = ""; 138 if (in_array($type, ['types', 'folders', 'exceptions'])) { 139 140 $gcore_array = get_option('gcore_cdn_' . $type); 141 $gcore_array = json_decode($gcore_array, true); 142 if ($gcore_array == '') { 143 $gcore_array = []; 144 } 145 $example = ''; 146 if ($type == 'types') { 147 $example = 'jpg'; 148 } elseif ($type == 'folders') { 149 $example = '/wp-content/uploads/'; 150 } elseif ($type == 'exceptions') { 151 $example = 'https://example.com/exepstions-page.html'; 152 } 153 154 foreach ($gcore_array as $element) { 155 $data .= '<tr class="form-field form-required"> 184 156 <td scope="row">' . $element . '</td> 185 <td><button type="button" class="button-gcore g-delete" data-e="' . $element . '" data-type="' . $type . '">' . __( 'Delete', 'gcore_translate') . '</button></td>157 <td><button type="button" class="button-gcore g-delete" data-e="' . $element . '" data-type="' . $type . '">' . __("Delete", "gcore_translate") . '</button></td> 186 158 </tr>'; 187 }188 $data .= '<tr class="form-field form-required">189 <td scope="row"><input type="text" class="new-' . $type . '" placeholder="' . __( 'Example', 'gcore_translate') . ': ' . $example . '"></td>190 <td><input type="button" data-type="' . $type . '" class="button-gcore g-add" value="' . __( 'Add', 'gcore_translate') . '"></td>159 } 160 $data .= '<tr class="form-field form-required"> 161 <td scope="row"><input type="text" class="new-' . $type . '" placeholder="' . __("Example", "gcore_translate") . ': ' . $example . '"></td> 162 <td><input type="button" data-type="' . $type . '" class="button-gcore g-add" value="' . __("Add", "gcore_translate") . '"></td> 191 163 </tr> 192 164 '; 193 } 194 $allowed_tags = wp_kses_allowed_html( 'post' ); 195 $allowed_tags['input'] = array( 196 'type' => true, 197 'name' => true, 198 'value' => true, 199 'checked' => true, 200 'readonly' => true, 201 'data-e' => true, 202 'disabled' => true, 203 'data-t' => true, 204 'data-o' => true, 205 'data-type' => true, 206 'placeholder' => true, 207 'id' => true, 208 'class' => true, 209 'required' => true, 210 ); 211 $allowed_tags['select'] = array( 212 'name' => true, 213 'value' => true, 214 'id' => true, 215 'class' => true, 216 'required' => true, 217 ); 218 $allowed_tags['button'] = array( 219 'value' => true, 220 'disabled' => true, 221 'type' => true, 222 'name' => true, 223 'data-e' => true, 224 'data-t' => true, 225 'data-o' => true, 226 'id' => true, 227 'class' => true, 228 'data-type' => true, 229 ); 230 $allowed_tags['option'] = array( 231 'value' => true, 232 ); 233 add_filter( 234 'safe_style_css', 235 function( $styles ) { 236 $styles[] = 'display'; 237 return $styles; 238 } 239 ); 240 echo wp_kses( $data, $allowed_tags ); 241 wp_die(); 242 } 165 } 166 $allowed_tags = wp_kses_allowed_html( 'post' ); 167 $allowed_tags['input'] = array( 168 'type' => true, 169 'name' => true, 170 'value' => true, 171 'disabled' => true, 172 'checked' => true, 173 'readonly' => true, 174 'data-e' => true, 175 'data-t' => true, 176 'data-o' => true, 177 'data-type' => true, 178 'placeholder' => true, 179 'id' => true, 180 'class' => true, 181 'required' => true, 182 ); 183 $allowed_tags['select'] = array( 184 'name' => true, 185 'value' => true, 186 'id' => true, 187 'class' => true, 188 'required' => true, 189 ); 190 $allowed_tags['button'] = array( 191 'value' => true, 192 'disabled' => true, 193 'type' => true, 194 'name' => true, 195 'data-e' => true, 196 'data-t' => true, 197 'data-o' => true, 198 'id' => true, 199 'class' => true, 200 'data-type' => true, 201 ); 202 $allowed_tags['option'] = array( 203 'value' => true, 204 ); 205 add_filter( 'safe_style_css', function( $styles ) { 206 $styles[] = 'display'; 207 return $styles; 208 } ); 209 echo wp_kses($data, $allowed_tags); 210 wp_die(); 211 } -
g-core-labs-cdn/trunk/includes/help.php
r2907361 r2907407 1 1 <?php 2 /**3 * Help4 *5 * @package GCORE6 */7 2 8 $ gcore_title = esc_html( __( 'Help', 'gcore_translate' ));3 $title = __('Help', 'gcore_translate'); 9 4 10 echo wp_kses( '<h1>' . $gcore_title . '</h1><p>' . __( 'If you have questions regarding CDN integration, please email us at', 'gcore_translate' ) . ' <a href="mailto:"' . sanitize_email( '[email protected]' ) . '">' . sanitize_email( '[email protected]' ) . '</a></p>', wp_kses_allowed_html( 'post' ) ); 5 echo '<h1>' . esc_html($title) . '</h1> 6 <p>' . __('If you have questions regarding CDN integration, please email us at', 'gcore_translate') . ' ' . '<a href="mailto:"'. sanitize_email('[email protected]') . '">'. sanitize_email('[email protected]') . '</a></p>'; -
g-core-labs-cdn/trunk/includes/stream.php
r2907361 r2907407 1 <?php 2 /** 3 * Stream 4 * 5 * @package GCORE 6 */ 7 8 ?> 9 <h1><?php echo esc_html( _e( 'Streaming', 'gcore_translate' ) ); ?></h1> 1 <h1><?php echo esc_html(_e("Streaming", "gcore_translate")); ?></h1> 10 2 <p>Soon</p> -
g-core-labs-cdn/trunk/index.php
r2907361 r2907407 10 10 11 11 12 $plugin_dir = dirname( __FILE__);12 $plugin_dir = dirname(__FILE__); 13 13 14 require $plugin_dir . '/includes/function.php';14 include($plugin_dir . "/includes/function.php"); 15 15 16 add_action( 'admin_menu', 'g_core_labs_admin_menu');16 add_action('admin_menu', 'g_core_labs_admin_menu'); 17 17 18 /** 19 * Function g_core_labs_admin_menu 20 * 21 * @return void 22 */ 23 function g_core_labs_admin_menu() { 24 add_menu_page( 'Gcore', 'Gcore', 'manage_options', 'gcore_labs', 'g_core_labs_cdn_page', plugin_dir_url( __FILE__ ) . 'plugin-icon.png' ); 25 add_submenu_page( 'gcore_labs', '' . esc_html( __( 'CDN settings', 'gcore_translate' ) ) . '', '' . esc_html( __( 'CDN settings', 'gcore_translate' ) ) . '', 'manage_options', 'gcore_labs', 'g_core_labs_cdn_page' ); 26 add_submenu_page( 'gcore_labs', '' . esc_html( __( 'Help', 'gcore_translate' ) ) . '', '' . esc_html( __( 'Help', 'gcore_translate' ) ) . '', 'manage_options', 'gcore_labs_help', 'g_core_labs_help_page' ); 27 add_submenu_page( 'gcore_labs', '' . esc_html( __( 'About', 'gcore_translate' ) ) . '', '' . esc_html( __( 'About', 'gcore_translate' ) ) . '', 'manage_options', 'gcore_labs_about', 'g_core_labs_about_page' ); 18 function g_core_labs_admin_menu() 19 { 20 21 add_menu_page("Gcore", "Gcore", 'manage_options', 'gcore_labs', 'g_core_labs_cdn_page', plugin_dir_url(__FILE__) . 'plugin-icon.png'); 22 add_submenu_page('gcore_labs', '' . __("CDN settings", "gcore_translate") . '', '' . __("CDN settings", "gcore_translate") . '', 'manage_options', 'gcore_labs', 'g_core_labs_cdn_page'); 23 //add_submenu_page('gcore_labs', 'Настройки Streaming', 'Настройки Streaming', 'manage_options', 'gcore_labs_stream', 'g_core_labs_stream_page'); 24 add_submenu_page('gcore_labs', '' . __("Help", "gcore_translate") . '', '' . __("Help", "gcore_translate") . '', 'manage_options', 'gcore_labs_help', 'g_core_labs_help_page'); 25 add_submenu_page('gcore_labs', '' . __("About", "gcore_translate") . '', '' . __("About", "gcore_translate") . '', 'manage_options', 'gcore_labs_about', 'g_core_labs_about_page'); 28 26 } 29 27 30 /** 31 * Function g_core_labs_cdn_page 32 * 33 * @return void 34 */ 35 function g_core_labs_cdn_page() { 36 $plugin_dir = dirname( __FILE__ ); 37 wp_enqueue_style( 'g_core_css-amaran', plugins_url( 'css/amaran.min.css', __FILE__ ), array(), '1.0' ); 38 wp_enqueue_style( 'g_core_css-animate', plugins_url( 'css/animate.min.css', __FILE__ ), array(), '1.0' ); 39 wp_enqueue_style( 'g_core_css-checkbox', plugins_url( 'css/checkbox.min.css', __FILE__ ), array(), '1.0' ); 40 wp_enqueue_style( 'g_core_css-custom', plugins_url( 'css/custom.css', __FILE__ ), array(), '1.0' ); 41 wp_enqueue_script( 'g_core_script-amaran', plugin_dir_url( __FILE__ ) . 'js/jquery.amaran.min.js', array(), '1.0' ); 42 wp_enqueue_script( 'g_core_script', plugin_dir_url( __FILE__ ) . 'js/scripts.js', array(), '1.0' ); 28 function g_core_labs_cdn_page() 29 { 30 $plugin_dir = dirname(__FILE__); 31 wp_enqueue_style('g_core_css-amaran', plugins_url('css/amaran.min.css', __FILE__)); 32 wp_enqueue_style('g_core_css-animate', plugins_url('css/animate.min.css', __FILE__)); 33 wp_enqueue_style('g_core_css-checkbox', plugins_url('css/checkbox.min.css', __FILE__)); 34 wp_enqueue_style('g_core_css-custom', plugins_url('css/custom.css', __FILE__)); 35 wp_enqueue_script('g_core_script-amaran', plugin_dir_url(__FILE__) . 'js/jquery.amaran.min.js'); 36 wp_enqueue_script('g_core_script', plugin_dir_url(__FILE__) . 'js/scripts.js'); 43 37 44 require $plugin_dir . '/includes/admin.php';38 require($plugin_dir . "/includes/admin.php"); 45 39 } 46 40 47 /** 48 * Function g_core_labs_stream_page 49 * 50 * @return void 51 */ 52 function g_core_labs_stream_page() { 53 $plugin_dir = dirname( __FILE__ ); 54 require $plugin_dir . '/includes/stream.php'; 41 function g_core_labs_stream_page() 42 { 43 $plugin_dir = dirname(__FILE__); 44 require($plugin_dir . "/includes/stream.php"); 55 45 } 56 46 57 /** 58 * Function g_core_labs_help_page 59 * 60 * @return void 61 */ 62 function g_core_labs_help_page() { 63 $plugin_dir = dirname( __FILE__ ); 64 require $plugin_dir . '/includes/help.php'; 47 function g_core_labs_help_page() 48 { 49 $plugin_dir = dirname(__FILE__); 50 require($plugin_dir . "/includes/help.php"); 65 51 } 66 52 67 /** 68 * Function g_core_labs_about_page 69 * 70 * @return void 71 */ 72 function g_core_labs_about_page() { 73 $plugin_dir = dirname( __FILE__ ); 74 require $plugin_dir . '/includes/about.php'; 53 function g_core_labs_about_page() 54 { 55 $plugin_dir = dirname(__FILE__); 56 require($plugin_dir . "/includes/about.php"); 75 57 } 76 58 77 /** 78 * Function g_core_labs_activate 79 * 80 * @param string $template Required. 81 * 82 * @return mixed|string 83 */ 84 function g_core_labs_activate( $template ) { 85 if ( $template ) { 86 include plugin_dir_path( __FILE__ ) . 'includes/front-cdn.php'; 87 $template = plugin_dir_path( __FILE__ ) . 'includes/blank_tpl.php'; 88 } 59 function g_core_labs_activate($template) 60 { 89 61 90 return $template; 62 if ($template) { 63 include(plugin_dir_path(__FILE__) . 'includes/front_cdn.php'); 64 $template = plugin_dir_path(__FILE__) . 'includes/blank_tpl.php'; 65 } 66 67 return $template; 91 68 } 92 69 93 /** 94 * Function g_core_labs_init_action 95 * 96 * @return void 97 */ 98 function g_core_labs_init_action() { 99 load_plugin_textdomain( 'gcore_translate', false, basename( dirname( __FILE__ ) ) . '/languages' ); 70 71 function g_core_labs_init_action() 72 { 73 74 load_plugin_textdomain('gcore_translate', false, basename(dirname(__FILE__)) . '/languages'); 100 75 101 76 } 102 77 103 add_action( 'init', 'g_core_labs_init_action' ); 78 add_action('init', 'g_core_labs_init_action'); 79 /* 80 //add_action( 'plugins_loaded', 'true_load_plugin_textdomain' ); 104 81 105 add_filter( 'template_include', 'g_core_labs_activate', 999 ); 82 load_theme_textdomain('gcore_translate', __DIR__ . '/languages'); 83 */ 84 add_filter('template_include', 'g_core_labs_activate', 999); 106 85 107 register_activation_hook( __FILE__, 'g_core_labs' ); 108 109 /** 110 * Function g_core_labs 111 * 112 * @return void 113 */ 114 function g_core_labs() { 115 update_option( 'gcore_type_image', 1 ); 116 update_option( 'gcore_type_video', 1 ); 117 update_option( 'gcore_type_audio', 1 ); 118 update_option( 'gcore_type_js', 1 ); 119 update_option( 'gcore_type_css', 1 ); 120 update_option( 'gcore_type_archive', 1 ); 121 update_option( 'gcore_folder_templates', 1 ); 122 update_option( 'gcore_folder_plugins', 1 ); 123 update_option( 'gcore_folder_content', 1 ); 124 update_option( 'gcore_folder_wp', 1 ); 125 update_option( 'gcore_type_advanced', 0 ); 126 update_option( 'gcore_folder_advanced', 0 ); 86 register_activation_hook(__FILE__, 'g_core_labs'); 87 function g_core_labs() 88 { 89 update_option('gcore_type_image', 1); 90 update_option('gcore_type_video', 1); 91 update_option('gcore_type_audio', 1); 92 update_option('gcore_type_js', 1); 93 update_option('gcore_type_css', 1); 94 update_option('gcore_type_archive', 1); 95 update_option('gcore_folder_templates', 1); 96 update_option('gcore_folder_plugins', 1); 97 update_option('gcore_folder_content', 1); 98 update_option('gcore_folder_wp', 1); 99 update_option('gcore_type_advanced', 0); 100 update_option('gcore_folder_advanced', 0); 127 101 } -
g-core-labs-cdn/trunk/js/scripts.js
r2907361 r2907407 1 jQuery( 2 function () { 3 jQuery( "#gcore_enable_cdn" ).change( 4 function () { 5 if (this.checked) { 6 jQuery( '.g-d' ).prop( 'disabled', false ); 7 jQuery( 'a.g-d' ).each( 8 function (index) { 9 temp_v = jQuery( this ).data( 'href' ); 10 jQuery( this ).prop( 'href', temp_v ).css( 'opacity', '1' ); 11 } 12 ); 13 } else { 14 jQuery( '.g-d' ).prop( 'disabled', true ); 15 jQuery( 'a.g-d' ).prop( 'href', "#" ).css( 'opacity', '0.3' ); 16 } 17 } 18 ); 19 if (jQuery( ".advanced-show" ).length) { 20 t = jQuery( '.advanced-show' ).data( 't' ); 21 show_advanced( t ); 22 } 23 } 24 ); 1 jQuery(function () { 2 jQuery("#gcore_enable_cdn").change(function () { 3 if (this.checked) { 4 jQuery('.g-d').prop('disabled', false); 5 jQuery('a.g-d').each(function (index) { 6 temp_v = jQuery(this).data('href'); 7 jQuery(this).prop('href', temp_v).css('opacity', '1'); 8 }); 9 } else { 10 jQuery('.g-d').prop('disabled', true); 11 jQuery('a.g-d').prop('href', "#").css('opacity', '0.3'); 12 } 13 }); 14 if (jQuery(".advanced-show").length) { 15 t = jQuery('.advanced-show').data('t'); 16 show_advanced(t); 17 } 18 }); 25 19 26 20 function show_advanced(t) { 27 var data = { 28 action: 'gcore_advance_param_show', 29 t: t 30 }; 31 jQuery.post( 32 ajaxurl, 33 data, 34 function (response) { 35 jQuery( '.advanced-show' ).html( response ); 36 } 37 ); 21 var data = { 22 action: 'gcore_advance_param_show', 23 t: t 24 }; 25 jQuery.post(ajaxurl, data, function (response) { 26 jQuery('.advanced-show').html(response); 27 }); 38 28 } 39 29 40 jQuery( '.g-c' ).bind( 41 "change", 42 function () { 43 t = jQuery( this ).data( 't' ); 44 o = jQuery( this ).data( 'o' ); 45 if (t == 'checkbox') { 46 if (jQuery( this ).is( ':checked' )) { 47 v = 1; 48 } else { 49 v = 0; 50 } 51 if (o == 'gcore_folder_advanced' || o == 'gcore_type_advanced') { 52 if (v == 1) { 53 jQuery( '.list-ch' ).prop( 'disabled', true ).prop( 'checked', false ); 54 jQuery( '.list-advanced' ).show(); 55 } else { 56 jQuery( '.list-ch' ).prop( 'disabled', false ); 57 jQuery( '.list-advanced' ).hide(); 58 } 59 } 60 } else { 61 v = jQuery( this ).val(); 62 } 63 var data = { 64 action: 'gcore_save', 65 v: v, 66 o: o, 67 t: t 68 }; 69 jQuery.post( 70 ajaxurl, 71 data, 72 function (response) { 73 msg( 'save' ); 74 } 75 ); 76 } 77 ); 30 jQuery('.g-c').bind("change", function () { 31 t = jQuery(this).data('t'); 32 o = jQuery(this).data('o'); 33 if (t == 'checkbox') { 34 if (jQuery(this).is(':checked')) { 35 v = 1; 36 } else { 37 v = 0; 38 } 39 if (o == 'gcore_folder_advanced' || o == 'gcore_type_advanced') { 40 if (v == 1) { 41 jQuery('.list-ch').prop('disabled', true).prop('checked', false); 42 jQuery('.list-advanced').show(); 43 } else { 44 jQuery('.list-ch').prop('disabled', false); 45 jQuery('.list-advanced').hide(); 46 } 47 } 48 } else { 49 v = jQuery(this).val(); 50 } 51 var data = { 52 action: 'gcore_save', 53 v: v, 54 o: o, 55 t: t 56 }; 57 jQuery.post(ajaxurl, data, function (response) { 58 msg('save'); 59 }); 60 }); 78 61 79 jQuery( '.advanced-show' ).on( 80 'click', 81 'input.g-add', 82 function () { 83 t = jQuery( this ).data( 'type' ); 84 v = jQuery( '.new-' + t ).val(); 85 if (v != '') { 86 var data = { 87 action: 'gcore_advance_param_add', 88 v: v, 89 t: t 90 }; 91 jQuery.post( 92 ajaxurl, 93 data, 94 function (response) { 95 if (response == 1) { 96 msg( 'add' ); 97 show_advanced( t ) 98 } 99 } 100 ); 101 } 102 } 103 ); 62 jQuery('.advanced-show').on('click', 'input.g-add', function () { 63 t = jQuery(this).data('type'); 64 v = jQuery('.new-' + t).val(); 65 if (v != '') { 66 var data = { 67 action: 'gcore_advance_param_add', 68 v: v, 69 t: t 70 }; 71 jQuery.post(ajaxurl, data, function (response) { 72 if (response == 1) { 73 msg('add'); 74 show_advanced(t) 75 } 76 }); 77 } 78 }); 104 79 105 80 function msg(t) { 106 if(t == "save") {107 jQuery.amaran( {"message":gcoreAmaranMsgSaved});108 }109 if(t == "del") {110 jQuery.amaran( {"message":gcoreAmaranMsgDeleted});111 }112 if(t == "add") {113 jQuery.amaran( {"message":gcoreAmaranMsgAdded});114 }81 if(t == "save") { 82 jQuery.amaran({"message":gcoreAmaranMsgSaved}); 83 } 84 if(t == "del") { 85 jQuery.amaran({"message":gcoreAmaranMsgDeleted}); 86 } 87 if(t == "add") { 88 jQuery.amaran({"message":gcoreAmaranMsgAdded}); 89 } 115 90 } 116 91 117 jQuery( '.advanced-show' ).on( 118 'click', 119 'button.g-delete', 120 function () { 121 t = jQuery( this ).data( 'type' ); 122 v = jQuery( this ).data( 'e' ); 123 if (v != '') { 124 var data = { 125 action: 'gcore_advance_param_del', 126 t: t, 127 v: v 128 }; 129 jQuery.post( 130 ajaxurl, 131 data, 132 function (response) { 133 if (response == 1) { 134 msg( 'del' ); 135 show_advanced( t ) 136 } 137 } 138 ); 139 } 140 } 141 ); 92 jQuery('.advanced-show').on('click', 'button.g-delete', function () { 93 t = jQuery(this).data('type'); 94 v = jQuery(this).data('e'); 95 if (v != '') { 96 var data = { 97 action: 'gcore_advance_param_del', 98 t: t, 99 v: v 100 }; 101 jQuery.post(ajaxurl, data, function (response) { 102 if (response == 1) { 103 msg('del'); 104 show_advanced(t) 105 } 106 }); 107 } 108 }); -
g-core-labs-cdn/trunk/uninstall.php
r2907361 r2907407 1 1 <?php 2 /** 3 * Uninstall 4 * 5 * @package GCORE 6 */ 7 if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { 8 exit(); 9 } 2 if (!defined('WP_UNINSTALL_PLUGIN')) 3 exit();
Note: See TracChangeset
for help on using the changeset viewer.