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/themify-.../themify
File: class-themify-storage.php
<?php
[0] Fix | Delete
[1] Fix | Delete
class Themify_Storage
[2] Fix | Delete
{
[3] Fix | Delete
[4] Fix | Delete
private static $table = null;
[5] Fix | Delete
[6] Fix | Delete
public static function init(){
[7] Fix | Delete
if (self::$table === null) {
[8] Fix | Delete
global $wpdb;
[9] Fix | Delete
$errors = $wpdb->show_errors;
[10] Fix | Delete
try {
[11] Fix | Delete
self::$table = $wpdb->prefix . 'tf_storage';
[12] Fix | Delete
$q = 'CREATE TABLE IF NOT EXISTS ' . self::$table . ' (
[13] Fix | Delete
`key` CHAR(16) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL PRIMARY KEY,
[14] Fix | Delete
`value` MEDIUMTEXT NOT NULL,
[15] Fix | Delete
`expire` INT UNSIGNED,
[16] Fix | Delete
KEY(expire)
[17] Fix | Delete
) ENGINE=InnoDB ' . $wpdb->get_charset_collate() . ';';
[18] Fix | Delete
$wpdb->hide_errors();
[19] Fix | Delete
$res = $wpdb->query($q);
[20] Fix | Delete
if ($res === false) {
[21] Fix | Delete
self::$table = false;
[22] Fix | Delete
}
[23] Fix | Delete
unset($q, $res);
[24] Fix | Delete
} catch (Throwable $e) {
[25] Fix | Delete
self::$table = false;
[26] Fix | Delete
}
[27] Fix | Delete
finally {
[28] Fix | Delete
if ($errors) {
[29] Fix | Delete
$wpdb->show_errors();
[30] Fix | Delete
}
[31] Fix | Delete
}
[32] Fix | Delete
}
[33] Fix | Delete
return self::$table;
[34] Fix | Delete
}
[35] Fix | Delete
[36] Fix | Delete
public static function cleanDb(){
[37] Fix | Delete
if (self::init() !== false) {
[38] Fix | Delete
$q = 'DELETE FROM %s WHERE `expire` IS NOT NULL AND `expire`<' . time();
[39] Fix | Delete
return self::query($q);
[40] Fix | Delete
}
[41] Fix | Delete
return false;
[42] Fix | Delete
}
[43] Fix | Delete
[44] Fix | Delete
public static function query(string $q){
[45] Fix | Delete
if (self::init() !== false) {
[46] Fix | Delete
global $wpdb;
[47] Fix | Delete
return $wpdb->query(sprintf($q, self::$table));
[48] Fix | Delete
}
[49] Fix | Delete
return false;
[50] Fix | Delete
}
[51] Fix | Delete
[52] Fix | Delete
public static function get(string $key,string $prefix = ''){
[53] Fix | Delete
$k = self::getHash($key, $prefix);
[54] Fix | Delete
if (self::init() !== false) {
[55] Fix | Delete
global $wpdb;
[56] Fix | Delete
$res = $wpdb->get_row('SELECT `value`,`expire` FROM ' . self::$table . ' WHERE `key`="' . esc_sql($k) . '" LIMIT 1');
[57] Fix | Delete
unset($k);
[58] Fix | Delete
if (!empty($res)) {
[59] Fix | Delete
if (!empty($res->expire) && time() > $res->expire) {
[60] Fix | Delete
self::delete($key, $prefix);
[61] Fix | Delete
}
[62] Fix | Delete
elseif (isset($res->value)) {
[63] Fix | Delete
return $res->value;
[64] Fix | Delete
}
[65] Fix | Delete
}
[66] Fix | Delete
return false;
[67] Fix | Delete
}
[68] Fix | Delete
return get_transient($k);
[69] Fix | Delete
}
[70] Fix | Delete
[71] Fix | Delete
public static function set(string $key, $v, $exp = null,string $prefix = ''){
[72] Fix | Delete
$k = self::getHash($key, $prefix);
[73] Fix | Delete
if (is_array($v)) {
[74] Fix | Delete
$v = json_encode($v);
[75] Fix | Delete
} elseif ($v === true || $v === false) {
[76] Fix | Delete
$v = $v === true ? '1' : '0';
[77] Fix | Delete
}
[78] Fix | Delete
if (self::init() !== false) {
[79] Fix | Delete
global $wpdb;
[80] Fix | Delete
$exp = $exp === null?'DEFAULT':((int)$exp + time());
[81] Fix | Delete
$q = 'INSERT INTO ' . self::$table . ' (`key`,`value`,`expire`) VALUES ("' . esc_sql($k) . '","' . esc_sql($v) . '",' . $exp . ') ON DUPLICATE KEY UPDATE `value`=VALUES(value),`expire`=VALUES(expire)';
[82] Fix | Delete
return $wpdb->query($q);
[83] Fix | Delete
}
[84] Fix | Delete
return set_transient($k, $v, $exp);
[85] Fix | Delete
}
[86] Fix | Delete
[87] Fix | Delete
public static function delete(string $k,string $prefix = ''){
[88] Fix | Delete
$k = self::getHash($k, $prefix);
[89] Fix | Delete
if (self::init() !== false) {
[90] Fix | Delete
global $wpdb;
[91] Fix | Delete
$q = 'DELETE FROM ' . self::$table . ' WHERE `key`="' . esc_sql($k) . '" LIMIT 1';
[92] Fix | Delete
return $wpdb->query($q);
[93] Fix | Delete
}
[94] Fix | Delete
return delete_transient($k);
[95] Fix | Delete
}
[96] Fix | Delete
[97] Fix | Delete
public static function getHash(string $k,string $prefix = ''):string{
[98] Fix | Delete
static $h = null;
[99] Fix | Delete
if ($h === null) {
[100] Fix | Delete
$hashs = hash_algos();
[101] Fix | Delete
$h = 'fnv164';
[102] Fix | Delete
if (in_array('xxh3', $hashs, true)) {
[103] Fix | Delete
$h = 'xxh3';
[104] Fix | Delete
} elseif (in_array('fnv1a64', $hashs, true)) {
[105] Fix | Delete
$h = 'fnv1a64';
[106] Fix | Delete
}
[107] Fix | Delete
unset($hashs);
[108] Fix | Delete
}
[109] Fix | Delete
$k = hash($h, $k);
[110] Fix | Delete
if ($prefix !== '') {
[111] Fix | Delete
$k = substr_replace($k, $prefix, 0, strlen($prefix));
[112] Fix | Delete
}
[113] Fix | Delete
return $k;
[114] Fix | Delete
}
[115] Fix | Delete
[116] Fix | Delete
public static function deleteByPrefix(string $prefix){
[117] Fix | Delete
return self::query('DELETE FROM %s WHERE `key` LIKE "' . esc_sql($prefix) . '%%' . '"');
[118] Fix | Delete
}
[119] Fix | Delete
}
[120] Fix | Delete
[121] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function