$theme_localization_type = @intval($_POST['icl_theme_localization_type']); icl_set_setting('theme_localization_type', $theme_localization_type, true); $theme_localization_load_td = @intval($_POST['icl_theme_localization_load_td']); icl_set_setting('theme_localization_load_textdomain', $theme_localization_load_td, true); $filtered_textdomain_value = filter_input(INPUT_POST, 'textdomain_value'); icl_set_setting('gettext_theme_domain_name', $filtered_textdomain_value, true); if ($theme_localization_type == 1) { icl_st_scan_theme_files(); } elseif ($theme_localization_type == 2) { $parent_theme = get_template_directory(); $child_theme = get_stylesheet_directory(); $languages_folders = array(); if ($found_folder = icl_tf_determine_mo_folder($parent_theme)) { $languages_folders['parent'] = $found_folder; } if ($parent_theme != $child_theme && ($found_folder = icl_tf_determine_mo_folder($child_theme))) { $languages_folders['child'] = $found_folder; } icl_set_setting('theme_language_folders', $languages_folders, true); } echo '1|' . $theme_localization_type; break; case 'icl_ct_user_pref': $users = $wpdb->get_col("SELECT id FROM {$wpdb->users}"); foreach ($users as $uid) { if (isset($_POST['icl_enable_comments_translation'][$uid])) { update_user_meta($uid, 'icl_enable_comments_translation', 1); } else { delete_user_meta($uid, 'icl_enable_comments_translation'); } if (isset($_POST['icl_enable_replies_translation'][$uid])) {
function icl_tf_determine_mo_folder($folder, $rec = 0) { global $sitepress; $dh = @opendir($folder); $lfn = $sitepress->get_locale_file_names(); while ($file = readdir($dh)) { if (0 === strpos($file, '.')) { continue; } if (is_file($folder . '/' . $file) && preg_match('#\\.mo$#i', $file) && in_array(preg_replace('#\\.mo$#i', '', $file), $lfn)) { return $folder; } elseif (is_dir($folder . '/' . $file) && $rec < 5) { if ($f = icl_tf_determine_mo_folder($folder . '/' . $file, $rec + 1)) { return $f; } } } return false; }