Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../public_h.../wp-conte.../plugins/string-l.../includes/Extensio.../SQL/views/editor
File: sql.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace StringLocator;
[2] Fix | Delete
[3] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[4] Fix | Delete
die();
[5] Fix | Delete
}
[6] Fix | Delete
[7] Fix | Delete
global $wpdb;
[8] Fix | Delete
[9] Fix | Delete
$editor_content = '';
[10] Fix | Delete
[11] Fix | Delete
$this_url = add_query_arg(
[12] Fix | Delete
array(
[13] Fix | Delete
'page' => 'string-locator',
[14] Fix | Delete
),
[15] Fix | Delete
admin_url( ( is_multisite() ? 'network/admin.php' : 'tools.php' ) )
[16] Fix | Delete
);
[17] Fix | Delete
[18] Fix | Delete
if ( 'int' === $_GET['sql-primary-type'] ) {
[19] Fix | Delete
$row = $wpdb->get_row(
[20] Fix | Delete
$wpdb->prepare(
[21] Fix | Delete
'SELECT * FROM ' . $_GET['sql-table'] . ' WHERE ' . $_GET['sql-primary-column'] . ' = %d LIMIT 1', // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- It is not possible to prepare a table or column name, but these are instead validated in `/includes/Search/class-sql.php` before reaching this point.
[22] Fix | Delete
$_GET['sql-primary-key']
[23] Fix | Delete
)
[24] Fix | Delete
);
[25] Fix | Delete
} else {
[26] Fix | Delete
$row = $wpdb->get_row(
[27] Fix | Delete
$wpdb->prepare(
[28] Fix | Delete
'SELECT * FROM ' . $_GET['sql-table'] . ' WHERE ' . $_GET['sql-primary-column'] . ' = %s LIMIT 1', // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- It is not possible to prepare a table or column name, but these are instead validated in `/includes/Search/class-sql.php` before reaching this point.
[29] Fix | Delete
$_GET['sql-primary-key']
[30] Fix | Delete
)
[31] Fix | Delete
);
[32] Fix | Delete
}
[33] Fix | Delete
[34] Fix | Delete
$format = 'string';
[35] Fix | Delete
[36] Fix | Delete
if ( is_serialized( $row->{ esc_html( $_GET['sql-column'] ) }, true ) ) {
[37] Fix | Delete
$format = 'serialized';
[38] Fix | Delete
}
[39] Fix | Delete
[40] Fix | Delete
$editor_content = $row->{ esc_html( $_GET['sql-column'] ) };
[41] Fix | Delete
?>
[42] Fix | Delete
<form id="string-locator-edit-form" class="string-locator-editor-wrapper">
[43] Fix | Delete
<?php wp_nonce_field( 'wp_rest' ); ?>
[44] Fix | Delete
[45] Fix | Delete
<h1 class="screen-reader-text">
[46] Fix | Delete
<?php
[47] Fix | Delete
/* translators: Title on the editor page. */
[48] Fix | Delete
esc_html_e( 'String Locator - SQL Editor', 'string-locator' );
[49] Fix | Delete
?>
[50] Fix | Delete
</h1>
[51] Fix | Delete
[52] Fix | Delete
<?php String_Locator::edit_form_fields( true ); ?>
[53] Fix | Delete
[54] Fix | Delete
<div class="string-locator-header">
[55] Fix | Delete
<div>
[56] Fix | Delete
<span class="title">
[57] Fix | Delete
<?php
[58] Fix | Delete
printf(
[59] Fix | Delete
// translators: %s: The name of the database column being edited.
[60] Fix | Delete
__( 'You are currently editing a database entry from <em>%s</em>', 'string-locator' ),
[61] Fix | Delete
esc_html( $_GET['file-reference'] )
[62] Fix | Delete
);
[63] Fix | Delete
?>
[64] Fix | Delete
</span>
[65] Fix | Delete
</div>
[66] Fix | Delete
[67] Fix | Delete
<div>
[68] Fix | Delete
<a href="<?php echo esc_url( $this_url . '&restore=true' ); ?>" class="button button-default"><?php esc_html_e( 'Return to search results', 'string-locator' ); ?></a>
[69] Fix | Delete
<button type="submit" class="button button-primary"><?php esc_html_e( 'Save changes', 'string-locator' ); ?></button>
[70] Fix | Delete
</div>
[71] Fix | Delete
</div>
[72] Fix | Delete
[73] Fix | Delete
<div class="string-locator-editor">
[74] Fix | Delete
<div id="string-locator-notices">
[75] Fix | Delete
<div class="row notice notice-error inline below-h2 hide-if-js">
[76] Fix | Delete
<p>
[77] Fix | Delete
<?php esc_html_e( 'The editor requires JavaScript to be enabled before it can be used.', 'string-locator' ); ?>
[78] Fix | Delete
</p>
[79] Fix | Delete
</div>
[80] Fix | Delete
[81] Fix | Delete
<div class="row notice notice-warning inline below-h2 is-dismissible <?php echo ( 'serialized' === $format ? 'notice-error' : '' ); ?>">
[82] Fix | Delete
<p>
[83] Fix | Delete
<strong><?php esc_html_e( 'Warning:', 'string-locator' ); ?></strong> <?php esc_html_e( 'You are directly editing a database entry.', 'string-locator' ); ?>
[84] Fix | Delete
</p>
[85] Fix | Delete
<p>
[86] Fix | Delete
<?php _e( 'You are about to make modifications directly to the database. Even if you are familiar with such changes, it is strongly recommended you keep a backup, and to perform such changes on a <a href="https://wordpress.org/support/article/running-a-development-copy-of-wordpress/">staging site</a> first.', 'string-locator' ); ?>
[87] Fix | Delete
</p>
[88] Fix | Delete
[89] Fix | Delete
<?php if ( 'serialized' === $format ) : ?>
[90] Fix | Delete
<p>
[91] Fix | Delete
<strong>
[92] Fix | Delete
<?php _e( 'This data is serialized, that means extra care must be taken as string lengths, and special characters must be accurately representative of the various field descriptors also found in the database entry.', 'string-locator' ); ?>
[93] Fix | Delete
</strong>
[94] Fix | Delete
</p>
[95] Fix | Delete
<?php endif; ?>
[96] Fix | Delete
</div>
[97] Fix | Delete
</div>
[98] Fix | Delete
[99] Fix | Delete
<textarea
[100] Fix | Delete
name="string-locator-editor-content"
[101] Fix | Delete
class="string-locator-editor hide-if-no-js"
[102] Fix | Delete
id="code-editor"
[103] Fix | Delete
autofocus="autofocus"
[104] Fix | Delete
><?php echo esc_html( $editor_content ); ?></textarea>
[105] Fix | Delete
</div>
[106] Fix | Delete
[107] Fix | Delete
<div class="string-locator-sidebar">
[108] Fix | Delete
[109] Fix | Delete
<?php do_action( 'string_locator_editor_sidebar_start' ); ?>
[110] Fix | Delete
[111] Fix | Delete
<div class="string-locator-panel">
[112] Fix | Delete
<h2 class="title"><?php esc_html_e( 'Details', 'string-locator' ); ?></h2>
[113] Fix | Delete
<div class="string-locator-panel-body">
[114] Fix | Delete
<div class="row">
[115] Fix | Delete
<?php
[116] Fix | Delete
printf(
[117] Fix | Delete
// translators: 1: Table name being edited.
[118] Fix | Delete
esc_html__( 'Database table: %s', 'string-locator' ),
[119] Fix | Delete
esc_html( $_GET['sql-table'] )
[120] Fix | Delete
);
[121] Fix | Delete
?>
[122] Fix | Delete
</div>
[123] Fix | Delete
[124] Fix | Delete
<div class="row">
[125] Fix | Delete
<?php
[126] Fix | Delete
printf(
[127] Fix | Delete
// translators: 1: Column name being edited.
[128] Fix | Delete
esc_html__( 'Database Column: %s', 'string-locator' ),
[129] Fix | Delete
esc_html( $_GET['sql-column'] )
[130] Fix | Delete
);
[131] Fix | Delete
?>
[132] Fix | Delete
</div>
[133] Fix | Delete
[134] Fix | Delete
<div class="row">
[135] Fix | Delete
<?php
[136] Fix | Delete
printf(
[137] Fix | Delete
// translators: 1: Primary database column name. 2: Primary database column key.
[138] Fix | Delete
esc_html__( 'Primary column and key: %1$s:%2$s', 'string-locator' ),
[139] Fix | Delete
esc_html( $_GET['sql-primary-column'] ),
[140] Fix | Delete
esc_html( $_GET['sql-primary-key'] )
[141] Fix | Delete
);
[142] Fix | Delete
?>
[143] Fix | Delete
</div>
[144] Fix | Delete
</div>
[145] Fix | Delete
</div>
[146] Fix | Delete
[147] Fix | Delete
<?php do_action( 'string_locator_editor_sidebar_before_checks' ); ?>
[148] Fix | Delete
[149] Fix | Delete
<div class="string-locator-panel">
[150] Fix | Delete
<h2 class="title"><?php esc_html_e( 'Save checks', 'string-locator' ); ?></h2>
[151] Fix | Delete
<div class="string-locator-panel-body">
[152] Fix | Delete
<?php do_action( 'string_locator_editor_checks' ); ?>
[153] Fix | Delete
</div>
[154] Fix | Delete
</div>
[155] Fix | Delete
[156] Fix | Delete
<?php do_action( 'string_locator_editor_sidebar_after_checks' ); ?>
[157] Fix | Delete
[158] Fix | Delete
<div class="string-locator-panel">
[159] Fix | Delete
<h2 class="title"><?php esc_html_e( 'Database entry context', 'string-locator' ); ?></h2>
[160] Fix | Delete
<div class="string-locator-panel-body">
[161] Fix | Delete
[162] Fix | Delete
<?php
[163] Fix | Delete
foreach ( $row as $key => $value ) {
[164] Fix | Delete
// Do not output the currently edited column as a context relationship.
[165] Fix | Delete
if ( $_GET['sql-column'] === $key ) {
[166] Fix | Delete
continue;
[167] Fix | Delete
}
[168] Fix | Delete
?>
[169] Fix | Delete
[170] Fix | Delete
<div class="row">
[171] Fix | Delete
<?php echo esc_html( $key ); ?>:
[172] Fix | Delete
<br />
[173] Fix | Delete
<span class="string-locator-italics">
[174] Fix | Delete
<?php echo esc_html( $value ); ?>
[175] Fix | Delete
</span>
[176] Fix | Delete
</div>
[177] Fix | Delete
[178] Fix | Delete
<?php
[179] Fix | Delete
}
[180] Fix | Delete
?>
[181] Fix | Delete
</div>
[182] Fix | Delete
</div>
[183] Fix | Delete
[184] Fix | Delete
<?php
[185] Fix | Delete
$function_info = get_defined_functions();
[186] Fix | Delete
$function_help = '';
[187] Fix | Delete
[188] Fix | Delete
foreach ( $function_info['user'] as $user_func ) {
[189] Fix | Delete
if ( strstr( $editor_content, $user_func . '(' ) ) {
[190] Fix | Delete
$function_object = new \ReflectionFunction( $user_func );
[191] Fix | Delete
$attrs = $function_object->getParameters();
[192] Fix | Delete
[193] Fix | Delete
$attr_strings = array();
[194] Fix | Delete
[195] Fix | Delete
foreach ( $attrs as $attr ) {
[196] Fix | Delete
$arg = '';
[197] Fix | Delete
[198] Fix | Delete
if ( $attr->isPassedByReference() ) {
[199] Fix | Delete
$arg .= '&';
[200] Fix | Delete
}
[201] Fix | Delete
[202] Fix | Delete
if ( $attr->isOptional() ) {
[203] Fix | Delete
$arg = sprintf(
[204] Fix | Delete
'[ %s$%s ]',
[205] Fix | Delete
$arg,
[206] Fix | Delete
$attr->getName()
[207] Fix | Delete
);
[208] Fix | Delete
} else {
[209] Fix | Delete
$arg = sprintf(
[210] Fix | Delete
'%s$%s',
[211] Fix | Delete
$arg,
[212] Fix | Delete
$attr->getName()
[213] Fix | Delete
);
[214] Fix | Delete
}
[215] Fix | Delete
[216] Fix | Delete
$attr_strings[] = $arg;
[217] Fix | Delete
}
[218] Fix | Delete
[219] Fix | Delete
$function_help .= sprintf(
[220] Fix | Delete
'<div class="row"><a href="%s" target="_blank">%s</a></div>',
[221] Fix | Delete
esc_url( sprintf( 'https://developer.wordpress.org/reference/functions/%s/', $user_func ) ),
[222] Fix | Delete
$user_func . '( ' . implode( ', ', $attr_strings ) . ' )'
[223] Fix | Delete
);
[224] Fix | Delete
}
[225] Fix | Delete
}
[226] Fix | Delete
?>
[227] Fix | Delete
[228] Fix | Delete
<?php if ( ! empty( $function_help ) ) : ?>
[229] Fix | Delete
[230] Fix | Delete
<div class="string-locator-panel">
[231] Fix | Delete
<h2 class="title"><?php esc_html_e( 'WordPress functions', 'string-locator' ); ?></h2>
[232] Fix | Delete
<div class="string-locator-panel-body">
[233] Fix | Delete
<?php echo $function_help; ?>
[234] Fix | Delete
</div>
[235] Fix | Delete
<?php endif; ?>
[236] Fix | Delete
[237] Fix | Delete
<?php do_action( 'string_locator_editor_sidebar_end' ); ?>
[238] Fix | Delete
[239] Fix | Delete
</div>
[240] Fix | Delete
[241] Fix | Delete
</div>
[242] Fix | Delete
[243] Fix | Delete
<script id="tmpl-string-locator-alert" type="text/template">
[244] Fix | Delete
<div class="row notice notice-{{ data.type }} inline below-h2 is-dismissible">
[245] Fix | Delete
{{{ data.message }}}
[246] Fix | Delete
[247] Fix | Delete
<button type="button" class="notice-dismiss" onclick="this.closest( '.notice' ).remove()"><span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice.', 'string-locator' ); ?></span></button>
[248] Fix | Delete
</div>
[249] Fix | Delete
</script>
[250] Fix | Delete
[251] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function