Skip to content

Commit 6f911bf

Browse files
committed
Don't encode HTML entities automatically
1 parent 61dc986 commit 6f911bf

File tree

3 files changed

+47
-10
lines changed

3 files changed

+47
-10
lines changed

admin/views/single.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
<h3><?php _e( 'Code', 'code-snippets' ); ?></h3>
6060
</label>
6161

62-
<textarea id="snippet_code" name="snippet_code" rows="20" spellcheck="false" style="font-family: monospace; width:100%;"><?php echo $snippet->code; ?></textarea>
62+
<textarea id="snippet_code" name="snippet_code" rows="20" spellcheck="false" style="font-family: monospace; width:100%;"><?php echo esc_textarea( $snippet->code ); ?></textarea>
6363

6464
<?php do_action( 'code_snippets/admin/single', $snippet ); ?>
6565

code-snippets.php

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,43 @@ function upgrade() {
431431
/* Skip this if we're on the latest version */
432432
if ( version_compare( $current_version, $this->version, '<' ) ) {
433433

434+
/* Data in database is unsecapped in 1.8 */
435+
if ( version_compare( $current_version, '1.8', '<' ) ) {
436+
437+
$tables = array();
438+
439+
if ( $wpdb->get_var( "SHOW TABLES LIKE '$wpdb->snippets'" ) === $wpdb->snippets ) {
440+
$tables[] = $wpdb->snippets;
441+
}
442+
443+
if ( is_multisite() && is_main_site() && $wpdb->get_var( "SHOW TABLES LIKE '$wpdb->ms_snippets'" ) === $wpdb->ms_snippets ) {
444+
$tables[] = $wpdb->ms_snippets;
445+
}
446+
447+
foreach ( $tables as $table ) {
448+
$snippets = $wpdb->get_results( "SELECT * FROM $table" );
449+
450+
foreach ( $snippets as $snippet ) {
451+
452+
$snippet->name = esc_sql( htmlspecialchars_decode( stripslashes( $snippet->name ) ) );
453+
$snippet->code = esc_sql( htmlspecialchars_decode( stripslashes( $snippet->code ) ) );
454+
$snippet->description = esc_sql( htmlspecialchars_decode( stripslashes( $snippet->description ) ) );
455+
456+
$wpdb->update( $table,
457+
array(
458+
'name' => $snippet->name,
459+
'code' => $snippet->code,
460+
'description' => $snippet->description
461+
),
462+
array( 'id' => $snippet->id ),
463+
array( '%s' ),
464+
array( '%d' )
465+
);
466+
}
467+
} // end $table foreach
468+
469+
} // end < 1.8 version check
470+
434471
/* Register the capabilities once only */
435472
if ( version_compare( $current_version, '1.5', '<' ) ) {
436473
$this->setup_roles( true );
@@ -677,10 +714,10 @@ public function escape_snippet_data( $snippet ) {
677714
$snippet->code = rtrim( $snippet->code, '?>' );
678715

679716
/* escape the data */
680-
$snippet->name = esc_sql( htmlspecialchars( $snippet->name ) );
681-
$snippet->description = esc_sql( htmlspecialchars( $snippet->description ) );
682-
$snippet->code = esc_sql( htmlspecialchars( $snippet->code ) );
683-
$snippet->id = absint( $snippet->id );
717+
$snippet->name = esc_sql( $snippet->name );
718+
$snippet->description = esc_sql( $snippet->description );
719+
$snippet->code = esc_sql( $snippet->code );
720+
$snippet->id = absint ( $snippet->id );
684721

685722
return apply_filters( 'code_snippets/escape_snippet_data', $snippet );
686723
}
@@ -699,9 +736,9 @@ public function unescape_snippet_data( $snippet ) {
699736

700737
$snippet = $this->build_snippet_object( $snippet );
701738

702-
$snippet->name = htmlspecialchars_decode( stripslashes( $snippet->name ) );
703-
$snippet->code = htmlspecialchars_decode( stripslashes( $snippet->code ) );
704-
$snippet->description = htmlspecialchars_decode( stripslashes( $snippet->description ) );
739+
$snippet->name = stripslashes( $snippet->name );
740+
$snippet->code = stripslashes( $snippet->code );
741+
$snippet->description = stripslashes( $snippet->description );
705742

706743
return apply_filters( 'code_snippets/unescape_snippet_data', $snippet );
707744
}

includes/class-list-table.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ function column_default( $snippet, $column_name ) {
124124
return $snippet->id;
125125
case 'description':
126126
if ( ! empty( $snippet->description ) )
127-
return apply_filters( 'code_snippets/list_table/print_snippet_description', $snippet->description );
127+
return esc_html( apply_filters( 'code_snippets/list_table/print_snippet_description', $snippet->description ) );
128128
else
129129
return '&#8212;';
130130
default:
@@ -195,7 +195,7 @@ function column_name( $snippet ) {
195195
);
196196

197197
if ( ! empty( $snippet->name ) )
198-
$title = stripslashes( $snippet->name );
198+
$title = esc_html( $snippet->name );
199199
else
200200
$title = sprintf ( __( 'Untitled–%d', 'code-snippets' ), $snippet->id );
201201

0 commit comments

Comments
 (0)