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

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/themify-.../themify
File: class-themify-enqueue.php
$htaccess_file = self::getHtaccessFile();
[1000] Fix | Delete
if (is_file($htaccess_file) && Themify_Filesystem::is_writable($htaccess_file)) {
[1001] Fix | Delete
if (themify_get_server() === 'iis') {//for iis we need to add webp mimeType
[1002] Fix | Delete
$iis_config = get_home_path() . 'web.config';
[1003] Fix | Delete
if (is_file($iis_config) && Themify_Filesystem::is_writable($iis_config)) {
[1004] Fix | Delete
$rules = trim(Themify_Filesystem::get_contents($iis_config));
[1005] Fix | Delete
if (!empty($rules) && strpos($rules, 'mimeType="image/webp"') === false) {
[1006] Fix | Delete
$replace = '<!--BEGIN_WEBP_OUTPUT_BY_THEMIFY-->
[1007] Fix | Delete
<mimeMap fileExtension=".webp" mimeType="image/webp"/>
[1008] Fix | Delete
<!--END_WEBP_OUTPUT_BY_THEMIFY-->';
[1009] Fix | Delete
if (preg_match_all('#\<staticContent\>#', $rules) > 0) {
[1010] Fix | Delete
$rules = preg_replace('#\<staticContent\>#', '<staticContent>' . $replace, $rules, 1);
[1011] Fix | Delete
} else {
[1012] Fix | Delete
$rules = preg_replace('#\<rewrite\>#', '<staticContent>' . $replace . '</staticContent><rewrite>', $rules, 1);
[1013] Fix | Delete
}
[1014] Fix | Delete
unset($replace);
[1015] Fix | Delete
Themify_Filesystem::put_contents($iis_config, trim($rules));
[1016] Fix | Delete
}
[1017] Fix | Delete
}
[1018] Fix | Delete
unset($iis_config);
[1019] Fix | Delete
}
[1020] Fix | Delete
$rules = trim(Themify_Filesystem::get_contents($htaccess_file));
[1021] Fix | Delete
$startOutputTag = '#BEGIN_GZIP_OUTPUT_BY_THEMIFY';
[1022] Fix | Delete
$endOutputTag = '#END_GZIP_OUTPUT_BY_THEMIFY';
[1023] Fix | Delete
[1024] Fix | Delete
$startGzipTag = '#BEGIN_GZIP_COMPRESSION_BY_THEMIFY';
[1025] Fix | Delete
$endGzipTag = '#END_GZIP_COMPRESSION_BY_THEMIFY';
[1026] Fix | Delete
[1027] Fix | Delete
$startWebTag = '#BEGIN_WEBP_OUTPUT_BY_THEMIFY';
[1028] Fix | Delete
$endWebTag = '#END_WEBP_OUTPUT_BY_THEMIFY';
[1029] Fix | Delete
$hasChange = false;
[1030] Fix | Delete
[1031] Fix | Delete
if ($webp === false) {
[1032] Fix | Delete
if (strpos($rules, $startWebTag) === false) {
[1033] Fix | Delete
$rules = self::get_webp_support() . $rules;
[1034] Fix | Delete
$hasChange = true;
[1035] Fix | Delete
}
[1036] Fix | Delete
} elseif (strpos($rules, $startWebTag) !== false) {
[1037] Fix | Delete
$startsAt = strpos($rules, $startWebTag);
[1038] Fix | Delete
$endsAt = strpos($rules, $endWebTag, $startsAt);
[1039] Fix | Delete
$textToDelete = substr($rules, $startsAt, ($endsAt + strlen($endWebTag)) - $startsAt);
[1040] Fix | Delete
$rules = str_replace($textToDelete, '', $rules);
[1041] Fix | Delete
$hasChange = true;
[1042] Fix | Delete
}
[1043] Fix | Delete
[1044] Fix | Delete
if ($gzip === false) {
[1045] Fix | Delete
if (strpos($rules, $startOutputTag) === false) {
[1046] Fix | Delete
$rules = self::get_gzip_htaccess() . $rules;
[1047] Fix | Delete
$hasChange = true;
[1048] Fix | Delete
}
[1049] Fix | Delete
}
[1050] Fix | Delete
elseif (strpos($rules, $startOutputTag) !== false) {
[1051] Fix | Delete
$startsAt = strpos($rules, $startOutputTag);
[1052] Fix | Delete
$endsAt = strpos($rules, $endOutputTag, $startsAt);
[1053] Fix | Delete
$textToDelete = substr($rules, $startsAt, ($endsAt + strlen($endOutputTag)) - $startsAt);
[1054] Fix | Delete
$rules = str_replace($textToDelete, '', $rules);
[1055] Fix | Delete
$hasChange = true;
[1056] Fix | Delete
}
[1057] Fix | Delete
[1058] Fix | Delete
if($browser===false){
[1059] Fix | Delete
if (strpos($rules, 'mod_deflate.c') === false && strpos($rules, 'mod_gzip.c') === false) {
[1060] Fix | Delete
$rules .= self::get_mod_rewrite();
[1061] Fix | Delete
$hasChange = true;
[1062] Fix | Delete
}
[1063] Fix | Delete
}
[1064] Fix | Delete
elseif (strpos($rules, $startGzipTag) !== false) {
[1065] Fix | Delete
$startsAt = strpos($rules, $startGzipTag);
[1066] Fix | Delete
$endsAt = strpos($rules, $endGzipTag, $startsAt);
[1067] Fix | Delete
$textToDelete = substr($rules, $startsAt, ($endsAt + strlen($endGzipTag)) - $startsAt);
[1068] Fix | Delete
$rules = str_replace($textToDelete, '', $rules);
[1069] Fix | Delete
$hasChange = true;
[1070] Fix | Delete
}
[1071] Fix | Delete
[1072] Fix | Delete
if ($hasChange === true) {
[1073] Fix | Delete
return Themify_Filesystem::put_contents($htaccess_file, trim($rules));
[1074] Fix | Delete
}
[1075] Fix | Delete
}
[1076] Fix | Delete
}
[1077] Fix | Delete
[1078] Fix | Delete
public static function getHtaccessFile():string{
[1079] Fix | Delete
$f=get_home_path() . '.htaccess';
[1080] Fix | Delete
if(!is_file($f)){
[1081] Fix | Delete
$f=ABSPATH . '.htaccess';
[1082] Fix | Delete
}
[1083] Fix | Delete
return $f;
[1084] Fix | Delete
}
[1085] Fix | Delete
[1086] Fix | Delete
public static function addCssToFile(string $handle, string $src,?string $ver = THEMIFY_VERSION, $position = false):bool {
[1087] Fix | Delete
if (self::$concateFile === null) {
[1088] Fix | Delete
return false;
[1089] Fix | Delete
}
[1090] Fix | Delete
if (!isset(self::$css[$handle])) {
[1091] Fix | Delete
if ($position === false) {
[1092] Fix | Delete
self::$css[$handle] = array('s' => $src, 'v' => $ver);
[1093] Fix | Delete
} elseif (isset(self::$css[$position])) {
[1094] Fix | Delete
$keys = array_keys(self::$css);
[1095] Fix | Delete
$index = array_search($position, $keys) + 1;
[1096] Fix | Delete
self::$css = array_slice(self::$css, 0, $index) + array($handle => array('s' => $src, 'v' => $ver)) + array_slice(self::$css, $index);
[1097] Fix | Delete
} else {
[1098] Fix | Delete
return false;
[1099] Fix | Delete
}
[1100] Fix | Delete
}
[1101] Fix | Delete
return true;
[1102] Fix | Delete
}
[1103] Fix | Delete
[1104] Fix | Delete
public static function addPreLoadJs(string $src,string $ver = THEMIFY_VERSION, string $importance = 'low'):array {
[1105] Fix | Delete
return self::addPreLoadMedia($src, 'preload', 'script', $ver, null, $importance);
[1106] Fix | Delete
}
[1107] Fix | Delete
[1108] Fix | Delete
public static function addPrefetchJs(string $src, string $ver = THEMIFY_VERSION, string $importance = 'low'):array {
[1109] Fix | Delete
return self::addPreLoadMedia($src, 'prefetch', 'script', $ver, null, $importance);
[1110] Fix | Delete
}
[1111] Fix | Delete
[1112] Fix | Delete
public static function addPreLoadCss(string $src, string $ver = THEMIFY_VERSION, $m = 'all', string $importance = ''):array {
[1113] Fix | Delete
return self::addPreLoadMedia($src, 'preload', 'style', $ver, $m, $importance);
[1114] Fix | Delete
}
[1115] Fix | Delete
[1116] Fix | Delete
public static function addPrefetchCss(string $src,string $ver = THEMIFY_VERSION, $m = 'all', string $importance = ''):array {
[1117] Fix | Delete
return self::addPreLoadMedia($src, 'prefetch', 'style', $ver, $m, $importance);
[1118] Fix | Delete
}
[1119] Fix | Delete
[1120] Fix | Delete
public static function addPreLoadMedia(string $src, string $rel = 'preload', string $type = 'image', $ver = '', $m = 'all', string $importance = ''):array {
[1121] Fix | Delete
[1122] Fix | Delete
if(!isset(self::$done[$src]) && ($rel!=='prefetch' || !isset(self::$preLoadMedia[$src]))){
[1123] Fix | Delete
self::$preLoadMedia[$src] = array('t' => $type, 'r' => $rel);
[1124] Fix | Delete
if ($type !== 'image' && $type !== 'font') {
[1125] Fix | Delete
if ($type === 'style') {
[1126] Fix | Delete
self::$preLoadMedia[$src]['m'] = $m;
[1127] Fix | Delete
}
[1128] Fix | Delete
if ($ver !== '') {
[1129] Fix | Delete
self::$preLoadMedia[$src]['v'] = $ver;
[1130] Fix | Delete
}
[1131] Fix | Delete
}
[1132] Fix | Delete
elseif($type==='image' && $ver!=='' && $ver!==null && $m!=='' && $m!==null && $m!=='all'){//ver is srcset, m sizes for image
[1133] Fix | Delete
self::$preLoadMedia[$src]['srcset'] = $ver;
[1134] Fix | Delete
self::$preLoadMedia[$src]['sizes'] = $m;
[1135] Fix | Delete
}
[1136] Fix | Delete
if ($importance !== '') {
[1137] Fix | Delete
self::$preLoadMedia[$src]['i'] = $importance;
[1138] Fix | Delete
}
[1139] Fix | Delete
}
[1140] Fix | Delete
return array('s'=>$src,'v'=>isset(self::$preLoadMedia[$src]['v'])?self::$preLoadMedia[$src]['v']:null);
[1141] Fix | Delete
}
[1142] Fix | Delete
[1143] Fix | Delete
public static function add_js($handle, $src, $deps, $ver, $in_footer = true) {
[1144] Fix | Delete
wp_enqueue_script($handle, $src, $deps, $ver, $in_footer);
[1145] Fix | Delete
}
[1146] Fix | Delete
[1147] Fix | Delete
public static function getKnownJs():array {
[1148] Fix | Delete
static $arr = null;
[1149] Fix | Delete
if ($arr === null) {
[1150] Fix | Delete
$arr = array();
[1151] Fix | Delete
if (!is_admin()) {
[1152] Fix | Delete
$isDefered=themify_check('setting-jquery', true)?true:(themify_check('setting-optimize-wc', true)?false:!themify_check('setting-defer-wc', true));
[1153] Fix | Delete
if ($isDefered===true && themify_is_woocommerce_active()) {
[1154] Fix | Delete
$arr = array('flexslider', 'wc-single-product', 'woocommerce', 'zoom', 'js-cookie', 'jquery-blockui', 'jquery-cookie', 'jquery-payment', 'prettyPhoto', 'prettyPhoto-init', 'select2', 'selectWoo', 'wc-address-i18n', 'wc-add-payment-method', 'wc-cart', 'wc-cart-fragments', 'wc-checkout', 'wc-country-select', 'wc-credit-card-form', 'wc-add-to-cart', 'wc-add-to-cart-variation', 'wc-geolocation', 'wc-lost-password', 'wc-password-strength-meter', 'photoswipe', 'photoswipe-ui-default', 'wc-add-to-cart-composite');
[1155] Fix | Delete
//Authorize.Net Gateway for WooCommerce
[1156] Fix | Delete
if (function_exists('wc_authorize_net_cim')) {
[1157] Fix | Delete
$arr[] = 'wc-authorize-net-cim';
[1158] Fix | Delete
$arr[] = 'wc-authorize-net-apple-pay';
[1159] Fix | Delete
$arr[] = 'wc-authorize-net-my-payment-methods';
[1160] Fix | Delete
$arr[] = 'sv-wc-payment-gateway-payment-form-v5_8_1';
[1161] Fix | Delete
$arr[] = 'sv-wc-payment-gateway-my-payment-methods-v5_8_1';
[1162] Fix | Delete
$arr[] = 'sv-wc-jilt-prompt-customers';
[1163] Fix | Delete
$arr[] = 'sv-wc-apple-pay-v5_8_1';
[1164] Fix | Delete
}
[1165] Fix | Delete
if (defined('WOOCOMMERCE_GATEWAY_EWAY_VERSION')) {//plugin eWAY WooCommerce gateway
[1166] Fix | Delete
$arr[] = 'eway-credit-card-form';
[1167] Fix | Delete
}
[1168] Fix | Delete
}
[1169] Fix | Delete
if (defined('WPCF7_PLUGIN')) {
[1170] Fix | Delete
$arr[] = 'contact-form-7';
[1171] Fix | Delete
}
[1172] Fix | Delete
if (defined('SBI_PLUGIN_DIR')) {//plugin instagram feed
[1173] Fix | Delete
$arr[] = 'sb_instagram_scripts';
[1174] Fix | Delete
}
[1175] Fix | Delete
if (defined('LP_PLUGIN_FILE')) {//plugin learnpress
[1176] Fix | Delete
$arr[] = 'lp-global';
[1177] Fix | Delete
$arr[] = 'global';
[1178] Fix | Delete
$arr[] = 'learnpress';
[1179] Fix | Delete
$arr[] = 'lp-plugins-all';
[1180] Fix | Delete
$arr[] = 'learn-press-enroll';
[1181] Fix | Delete
$arr[] = 'quiz';
[1182] Fix | Delete
$arr[] = 'wp-utils';
[1183] Fix | Delete
$arr[] = 'course';
[1184] Fix | Delete
$arr[] = 'checkout';
[1185] Fix | Delete
$arr[] = 'profile-user';
[1186] Fix | Delete
$arr[] = 'become-a-teacher';
[1187] Fix | Delete
$arr[] = 'jquery-caret';
[1188] Fix | Delete
}
[1189] Fix | Delete
}
[1190] Fix | Delete
}
[1191] Fix | Delete
return $arr;
[1192] Fix | Delete
}
[1193] Fix | Delete
[1194] Fix | Delete
public static function removeWebp($dir = null) {
[1195] Fix | Delete
if ($dir === null) {
[1196] Fix | Delete
$dir = themify_upload_dir('basedir');
[1197] Fix | Delete
if (!Themify_Filesystem::is_dir($dir) || !Themify_Filesystem::is_readable($dir)) {
[1198] Fix | Delete
return array('error' => sprintf(__('The directory %s doesn`t exist or not readable', 'themify'), $dir));
[1199] Fix | Delete
}
[1200] Fix | Delete
}
[1201] Fix | Delete
$arr = array('.png', '.jpg', '.jpeg','.gif');
[1202] Fix | Delete
$files = scandir($dir,SCANDIR_SORT_NONE);
[1203] Fix | Delete
foreach ($files as $value) {
[1204] Fix | Delete
$path = realpath($dir . DIRECTORY_SEPARATOR . $value);
[1205] Fix | Delete
if (!Themify_Filesystem::is_dir($path)) {
[1206] Fix | Delete
if (pathinfo($path, PATHINFO_EXTENSION) === 'webp') {
[1207] Fix | Delete
foreach ($arr as $v) {
[1208] Fix | Delete
if (Themify_Filesystem::is_file(str_replace('.webp', $v, $path))) {
[1209] Fix | Delete
Themify_Filesystem::delete($path,'f');
[1210] Fix | Delete
break;
[1211] Fix | Delete
}
[1212] Fix | Delete
}
[1213] Fix | Delete
}
[1214] Fix | Delete
} elseif ($value !== '.' && $value !== '..') {
[1215] Fix | Delete
self::removeWebp($path);
[1216] Fix | Delete
}
[1217] Fix | Delete
}
[1218] Fix | Delete
}
[1219] Fix | Delete
/**
[1220] Fix | Delete
* Load assets required by Themify framework
[1221] Fix | Delete
*
[1222] Fix | Delete
* @since 1.1.2
[1223] Fix | Delete
*/
[1224] Fix | Delete
public static function loadMainScript() {
[1225] Fix | Delete
//Enqueue main js that will load others needed js
[1226] Fix | Delete
global $wp_scripts, $wp_version;
[1227] Fix | Delete
if (!isset($wp_scripts->registered['themify-main-script']) && empty($_GET['legacy-widget-preview'])) { /* disable in Block widget preview */
[1228] Fix | Delete
wp_enqueue_script('themify-main-script', THEMIFY_URI . '/js/main.js', array('jquery'), THEMIFY_VERSION, true);
[1229] Fix | Delete
$args = array(
[1230] Fix | Delete
'breakpoints' => themify_get_breakpoints(),
[1231] Fix | Delete
'wp' => $wp_version,
[1232] Fix | Delete
'ajax_url' => admin_url('admin-ajax.php'),
[1233] Fix | Delete
'map_key' => wp_strip_all_tags( themify_builder_get('setting-google_map_key', 'builder_settings_google_map_key') ?: '' ),
[1234] Fix | Delete
'bing_map_key' =>wp_strip_all_tags( themify_builder_get('setting-bing_map_key', 'builder_settings_bing_map_key') ?: '' ),
[1235] Fix | Delete
'menu_tooltips' => [],
[1236] Fix | Delete
'plugin_url'=>rtrim(plugins_url(),'/'),
[1237] Fix | Delete
'content_url'=>content_url(),
[1238] Fix | Delete
'includes_url' => trailingslashit( includes_url() )
[1239] Fix | Delete
);
[1240] Fix | Delete
[1241] Fix | Delete
if (!themify_is_lazyloading()) {
[1242] Fix | Delete
$args['lz'] = 1;
[1243] Fix | Delete
}
[1244] Fix | Delete
if (self::$themeVersion !== null) {
[1245] Fix | Delete
$themeSrc = THEME_URI . '/js/themify-script.js';
[1246] Fix | Delete
$args['theme_v'] = self::$themeVersion;
[1247] Fix | Delete
if (!is_admin()) {
[1248] Fix | Delete
self::addPrefetchJs($themeSrc, self::$themeVersion);
[1249] Fix | Delete
}
[1250] Fix | Delete
}
[1251] Fix | Delete
if(is_admin()){
[1252] Fix | Delete
$args['is_admin'] = 1;
[1253] Fix | Delete
}
[1254] Fix | Delete
else{
[1255] Fix | Delete
$args['emailSub']=__('Check this out!', 'themify');
[1256] Fix | Delete
$args['nop']=__('Check this out!', 'themify');
[1257] Fix | Delete
$args['lightbox']=themify_lightbox_vars_init();
[1258] Fix | Delete
if (is_user_logged_in()) {
[1259] Fix | Delete
$args['pg_opt_updt'] = __('Update', 'themify');
[1260] Fix | Delete
if (current_user_can('edit_posts')) {
[1261] Fix | Delete
$args['lgi'] = __('Your uploaded image is too large (%w x %hpx). Please resize it below 1600px and re-upload it.', 'themify');
[1262] Fix | Delete
}
[1263] Fix | Delete
$post_type = get_post_type_object(get_post_type());
[1264] Fix | Delete
$t = $post_type ? $post_type->labels->singular_name : __('Page', 'themify');
[1265] Fix | Delete
$args['pg_opt_t'] = sprintf('%s %s', $t, __('Options', 'themify'));
[1266] Fix | Delete
}
[1267] Fix | Delete
[1268] Fix | Delete
if (!empty($wp_scripts->registered['wp-embed'])) {
[1269] Fix | Delete
$wp_scripts->done[] = 'wp-embed';
[1270] Fix | Delete
}
[1271] Fix | Delete
if (self::$themeVersion !== null) {
[1272] Fix | Delete
global $wp_styles, $wp_filter;
[1273] Fix | Delete
if (isset($wp_filter['wp_head'], $wp_filter['wp_head']->callbacks[7], $wp_filter['wp_head']->callbacks[7]['print_emoji_detection_script'])) {
[1274] Fix | Delete
add_filter('wp_resource_hints', array(__CLASS__, 'remove_emoji_prefetch'), 100, 2);
[1275] Fix | Delete
if (themify_check('setting-emoji', true)) {
[1276] Fix | Delete
$src = apply_filters('script_loader_src', includes_url('js/wp-emoji-release.min.js'), 'concatemoji');
[1277] Fix | Delete
if (!empty($src)) {
[1278] Fix | Delete
ob_start();
[1279] Fix | Delete
print_emoji_detection_script();
[1280] Fix | Delete
self::$localiztion['wp_emoji'] = trim(str_replace(array('<script type="text/javascript">', '<script>', '</script>'), array('', ''), ob_get_clean()));
[1281] Fix | Delete
}
[1282] Fix | Delete
}
[1283] Fix | Delete
else {
[1284] Fix | Delete
remove_action('wp_print_styles', 'print_emoji_styles');
[1285] Fix | Delete
}
[1286] Fix | Delete
remove_action('wp_head', 'print_emoji_detection_script', 7);
[1287] Fix | Delete
remove_filter('embed_head', 'print_emoji_detection_script');
[1288] Fix | Delete
}
[1289] Fix | Delete
[1290] Fix | Delete
self::$localiztion['menu_point'] = self::$mobileMenuActive;
[1291] Fix | Delete
if (is_singular() && comments_open() && get_option('thread_comments') == 1) {
[1292] Fix | Delete
self::$localiztion['commentUrl'] = home_url($wp_scripts->registered['comment-reply']->src);
[1293] Fix | Delete
$wp_scripts->done[] = 'comment-reply';
[1294] Fix | Delete
}
[1295] Fix | Delete
$wp_scripts->done[] = 'wp-playlist';
[1296] Fix | Delete
if (apply_filters('wp_video_shortcode_library', 'mediaelement') === 'tf_lazy') {
[1297] Fix | Delete
if (!empty($wp_scripts->registered['mediaelement-core'])) {
[1298] Fix | Delete
$wp_scripts->done[] = 'mediaelement-core';
[1299] Fix | Delete
$wp_scripts->done[] = 'mediaelement-migrate';
[1300] Fix | Delete
$wp_scripts->done[] = 'wp-mediaelement';
[1301] Fix | Delete
}
[1302] Fix | Delete
if (!empty($wp_styles->registered['wp-mediaelement'])) {
[1303] Fix | Delete
$wp_styles->done[] = 'wp-mediaelement';
[1304] Fix | Delete
$wp_styles->done[] = 'mediaelement';
[1305] Fix | Delete
}
[1306] Fix | Delete
}
[1307] Fix | Delete
}
[1308] Fix | Delete
}
[1309] Fix | Delete
self::$localiztion += $args;
[1310] Fix | Delete
unset($args);
[1311] Fix | Delete
if (!self::$localiztion['bing_map_key']) {
[1312] Fix | Delete
unset(self::$localiztion['bing_map_key']);
[1313] Fix | Delete
}
[1314] Fix | Delete
if (!self::$localiztion['map_key']) {
[1315] Fix | Delete
unset(self::$localiztion['map_key']);
[1316] Fix | Delete
}
[1317] Fix | Delete
}
[1318] Fix | Delete
}
[1319] Fix | Delete
[1320] Fix | Delete
public static function remove_emoji_prefetch(array $urls, string $relation_type):array {
[1321] Fix | Delete
if ($relation_type === 'dns-prefetch') {
[1322] Fix | Delete
remove_filter('wp_resource_hints', array(__CLASS__, 'remove_emoji_prefetch'), 100);
[1323] Fix | Delete
foreach ($urls as $k => $v) {
[1324] Fix | Delete
if (strpos('core/emoji/', $v) !== false) {
[1325] Fix | Delete
unset($urls[$k]);
[1326] Fix | Delete
break;
[1327] Fix | Delete
}
[1328] Fix | Delete
}
[1329] Fix | Delete
}
[1330] Fix | Delete
return $urls;
[1331] Fix | Delete
}
[1332] Fix | Delete
[1333] Fix | Delete
public static function addLocalization($key, $val, $type = false, $object_val = true) {
[1334] Fix | Delete
if (self::$localiztion !== null) {
[1335] Fix | Delete
if (!isset(self::$localiztion[$key])) {
[1336] Fix | Delete
if ($type === false) {
[1337] Fix | Delete
self::$localiztion[$key] = $val;
[1338] Fix | Delete
} else {
[1339] Fix | Delete
self::$localiztion[$key] = array();
[1340] Fix | Delete
if ($type === 'arr') {
[1341] Fix | Delete
self::$localiztion[$key][] = $val;
[1342] Fix | Delete
} else {
[1343] Fix | Delete
self::$localiztion[$key][$val] = $object_val;
[1344] Fix | Delete
}
[1345] Fix | Delete
}
[1346] Fix | Delete
} else {
[1347] Fix | Delete
if ($type === false) {
[1348] Fix | Delete
self::$localiztion[$key] = $val;
[1349] Fix | Delete
} elseif ($type === 'arr') {
[1350] Fix | Delete
self::$localiztion[$key][] = $val;
[1351] Fix | Delete
} else {
[1352] Fix | Delete
self::$localiztion[$key][$val] = $object_val;
[1353] Fix | Delete
}
[1354] Fix | Delete
}
[1355] Fix | Delete
}
[1356] Fix | Delete
}
[1357] Fix | Delete
[1358] Fix | Delete
public static function getLocalization():array {
[1359] Fix | Delete
return self::$localiztion;
[1360] Fix | Delete
}
[1361] Fix | Delete
[1362] Fix | Delete
public static function loadGalleryCss() {
[1363] Fix | Delete
self::add_css('tf_wp_gallery', self::THEMIFY_CSS_MODULES_URI . 'gallery.min.css', null, THEMIFY_VERSION);
[1364] Fix | Delete
}
[1365] Fix | Delete
[1366] Fix | Delete
public static function preFetchMasonry() {
[1367] Fix | Delete
self::addPrefetchJs(THEMIFY_URI . '/js/modules/isotop.js');
[1368] Fix | Delete
}
[1369] Fix | Delete
[1370] Fix | Delete
public static function loadFluidMasonryCss($in_footer = false) {
[1371] Fix | Delete
if (!isset(self::$css['tf_fluid_masonry'])) {
[1372] Fix | Delete
self::preFetchMasonry();
[1373] Fix | Delete
self::add_css('tf_fluid_masonry', self::THEMIFY_CSS_MODULES_URI . 'fluid-masonry.css', null, THEMIFY_VERSION, null, $in_footer);
[1374] Fix | Delete
self::addLocalization('done', 'tf_fluid_masonry', true);
[1375] Fix | Delete
}
[1376] Fix | Delete
}
[1377] Fix | Delete
[1378] Fix | Delete
public static function loadAutoTilesCss() {
[1379] Fix | Delete
self::loadGridCss('auto_tiles');
[1380] Fix | Delete
}
[1381] Fix | Delete
[1382] Fix | Delete
public static function loadinfiniteCss() {
[1383] Fix | Delete
if (!isset(self::$css['tf_infinite'])) {
[1384] Fix | Delete
self::add_css('tf_infinite', self::THEMIFY_CSS_MODULES_URI . 'infinite.css', null, THEMIFY_VERSION, null, true);
[1385] Fix | Delete
self::addLocalization('done', 'tf_infinite', true);
[1386] Fix | Delete
}
[1387] Fix | Delete
}
[1388] Fix | Delete
[1389] Fix | Delete
public static function loadThemeStyleModule(string $file, $media = '',bool $in_footer = false) {
[1390] Fix | Delete
self::add_css('tf_theme_' . str_replace('/', '_', $file), self::$THEME_CSS_MODULES_URI . $file . '.css', null, self::$themeVersion, $media, $in_footer);
[1391] Fix | Delete
}
[1392] Fix | Delete
[1393] Fix | Delete
public static function loadThemeWCStyleModule(string $file, $media = '',bool $in_footer = false) {
[1394] Fix | Delete
self::add_css('tf_theme_wc_' . str_replace('/', '_', $file), self::$THEME_WC_CSS_MODULES_URI . $file . '.css', null, self::$themeVersion, $media, $in_footer);
[1395] Fix | Delete
}
[1396] Fix | Delete
[1397] Fix | Delete
public static function loadGridCss(string $grid, bool $in_footer = false) {
[1398] Fix | Delete
if (!isset(self::$css['tf_grid_' . $grid]) && in_array($grid, array('list-post', 'grid2-thumb', 'grid2', 'grid3', 'grid4', 'grid5', 'grid6', 'list-large-image', 'list-thumb-image', 'auto_tiles'), true)) {
[1399] Fix | Delete
if ($grid === 'auto_tiles') {
[1400] Fix | Delete
self::addPrefetchJs(THEMIFY_URI . '/js/modules/auto-tiles.js');
[1401] Fix | Delete
}
[1402] Fix | Delete
self::add_css('tf_grid_' . $grid, THEMIFY_URI . '/css/grids/' . $grid . '.css', null, THEMIFY_VERSION, null, $in_footer);
[1403] Fix | Delete
if (isset(self::$theme_css_support[$grid]) && self::$THEME_CSS_MODULES_DIR !== null) {
[1404] Fix | Delete
self::add_css('tf_grid_theme_' . $grid, self::$THEME_CSS_MODULES_URI . 'grids/' . $grid . '.css', null, self::$themeVersion, null, $in_footer);
[1405] Fix | Delete
self::addLocalization('done', 'tf_grid_theme_' . $grid, true);
[1406] Fix | Delete
}
[1407] Fix | Delete
self::addLocalization('done', 'tf_grid_' . $grid, true);
[1408] Fix | Delete
}
[1409] Fix | Delete
}
[1410] Fix | Delete
[1411] Fix | Delete
public static function loadGoogleFonts() {
[1412] Fix | Delete
if (!defined('THEMIFY_GOOGLE_FONTS') || THEMIFY_GOOGLE_FONTS == true) {
[1413] Fix | Delete
$fonts = apply_filters('themify_google_fonts', self::$googleFonts);
[1414] Fix | Delete
$res = array();
[1415] Fix | Delete
foreach ($fonts as $font) {
[1416] Fix | Delete
if (!empty($font) && preg_match('/^\w/', $font)) {
[1417] Fix | Delete
/* fix the delimiter with multiple weight variants, it should use `,` and not `:`
[1418] Fix | Delete
reset the delimiter between font name and first variant */
[1419] Fix | Delete
$font = preg_replace('/,/', ':', str_replace(':', ',', $font), 1);
[1420] Fix | Delete
$key = explode(':', $font)[0];
[1421] Fix | Delete
if (!isset($res[$key])) {
[1422] Fix | Delete
$res[$key] = array();
[1423] Fix | Delete
}
[1424] Fix | Delete
if (strpos($font, ',') !== false || strpos($font, ':') !== false) {
[1425] Fix | Delete
$font = str_replace(array($key . ':', $key), array('', ''), explode(',', $font));
[1426] Fix | Delete
foreach ($font as $f) {
[1427] Fix | Delete
$res[$key][] = $f;
[1428] Fix | Delete
/* when loading either italic or non-italic variant, make sure other variant is loaded too */
[1429] Fix | Delete
$res[$key][] = strpos( $f, 'i' ) !== false ? (int) $f : $f . 'i';
[1430] Fix | Delete
}
[1431] Fix | Delete
} else {
[1432] Fix | Delete
$res[$key][] = '400';
[1433] Fix | Delete
$res[$key][] = '400i';
[1434] Fix | Delete
}
[1435] Fix | Delete
}
[1436] Fix | Delete
}
[1437] Fix | Delete
if (!empty($res)) {
[1438] Fix | Delete
$fonts = array();
[1439] Fix | Delete
foreach ($res as $k => $v) {
[1440] Fix | Delete
$fonts[] = $k . ':' . implode(',', array_keys( array_flip($v)));
[1441] Fix | Delete
}
[1442] Fix | Delete
$fonts = implode('%7C', $fonts);
[1443] Fix | Delete
$path = '://fonts.googleapis.com/css?family=' . $fonts . '&display=swap';
[1444] Fix | Delete
$_key=Themify_Storage::getHash($fonts);
[1445] Fix | Delete
$css =Themify_Storage::get($_key,'tf_fg_css_');
[1446] Fix | Delete
$isNew=false;
[1447] Fix | Delete
unset($fonts,$res);
[1448] Fix | Delete
if(!$css){
[1449] Fix | Delete
$resp = wp_remote_get('https' . $path, array(
[1450] Fix | Delete
'sslverify' => false,
[1451] Fix | Delete
'httpversion' => '2',
[1452] Fix | Delete
'timeout'=>10,
[1453] Fix | Delete
'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
[1454] Fix | Delete
));
[1455] Fix | Delete
$css = wp_remote_retrieve_body($resp);
[1456] Fix | Delete
/* validate response's content type */
[1457] Fix | Delete
$content_type = wp_remote_retrieve_header( $resp, 'content-type' );
[1458] Fix | Delete
if ( is_wp_error( $css ) || strpos( $content_type, 'text/css' ) === false ) {
[1459] Fix | Delete
$css='';
[1460] Fix | Delete
}
[1461] Fix | Delete
$isNew=true;
[1462] Fix | Delete
unset($resp);
[1463] Fix | Delete
}
[1464] Fix | Delete
if ($css && strpos($css,'fonts.gstatic')!==false) {
[1465] Fix | Delete
$donwload=themify_builder_check('setting-gf','setting-gf');
[1466] Fix | Delete
if($donwload){
[1467] Fix | Delete
$gfFonts=array();
[1468] Fix | Delete
$split=explode('@font-face',$css);
[1469] Fix | Delete
$css='';
[1470] Fix | Delete
$maximum=10;
[1471] Fix | Delete
$i=0;
[1472] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/image.php';
[1473] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/file.php';
[1474] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/media.php';
[1475] Fix | Delete
add_filter('wp_handle_sideload_overrides',array(__CLASS__,'sideload_overrides_google_fonts'),9999,1);
[1476] Fix | Delete
foreach($split as $v){
[1477] Fix | Delete
$v=trim($v);
[1478] Fix | Delete
if($v!=='' && $v[0]==='{'){
[1479] Fix | Delete
$v=explode(';', str_replace(array('{','}'),'',$v));
[1480] Fix | Delete
$arr=array();
[1481] Fix | Delete
foreach($v as $styles){
[1482] Fix | Delete
$styles=trim($styles);
[1483] Fix | Delete
if($styles!==''){
[1484] Fix | Delete
$props=explode(':',str_replace('https:','',$styles));
[1485] Fix | Delete
if(isset($props[0],$props[1])){
[1486] Fix | Delete
$prop=trim($props[0]);
[1487] Fix | Delete
$value=trim($props[1]);
[1488] Fix | Delete
if($prop==='src'){
[1489] Fix | Delete
$value=explode(' ',$value)[0];
[1490] Fix | Delete
$value=trim(str_replace(array('url',')','('),'',trim($value)));
[1491] Fix | Delete
}
[1492] Fix | Delete
elseif($prop==='unicode-range'){
[1493] Fix | Delete
$value=str_replace(' ', '', $value);
[1494] Fix | Delete
}
[1495] Fix | Delete
$arr[$prop]=$value;
[1496] Fix | Delete
}
[1497] Fix | Delete
elseif(isset($props[0])){
[1498] Fix | Delete
$arr['subset']=trim($props[0]);
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function