Exemplo n.º 1
0
 function flag_layout_sort($flag_sorts = array())
 {
     global $easy_translation_manager_plugin;
     if (!empty($easy_translation_manager_plugin->etm_tools_retrive['flag_sort'])) {
         $flag_sorts = $easy_translation_manager_plugin->etm_tools_retrive['flag_sort'];
     }
     if (!empty($flag_sorts)) {
         $flag_sorts = etm_tools_retrive_languages_data($flag_sorts, false, false);
     } else {
         $active_langs = etm_tools_retrive_aktiv_languages('', true);
         $active_langs = array_keys($active_langs);
         $flag_sorts = etm_tools_retrive_languages_data($active_langs, false, true);
     }
     return $flag_sorts;
 }
 function chek_current_page()
 {
     require_once EASY_TRANSLATION_MANAGER_PATH . 'inc/fn.php_mo.php';
     global $wpdb, $userdata;
     $Error = '';
     if (!empty($_POST['status']) and $_POST['status'] == 'import') {
         $tmp_textdomain = '';
         $tmp_lang = '';
         if (!empty($_FILES["file"])) {
             $_FILES["file"]["name"] = substr($_FILES["file"]["name"], 0, -3);
             $pieces = explode("-", $_FILES["file"]["name"]);
             if (count($pieces) > 0) {
                 $tmp_textdomain = $pieces[0];
                 $tmp_lang = $pieces[count($pieces) - 1];
                 if (count($pieces) > 2) {
                     $tmp_textdomain = '';
                     for ($i = 0; $i < count($pieces) - 1; $i++) {
                         if (!empty($tmp_textdomain)) {
                             $tmp_textdomain .= '-';
                         }
                         $tmp_textdomain .= $pieces[$i];
                     }
                 }
             }
         }
         if (empty($_POST['plugintheme'])) {
             $Error = "Error: Please select a Theme and Plugin";
         } else {
             if (empty($tmp_lang) or strlen($tmp_lang) != 2 and strlen($tmp_lang) != 5) {
                 $Error = "Error: No languash is found";
             } else {
                 if (empty($tmp_textdomain)) {
                     $Error = "Error: No textdomain is found";
                 } else {
                     if ($_FILES["file"]["error"] > 0) {
                         $Error = "Error: " . $_FILES["file"]["error"];
                     } else {
                         if ($_FILES["file"]["type"] != 'application/octet-stream') {
                             $Error = "Error: wrong format (.po)";
                         } else {
                             $pies = explode("|||", $_POST['plugintheme']);
                             $etm_folder = $pies[0];
                             $etm_tag = $pies[1];
                             if (empty($_POST['overwrite'])) {
                                 $_POST['overwrite'] = 'off';
                             }
                             if (strlen($tmp_lang) > 2) {
                                 $lang_total = etm_languages_flags();
                                 if (!empty($lang_total)) {
                                     foreach ($lang_total as $key => $lang_t) {
                                         if ($lang_t['default_locale'] == $tmp_lang) {
                                             $tmp_lang = $key;
                                             break;
                                         }
                                     }
                                 }
                             }
                             $has_input_data_checkup = false;
                             //preg_match_all('/msgid (\")(.*?)(\")\s*msgstr (\")(.*?)(\")/', $str, $matches, PREG_SET_ORDER);
                             $matches = phpmo_parse_po_file($_FILES["file"]["tmp_name"]);
                             if (!empty($matches)) {
                                 echo '<table cellpadding="5"><tr><td>';
                                 echo '<h3  style="margin-bottom: 0px;">' . __('Importede strings', 'evt') . '</h3>';
                                 echo '</td><td></td></tr>';
                                 echo '</table>';
                                 echo '<div style="overflow: auto; height: 400px; width: 800px; border: 1px solid lightgray;"><table cellpadding="5"><tr><td>';
                                 echo '<tr><td>';
                                 echo 'Status';
                                 echo '</td><td>';
                                 echo 'Translate string';
                                 echo '</td></tr>';
                                 foreach ($matches as $matche) {
                                     if (!empty($matche['msgid'])) {
                                         $sql_tmp = $wpdb->get_var("SELECT id FROM {$wpdb->prefix}etm_plugin_index WHERE default_string=\"" . $matche['msgid'] . "\" and default_string2=\"" . $matche['msgid_plural'] . "\" and default_placeholder=\"" . $matche['msgctxt'] . "\" and mo_tag=\"" . $tmp_textdomain . "\" and category_type =\"" . $etm_tag . "\" and folder_name=\"" . $etm_folder . "\" LIMIT 1");
                                         $string_id = 0;
                                         if (!empty($sql_tmp)) {
                                             $string_id = $sql_tmp;
                                             if (!empty($matche['msgstr'][0]) and !empty($tmp_lang) and !empty($string_id)) {
                                                 $sql_tmp3 = $wpdb->get_var("SELECT id FROM {$wpdb->prefix}etm_plugin_string WHERE lang_code = \"" . $tmp_lang . "\" and lang_index_id =\"" . $string_id . "\"");
                                                 if (empty($sql_tmp3)) {
                                                     $has_input_data_checkup = true;
                                                     $sqlinsert = "INSERT INTO {$wpdb->prefix}etm_plugin_string (lang_code,lang_index_id,translatede_string,translatede_string2,create_user,create_ip) \n\t\t\t\t\t\t\t\t        \t  VALUES (\"" . $tmp_lang . "\",\"" . $string_id . "\",\"" . $matche['msgstr'][0] . "\",\"" . $matche['msgstr'][1] . "\"," . $userdata->ID . ",\"" . $_SERVER['REMOTE_ADDR'] . "\")";
                                                     $wpdb->query($sqlinsert);
                                                     echo '<tr style="font-size:10px;"><td>';
                                                     echo 'Insert';
                                                     echo '</td><td>';
                                                     if (!empty($matche['msgctxt'])) {
                                                         echo 'placeholder (' . $matche['msgctxt'] . ')<br>';
                                                     }
                                                     echo $matche['msgid'] . ' -- ' . $matche['msgstr'][0];
                                                     if (!empty($matche['msgstr'][1])) {
                                                         echo '<br>';
                                                         echo $matche['msgid_plural'] . ' -- ' . $matche['msgstr'][1];
                                                     }
                                                     echo '</td></tr>';
                                                 } else {
                                                     if ($_POST['overwrite'] == 'on') {
                                                         $has_input_data_checkup = true;
                                                         $sqlupdate = "UPDATE {$wpdb->prefix}etm_plugin_string SET translatede_string=\"" . $matche['msgstr'][0] . "\",translatede_string2=\"" . $matche['msgstr'][1] . "\" WHERE lang_code = \"" . $tmp_lang . "\" and lang_index_id =\"" . $string_id . "\"";
                                                         $wpdb->query($sqlupdate);
                                                         echo '<tr  style="font-size:10px;"><td>';
                                                         echo 'Update';
                                                         echo '</td><td>';
                                                         if (!empty($matche['msgctxt'])) {
                                                             echo 'placeholder (' . $matche['msgctxt'] . ')<br>';
                                                         }
                                                         echo $matche['msgid'] . ' -- ' . $matche['msgstr'][0];
                                                         if (!empty($matche['msgstr'][1])) {
                                                             echo '<br>';
                                                             echo $matche['msgid_plural'] . ' -- ' . $matche['msgstr'][1];
                                                         }
                                                         echo '</td></tr>';
                                                     }
                                                 }
                                             }
                                         } else {
                                             $sql_tmp2 = "INSERT INTO {$wpdb->prefix}etm_plugin_index (default_string,default_string2,default_placeholder,folder_name,mo_tag,category_type,file,manual_added,create_user,create_ip) \n                \t  VALUES (\"" . $matche['msgid'] . "\",\"" . $matche['msgid_plural'] . "\",\"" . $matche['msgctxt'] . "\",\"" . $etm_folder . "\",\"" . $tmp_textdomain . "\",\"" . $etm_tag . "\",' ','0'," . $userdata->ID . ",\"" . $_SERVER['REMOTE_ADDR'] . "\")";
                                             $wpdb->query($sql_tmp2);
                                             $string_id = $wpdb->insert_id;
                                             if (!empty($matche['msgstr'][0]) and !empty($tmp_lang) and !empty($string_id)) {
                                                 $sql_tmp3 = $wpdb->get_var("SELECT id FROM {$wpdb->prefix}etm_plugin_string WHERE lang_code = \"" . $tmp_lang . "\" and lang_index_id =\"" . $string_id . "\"");
                                                 if (empty($sql_tmp3)) {
                                                     $has_input_data_checkup = true;
                                                     $sqlinsert = "INSERT INTO {$wpdb->prefix}etm_plugin_string (lang_code,lang_index_id,translatede_string,translatede_string2,create_user,create_ip) \n\t\t\t\t\t\t\t\t        \t  VALUES (\"" . $tmp_lang . "\",\"" . $string_id . "\",\"" . $matche['msgstr'][0] . "\",\"" . $matche['msgstr'][1] . "\"," . $userdata->ID . ",\"" . $_SERVER['REMOTE_ADDR'] . "\")";
                                                     $wpdb->query($sqlinsert);
                                                     echo '<tr  style="font-size:10px;"><td>';
                                                     echo 'Insert';
                                                     echo '</td><td>';
                                                     if (!empty($matche['msgctxt'])) {
                                                         echo 'placeholder (' . $matche['msgctxt'] . ')<br>';
                                                     }
                                                     echo $matche['msgid'] . ' -- ' . $matche['msgstr'][0];
                                                     if (!empty($matche['msgstr'][1])) {
                                                         echo '<br>';
                                                         echo $matche['msgid_plural'] . ' -- ' . $matche['msgstr'][1];
                                                     }
                                                     echo '</td></tr>';
                                                 } else {
                                                     if ($_POST['overwrite'] == 'on') {
                                                         $has_input_data_checkup = true;
                                                         $sqlupdate = "UPDATE {$wpdb->prefix}etm_plugin_string SET translatede_string=\"" . $matche['msgstr'][0] . "\",translatede_string2=\"" . $matche['msgstr'][1] . "\" WHERE lang_code = \"" . $tmp_lang . "\" and lang_index_id =\"" . $string_id . "\"";
                                                         $wpdb->query($sqlupdate);
                                                         echo '<tr  style="font-size:10px;"><td>';
                                                         echo 'Update';
                                                         echo '</td><td>';
                                                         if (!empty($matche['msgctxt'])) {
                                                             echo 'placeholder (' . $matche['msgctxt'] . ')<br>';
                                                         }
                                                         echo $matche['msgid'] . ' -- ' . $matche['msgstr'][0];
                                                         if (!empty($matche['msgstr'][1])) {
                                                             echo '<br>';
                                                             echo $matche['msgid_plural'] . ' -- ' . $matche['msgstr'][1];
                                                         }
                                                         echo '</td></tr>';
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                                 if (empty($has_input_data_checkup)) {
                                     echo '<tr><td colspan="2">';
                                     echo '<span style="color:red;">No data has been Insert/Update</span>';
                                     echo '</td></tr>';
                                 }
                                 echo '</table>';
                                 echo '</div><table cellpadding="5"><tr><td>';
                                 echo '<tr><td>Done</td><td>';
                                 echo '<a href="' . $this->curPageURL() . '"><- Back</a>';
                                 echo '</td></tr>';
                                 echo '</table>';
                                 if (!empty($has_input_data_checkup)) {
                                     echo "<script>jQuery( function( \$ ) {jQuery.post('" . admin_url() . "',{etm_data: true,'etm_fn':'mo_generator' })});</script>";
                                 }
                                 die;
                             } else {
                                 $Error = 'Cannot find any strings';
                             }
                         }
                     }
                 }
             }
         }
     }
     if (!empty($Error)) {
         echo '<table cellpadding="5"><tr><td>';
         echo '<h3  style="margin-bottom: 0px;">' . __('Error', 'evt') . '</h3>';
         echo '</td></tr>';
         echo '<tr><td>';
         echo $Error;
         echo '</td></tr>';
         echo '<tr><td>';
         echo '<a href="' . $this->curPageURL() . '"><- Back</a>';
         echo '</td></tr>';
         echo '</table>';
     } else {
         echo '<table cellpadding="5"  width="100%"><tr><td width="50%">';
         echo '<h3  style="margin-bottom: 0px;">' . __('Import .po file', 'evt') . '</h3>';
         echo '</td><td  width="50%">';
         echo '<h3  style="margin-bottom: 0px;">' . __('Export .po file', 'evt') . '</h3>';
         echo '</td></tr>';
         echo '</tr><td width="50%" valign="top">';
         echo '<p style="padding-right: 150px;font-size:12px">Import .po file to a plugin or theme. Remember the file name must follow this syntax "[textdomain]-[language].po" eg. our textdomain is <b>"EVT"</b> and the language of the file is English <b>"en"</b> or <b>"en_UK"</b>. In this case will it look like this <b>EVT-en.po</b> or <b>EVT-en_UK.po</b></p>';
         $plugins = get_plugins();
         $themes = wp_get_themes();
         echo '<form method="post" enctype="multipart/form-data">';
         echo '<select name="plugintheme" style="font-size:12px;width:450px;">';
         echo '<option value="" style="font-size:12px;">' . __('Select plugin / theme', 'evt') . '</option>';
         echo '<option value="" disabled="disabled">----------------' . __('Plugin', 'evt') . '----------------</option>';
         if (!empty($plugins)) {
             foreach ($plugins as $key => $plugin) {
                 $folder = explode("/", $key);
                 echo '<option style="font-size:12px;" value="' . $folder[0] . '|||plugin">' . utf8_decode(strip_tags($plugin['Title'])) . ' (' . utf8_decode(strip_tags($plugin['Version'])) . ')</option>';
             }
         }
         echo '<option value="" disabled="disabled">----------------' . __('Themes', 'evt') . '----------------</option>';
         if (!empty($themes)) {
             foreach ($themes as $key => $theme) {
                 echo '<option style="font-size:12px;" value="' . $theme['Template'] . '|||theme">' . utf8_decode(strip_tags($theme['Title'])) . ' (' . utf8_decode(strip_tags($theme['Version'])) . ')</option>';
             }
         }
         echo '</select><br>';
         echo '<input type="file" name="file" id="file" style="font-size:12px;;width:450px;">';
         echo '<input type="hidden" name="status" value="import"><br>';
         echo '<label for="file" style="font-size: 12px;margin-left:8px;">Overwrite the existing translations:</label> <input name="overwrite" type="checkbox" value="on"><br>';
         echo '<input type="submit" name="submit" style="font-size: 12px;margin-left:400px;" value="Submit"><br>';
         echo '</form>';
         echo '</td><td width="50%" valign="top">';
         echo '<p style="font-size:12px">If you cannot find your textdomain then go to Theme translation or Plugin translation and rescan the folder. Once you know the textdomain return to this page.</p>';
         $sql_tmp4 = "SELECT count(mo_tag) as counttag , mo_tag FROM {$wpdb->prefix}etm_plugin_index\nwhere mo_tag != '' and mo_tag != 'Variable textdomain' group by mo_tag order by mo_tag";
         $sqldata_tmp4 = $wpdb->get_results($sql_tmp4);
         echo '<select id="etm_texdomains" style="font-size:12px;width:450px;">';
         echo '<option value="" style="font-size:12px;">' . __('Select Textdomain', 'evt') . '</option>';
         if (!empty($sqldata_tmp4)) {
             foreach ($sqldata_tmp4 as $key => $sqltmp4) {
                 echo '<option style="font-size:12px;" value="' . $sqltmp4->mo_tag . '">' . $sqltmp4->mo_tag . ' (' . $sqltmp4->counttag . ')</option>';
             }
         }
         echo '</select><br>';
         $current_active_tmp_lang = etm_tools_retrive_languages_data(etm_tools_retrive_aktiv_languages('', false), true);
         echo '<select id="etm_languages" style="font-size:12px;width:450px;">';
         echo '<option value="" style="font-size:12px;">' . __('Select Languages', 'evt') . '</option>';
         if (!empty($current_active_tmp_lang)) {
             foreach ($current_active_tmp_lang as $key => $current_active_tmp) {
                 echo '<option style="font-size:12px;" value="' . $current_active_tmp['code'] . '|||' . $current_active_tmp['default_locale'] . '">' . $current_active_tmp['english_name'] . ' (' . $current_active_tmp['org_name'] . ')</option>';
             }
         }
         echo '</select><br>';
         echo '<input type="submit" name="submit" onClick="etm_download_click();return false;" style="font-size: 12px;margin-left:400px;" value="Submit"><br>';
         echo "<script>\n\t\t\t\tjQuery(document).ready(function(\$){\n\t\t\t\t\tjQuery.download = function(url, data, method){\n\t\t\t\t\t\tif( url && data ){ \n\t\t\t\t\t\t\tdata = typeof data == 'string' ? data : jQuery.param(data);\n\t\n\t\t\t\t\t\t\tvar inputs = '';\n\t\t\t\t\t\t\tjQuery.each(data.split('&'), function(){ \n\t\t\t\t\t\t\t\tvar pair = this.split('=');\n\t\t\t\t\t\t\t\tinputs+='<input type=\"hidden\" name=\"'+ pair[0] +'\" value=\"'+ pair[1] +'\" />'; \n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tjQuery('<form action=\"'+ url +'\" method=\"'+ (method||'post') +'\">'+inputs+'</form>')\n\t\t\t\t\t\t\t.appendTo('body').submit().remove();\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t\n\n\t\t\t\t});\n\t\t\t\tfunction etm_download_click(){\t\n\t\t\t\t\tif(jQuery('#etm_languages').val() != '' && jQuery('#etm_texdomains').val() != '' ){\n\t\t\t\t\t\n\t\t\t\t\t\tjQuery.download('" . admin_url() . "','lang='+jQuery('#etm_languages').val()+'&mo='+jQuery('#etm_texdomains').val()+'&etm_data=true&etm_fn=mo_export');\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\t</script>";
         echo '</td></tr></table>';
     }
 }
Exemplo n.º 3
0
 function get_active_flags()
 {
     global $easy_translation_manager_plugin;
     $active_langs = etm_tools_retrive_aktiv_languages('', false);
     // if default is not active in flags then add
     if (!empty($easy_translation_manager_plugin->etm_tools_retrive['default_language']) && empty($active_langs[$easy_translation_manager_plugin->etm_tools_retrive['default_language']])) {
         $active_langs[$easy_translation_manager_plugin->etm_tools_retrive['default_language']] = 2;
     }
     // Sort the flags
     if (!empty($easy_translation_manager_plugin->etm_tools_retrive['flag_sort'])) {
         $flag_sorts = $easy_translation_manager_plugin->etm_tools_retrive['flag_sort'];
         foreach ($flag_sorts as $_key => $_data) {
             if (empty($active_langs[$_data])) {
                 unset($flag_sorts[$_key]);
             }
         }
         $flag_sorts = array_values($flag_sorts);
         $flag_sorts = etm_tools_retrive_languages_data($flag_sorts, false, false);
         return $flag_sorts;
     }
     // reset index and get alternativ data
     $active_langs = array_keys($active_langs);
     $active_langs = etm_tools_retrive_languages_data($active_langs, false, true);
     $active_langs = etm_tools_subval_sort($active_langs, 'org_name', 'desc');
     return $active_langs;
 }
Exemplo n.º 4
0
function etm_tools_get_site_options()
{
    global $etm_tag, $wpdb, $easy_translation_manager_plugin, $total_found, $wp_query;
    $status_tmp = array('admin_email', 'blogname', 'blogdescription', 'date_format', 'time_format', 'start_of_week');
    if (!empty($_POST['etm_folder'])) {
        $etm_folder = $_POST['etm_folder'];
    }
    if (!empty($_POST['post_tag'])) {
        $etm_tag = $_POST['post_tag'];
    }
    $intervalt = 10;
    $page = 0;
    $count = 0;
    $tmp_data_array = array();
    $sql_tmp = "SELECT * FROM  {$wpdb->prefix}options WHERE option_name in ('" . implode("','", $status_tmp) . "')";
    if (!empty($_POST['sort_col']) && $_POST['sort_col'] == 'id') {
        $_POST['sort_col'] = 'option_id';
    } else {
        if (!empty($_POST['sort_col']) && $_POST['sort_col'] == 'title') {
            $_POST['sort_col'] = 'option_name';
        } else {
            if (!empty($_POST['sort_col']) && $_POST['sort_col'] == 'auther') {
                $_POST['sort_col'] = 'option_value';
            } else {
                $_POST['sort_col'] = 'option_name';
            }
        }
    }
    if (!empty($_POST['sort_col'])) {
        $sql_tmp .= ' ORDER BY ' . $_POST['sort_col'];
    }
    if (!empty($_POST['sort_dir'])) {
        if ($_POST['sort_dir'] == 'decs') {
            $_POST['sort_dir'] = 'desc';
        }
        $sql_tmp .= ' ' . $_POST['sort_dir'];
    }
    if (!empty($_POST['interval'])) {
        if (!empty($_POST['page'])) {
            $sql_tmp .= ' LIMIT ' . $_POST['interval'] * $_POST['page'] . ',';
        } else {
            $sql_tmp .= ' LIMIT ' . $_POST['interval'] * 0 . ',';
        }
        $sql_tmp .= ' ' . $_POST['interval'];
    }
    $sqldata_tmp = $wpdb->get_results($sql_tmp);
    $total_found = count($status_tmp);
    $languashed = etm_tools_retrive_languages_data(etm_tools_retrive_aktiv_languages(), true);
    $current_aktive_lang = etm_tools_retrive_aktiv_languages();
    if ($sqldata_tmp) {
        foreach ($sqldata_tmp as $id_seach) {
            $site_type_lang = array();
            $sqllangcheckdata = '';
            foreach ($current_aktive_lang as $tmp_key_lang => $tmp_lang) {
                $tmp_var_get = get_option('etm_' . $id_seach->option_name . '_' . $tmp_key_lang, '');
                if (!empty($tmp_var_get)) {
                    if (empty($site_type_lang[$tmp_key_lang])) {
                        $site_type_lang[$tmp_key_lang] = (object) array();
                    }
                    $site_type_lang[$tmp_key_lang]->lang_code = $tmp_key_lang;
                }
            }
            $tmp_data_array[] = array('id' => $id_seach->option_id, 'title' => $id_seach->option_name, 'auther' => $id_seach->option_value, 'languages' => etm_tools_create_languages_click_link($languashed, $id_seach->option_id, $site_type_lang, $etm_tag), 'editible' => 'true');
        }
    }
    return $tmp_data_array;
}
 function manage_posts_custom_column($column, $post_id)
 {
     if ($column == 'etmlang') {
         $admin_url = admin_url('post.php?post=' . $post_id . '&action=edit');
         $languashed = etm_tools_retrive_languages_data(etm_tools_retrive_aktiv_languages(), true);
         echo $this->etm_tools_check_lang_createstring($languashed, '', $admin_url, $post_id, 24, 'text-align: left');
     }
 }
 function activ_lang_array()
 {
     $tmp_lang = etm_tools_retrive_aktiv_languages('', false);
     if (!empty($this->etm_tools_retrive['default_language'])) {
         $tmp_lang[$this->etm_tools_retrive['default_language']] = 2;
     }
     $languashed = etm_tools_retrive_languages_data($tmp_lang, true);
     $return_array = '';
     foreach ($languashed as $tmp) {
         $return_array[$tmp['code']] = $tmp['english_name'] . ' (' . $tmp['org_name'] . ')';
     }
     return $return_array;
 }