예제 #1
0
     $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])) {
예제 #2
0
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;
}