PluginProbe
Snippet Shortcodes / 5.0a
Snippet Shortcodes v5.0a
5.2.1 5.2 5.1.8 5.1.6 5.1.7 5.1.5 trunk 1.0 1.1 1.2 1.3 1.3.1 1.4 1.5 1.5.1 1.6 1.6.1 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.8 2.0 2.0.1 All 74 releases
← All changes | includes/db.php +41 -80 5.1.55.0a View file →
@@ -20,11 +20,8 @@
20 20 editor varchar(10) NULL,
21 21 data text,
22 22 disabled bit default 0,
23 23 multisite bit default 0,
24 - header bit default 0,
25 - footer bit default 0,
26 - device_type varchar(50) NULL DEFAULT '[\"desktop\",\"mobile\",\"tablet\"]',
27 24 UNIQUE KEY id (id)
28 25 ) $charset_collate;";
29 26
30 27 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
@@ -47,11 +44,8 @@
47 44 id mediumint(9) NOT NULL AUTO_INCREMENT,
48 45 slug varchar(100) NOT NULL,
49 46 data text,
50 47 site_id int default 0,
51 - header bit default 0,
52 - footer bit default 0,
53 - device_type varchar(50) NULL DEFAULT '[\"desktop\",\"mobile\",\"tablet\"]',
54 48 UNIQUE KEY id (id)
55 49 ) $charset_collate;";
56 50
57 51 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
@@ -105,16 +99,11 @@
105 99 function sh_cd_db_shortcodes_by_id( $id ) {
106 100
107 101 global $wpdb;
108 102
109 - $sql = $wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . SH_CD_TABLE . ' where id = %d', $id);
110 - $shortcode = $wpdb->get_row( $sql, ARRAY_A );
103 + $sql = $wpdb->prepare('SELECT id, slug, previous_slug, data, disabled, multisite, editor FROM ' . $wpdb->prefix . SH_CD_TABLE . ' where id = %d', $id);
111 104
112 - if ( false === empty( $shortcode ) ) {
113 - $shortcode = sh_cd_db_filter_loaded_shortcode( $shortcode );
114 - }
115 -
116 - return $shortcode;
105 + return $wpdb->get_row( $sql, ARRAY_A );
117 106 }
118 107
119 108 /**
120 109 * Fetch the content of the shortcode by slug
@@ -130,41 +119,28 @@
130 119 $sqls = [];
131 120
132 121 // If multi site functionality is enabled, look there first for the shortcode!
133 122 if ( true === sh_cd_is_multisite_enabled() ) {
134 -
135 - $sql = $wpdb->prepare('SELECT * FROM ' . $wpdb->base_prefix . SH_CD_TABLE_MULTISITE . ' where slug = %s', $slug);
136 123
137 - $shortcode = $wpdb->get_row( $sql, ARRAY_A );
124 + $sqls[] = $wpdb->prepare('SELECT data FROM ' . $wpdb->base_prefix . SH_CD_TABLE_MULTISITE . ' where slug = %s', $slug);
125 + }
138 126
139 - if ( false === empty( $shortcode[ 'data' ] ) ) {
140 - $shortcode[ 'data' ] = stripslashes( $shortcode[ 'data' ] );
141 - $shortcode[ 'source' ] = 'multisite';
142 - return sh_cd_db_filter_loaded_shortcode( $shortcode );
143 - }
144 - }
127 + $sqls[] = $wpdb->prepare('SELECT data FROM ' . $wpdb->prefix . SH_CD_TABLE . ' where slug = %s and disabled <> 1', $slug);
145 128
146 - // No multisite slug by this name, so check the main table
147 - $sql = $wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . SH_CD_TABLE . ' where slug = %s and disabled <> 1', $slug);
148 - $shortcode = $wpdb->get_row( $sql, ARRAY_A );
129 + foreach ( $sqls as $sql ) {
149 130
150 - if ( false === empty( $shortcode[ 'data' ] ) ) {
151 - $shortcode[ 'data' ] = stripslashes( $shortcode[ 'data' ] );
152 - $shortcode[ 'source' ] = 'local';
153 - return sh_cd_db_filter_loaded_shortcode( $shortcode );
131 + $row = $wpdb->get_var( $sql );
132 +
133 + if ( false === empty( $row ) ) {
134 +
135 + return stripslashes( $row );
136 + }
154 137 }
155 -
138 +
156 139 return NULL;
157 140 }
158 141
159 142 /**
160 - * Allow processing of loaded shortcode data
161 - */
162 -function sh_cd_db_filter_loaded_shortcode( $shortcode ) {
163 - return apply_filters( 'sh-cd-db-loaded-shortcode', $shortcode );
164 -}
165 -
166 -/**
167 143 * Get a Shortcode's slug from the slug ID
168 144 *
169 145 * @param $id
170 146 *
@@ -193,25 +169,23 @@
193 169 }
194 170
195 171 $multi_site_enabled = sh_cd_is_multisite_enabled();
196 172
197 - $default_values = apply_filters( 'sh-cd-db-default-values', [ 'id' => NULL,
198 - 'slug' => NULL,
199 - 'previous_slug' => NULL,
200 - 'editor' => NULL,
201 - 'data' => NULL,
202 - 'disabled' => 0,
203 - 'multisite' => 0
173 + $shortcode = wp_parse_args( $shortcode, [ 'id' => NULL,
174 + 'slug' => NULL,
175 + 'previous_slug' => NULL,
176 + 'editor' => NULL,
177 + 'data' => NULL,
178 + 'disabled' => 0,
179 + 'multisite' => 0
204 180 ]);
205 181
206 - $shortcode = wp_parse_args( $shortcode, $default_values );
207 -
208 182 // We need either a slug or an ID
209 183 if ( true === empty( $shortcode['slug'] ) && true === empty( $shortcode['id'] ) ) {
210 184 return false;
211 185 }
212 186
213 - $shortcode['disabled'] = (int) $shortcode['disabled'];
187 + $shortcode['disabled'] = (int) $shortcode['disabled'];
214 188 $shortcode['multisite'] = ( true === $multi_site_enabled ) ? (int) $shortcode['multisite'] : 0;
215 189
216 190 global $wpdb;
217 191
@@ -221,10 +195,8 @@
221 195 if ( false === empty( $shortcode['id'] ) && true === is_numeric( $shortcode['id'] ) ){
222 196
223 197 $shortcode['slug'] = sh_cd_slug_generate( $shortcode['slug'], $shortcode['id'] );
224 198
225 - $shortcode = apply_filters( 'sh-cd-db-default-shortcode-before-save', $shortcode );
226 -
227 199 $formats = sh_cd_db_get_formats( $shortcode );
228 200
229 201 $result = $wpdb->update(
230 202 $wpdb->prefix . SH_CD_TABLE,
@@ -248,10 +220,8 @@
248 220
249 221 // Ensure slug is santised and unique
250 222 $shortcode['slug'] = sh_cd_slug_generate( $shortcode['slug'] );
251 223
252 - $shortcode = apply_filters( 'sh-cd-db-default-shortcode-before-save', $shortcode );
253 -
254 224 $formats = sh_cd_db_get_formats( $shortcode );
255 225
256 226 $result = $wpdb->insert(
257 227 $wpdb->prefix . SH_CD_TABLE,
@@ -270,9 +240,9 @@
270 240
271 241 if ( false !== $result ) {
272 242
273 243 if ( 1 === $shortcode['multisite'] ) {
274 - sh_cd_db_shortcodes_multisite_insert( $shortcode );
244 + sh_cd_db_shortcodes_multisite_insert( $shortcode['slug'], $shortcode['data'] );
275 245 } else {
276 246 sh_cd_db_shortcodes_multisite_delete( $shortcode['slug'] );
277 247 }
278 248
@@ -297,37 +267,35 @@
297 267 * @param $shortcode
298 268 *
299 269 * @return bool
300 270 */
301 -function sh_cd_db_shortcodes_multisite_insert( $shortcode ) {
271 +function sh_cd_db_shortcodes_multisite_insert( $slug, $data ) {
302 272
303 273 if ( false === is_admin() ) {
304 274 return false;
305 275 }
306 276
307 - sh_cd_db_shortcodes_multisite_delete( $shortcode['slug'] );
277 + sh_cd_db_shortcodes_multisite_delete( $slug );
308 278
309 279 global $wpdb;
310 280
311 - $shortcode_multisite = [ 'slug' => $shortcode['slug'],
312 - 'data' => $shortcode['data'],
313 - 'header' => $shortcode['header'],
314 - 'footer' => $shortcode['footer'],
315 - 'device_type' => $shortcode['device_type'],
316 - 'site_id' => get_current_blog_id()
281 + $shortcode = [
282 + 'slug' => $slug,
283 + 'data' => $data,
284 + 'site_id' => get_current_blog_id()
317 285 ];
318 286
319 - $formats = sh_cd_db_get_formats( $shortcode_multisite );
287 + $formats = sh_cd_db_get_formats( $shortcode );
320 288
321 289 $result = $wpdb->insert(
322 290 $wpdb->base_prefix . SH_CD_TABLE_MULTISITE,
323 - $shortcode_multisite,
291 + $shortcode,
324 292 $formats
325 293 );
326 294
327 - sh_cd_cache_delete( $shortcode['slug'] );
295 + sh_cd_cache_delete( $slug );
328 296
329 - do_action( 'sh_cd_multisite_changed', $shortcode );
297 + do_action( 'sh_cd_multisite_changed', $slug );
330 298
331 299 return ( false !== $result );
332 300 }
333 301
@@ -419,9 +387,9 @@
419 387
420 388 if ( false === empty( $shortcode ) ) {
421 389
422 390 if ( 1 === (int) $multisite ) {
423 - sh_cd_db_shortcodes_multisite_insert( $shortcode );
391 + sh_cd_db_shortcodes_multisite_insert( $shortcode['slug'], $shortcode['data'] );
424 392 } else {
425 393 sh_cd_db_shortcodes_multisite_delete( $shortcode['slug'] );
426 394 }
427 395
@@ -459,9 +427,9 @@
459 427
460 428 if ( false === empty( $shortcode ) ) {
461 429
462 430 if ( 1 === (int) $shortcode[ 'multisite' ] ) {
463 - sh_cd_db_shortcodes_multisite_insert( $shortcode );
431 + sh_cd_db_shortcodes_multisite_insert( $shortcode['slug'], $shortcode['data'] );
464 432 } else {
465 433 sh_cd_db_shortcodes_multisite_delete( $shortcode['slug'] );
466 434 }
467 435
@@ -486,12 +454,8 @@
486 454 }
487 455
488 456 global $wpdb;
489 457
490 - // Clear multi site
491 - $shortcode_before_delete = sh_cd_db_shortcodes_by_id( $id );
492 - sh_cd_db_shortcodes_multisite_delete( $shortcode_before_delete['slug'] );
493 -
494 458 // Clear cached version
495 459 sh_cd_cache_delete_by_slug_or_key( $id );
496 460
497 461 $slug = sh_cd_db_shortcodes_get_slug_by_id( $id );
@@ -513,19 +477,16 @@
513 477 */
514 478 function sh_cd_db_get_formats( $data ) {
515 479
516 480 $lookup = [
517 - 'id' => '%d',
518 - 'slug' => '%s',
481 + 'id' => '%d',
482 + 'slug' => '%s',
519 483 'previous_slug' => '%s',
520 - 'data' => '%s',
521 - 'disabled' => '%d',
522 - 'multisite' => '%d',
523 - 'site_id' => '%d',
524 - 'editor' => '%s',
525 - 'header' => '%d',
526 - 'footer' => '%d',
527 - 'device_type' => '%s'
484 + 'data' => '%s',
485 + 'disabled' => '%d',
486 + 'multisite' => '%d',
487 + 'site_id' => '%d',
488 + 'editor' => '%s'
528 489 ];
529 490
530 491 $formats = [];
531 492