File "proofreading.php"

Full Path: /www/wwwroot/shphe-en.com/wp-content/plugins/proofreading/services/proofreading.php
File size: 23.29 KB
MIME-type: --
Charset: utf-8

<?php
/**
 * Plugin Name: 翻译校对
 * Plugin URI: #
 * Description: 翻译校对
 * Version: 2.0.00
 * Author: zhang chao
 * Author URI: #
 */

add_action('admin_menu', 'proofreading');

function proofreading() {
    add_menu_page('翻译校对', '翻译校对', 7, 'proofreading');
    add_submenu_page('proofreading', '翻译校对', '翻译校对', 7, 'proofreading', 'proofreading_data');
}

function proofreading_data () {

    require_once dirname(__FILE__) . '/services/FileService.php';
    $service  = new FileService();
    $pages    = $service->pages;
    $language = file_get_contents(dirname(__FILE__) . '/json/language.json');
    $language = json_decode($language, true);

    file_put_contents(dirname(__FILE__) . '/json/language.json',json_encode($language,JSON_UNESCAPED_UNICODE));

    // 缓存平台域名
    $cdn_setting = get_option("gd_cdn_setting");
    $domain      = isset($cdn_setting['weburl']) && !empty($cdn_setting['weburl']) ? $cdn_setting['weburl'] : '';
    $wsdomain = parse_url($domain);
    $testdomain = $_SERVER["HTTP_HOST"];
    $service->getUserConfig('web_url_domain', $domain);
    $service->getUserConfig('home_url_no', home_url());
    $service->getUserConfig('home_url', home_url("/"));
    $link_type = (int)$service->getUserConfig('link_type');
    $link_type = $link_type > 0 ? $link_type : 1;
    $link_select1 = $link_type == 1 ? 'selected' : '';
    $link_select2 = $link_type == 2 ? 'selected' : '';

    $user_language_path = dirname(__FILE__) . '/json/user_language.json';
    if (file_exists($user_language_path)) {
        $user_language = file_get_contents(dirname(__FILE__) . '/json/user_language.json');
        $user_language = json_decode($user_language, true);
        $user_language_keys = !empty($user_language) || !is_null($user_language) ? array_column($user_language, 'short') : [];
    } else {
        $user_language      = [];
        $user_language_keys = [];
    }

    // 选择页面 语种选择组装
    $choose_language_list = count($user_language) > 0 ? $user_language : $language;
    $pr_language_html   = '';
    foreach ($choose_language_list as $ll) {
        if($ll['short'] == $_GET["language"]){
            $pr_language_html .= '<option value="' . $ll['short'] . '" selected>' . $ll['chinese'] . '</option>';
        }else{
            $pr_language_html .= '<option value="' . $ll['short'] . '">' . $ll['chinese'] . '</option>';
        }
    }

    // 获取用户所有配置
    $user_config      = $service->getUserConfigAll();
    $is_start         = isset($user_config['is_start']) ? (int)$user_config['is_start'] : 2;
    $is_start_checked = $is_start == 1 ? 'checked' : '';

    $is_open_customer_proofreading = isset($user_config['is_open_customer_proofreading']) ? (int)$user_config['is_open_customer_proofreading'] : 2;
    $is_open_customer_proofreading_checked = $is_open_customer_proofreading == 1 ? 'checked' : '';
    $open_customer_proofreading_html = $is_open_customer_proofreading == 1 ? '<div class="form-button form-waring" id="addText">添加校对文本</div>' : '';

    $user_password    = isset($user_config['password']) ? $user_config['password'] : '';

    // 页面选择列表
    $pages_html = '';
    foreach ($pages as $value) {
        $path = parse_url($_GET["jump_url"]);
        if($value['path'] == $path['path']){
            $pages_html .= '<option value="' . $value['path'] . '" selected>' . $value['path'] . '</option>';
        }else{
            $pages_html .= '<option value="' . $value['path'] . '">' . $value['path'] . '</option>';
        }
       
    }

    // 所有语言和一选择的语言列表
    $language_string = '<ul class="prisna-wp-translate-seo prisna-wp-translate-seo-test" id="prisna-translator-seo">';
    foreach ($language as $item) {

        $is_checked = in_array($item['short'], $user_language_keys) ? 'checked' : '';
        $language_string .= '<li class="language-flag language-flag-' . $item['short'] . '" data-value="' . $item['short'] . '">
            <label><input type="checkbox" name="check_box_choose" class="check-box check-language" ' . $is_checked . '>
            <a href="javascript:;">
                <b class="country-flag"></b>
                <span>' . $item['chinese'] . '</span>
            </a>
            </label>
        </li>';
    }
    $language_string .= '</ul>';

    // 所有语言和一选择的语言列表
    $trans_language_string = '<ul class="prisna-wp-translate-seo prisna-wp-translate-seo-test" id="prisna-translator-seo">';
    foreach ($language as $item) {

        $is_checked = in_array($item['short'], $user_language_keys) ? 'checked' : '';
        $trans_language_string .= '<li class="language-flag language-flag-' . $item['short'] . '" data-value="' . $item['short'] . '">
            <label><input type="checkbox" name="trans_box_choose" class="check-box check-language" ' . $is_checked . '>
            <a href="javascript:;">
                <b class="country-flag"></b>
                <span>' . $item['chinese'] . '</span>
            </a>
            </label>
        </li>';
    }
    $trans_language_string .= '</ul>';

    // 多语言校对连接
    $more_language_url = home_url() . '/admin/plugins/proofreading/index.php';

    echo '<!DOCTYPE html>
        <html lang="zh-cmn-Hans">
        <head>
            <meta charset="UTF-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
            <meta name="renderer" content="webkit|ie-comp|ie-stand">
            <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
            <title></title>
            <link rel="stylesheet" type="text/css" href="/wp-content/plugins/proofreading/resource/css/global.css">
            <link rel="stylesheet" type="text/css" href="/wp-content/plugins/proofreading/resource/css/pages.css?v=10">
            <link rel="stylesheet" type="text/css" href="/wp-content/plugins/proofreading/resource/css/language.css">
            <link rel="stylesheet" type="text/css" href="/wp-content/plugins/proofreading/resource/select2/select2.min.css">
            <style>
            .nav_information_items_wrap > li .form-group .form-item.radio_item,.table-language-list{display:none;}
            .radio_label{margin-right:20px;}
            .radio_label input[name=source_type]{ margin-right:6px}
            .content_image{width:80px;cursor: pointer;}
            .content_text{width:80px;cursor: pointer;}
            .content_lable{display:flex;text-align:center;border-bottom:1px solid #e9efff;margin-bottom:10px}
            .content_lable .active{
                background:#e9efff
            }
            .src-img{
                height:200px
            }
            .json_img_tr{
                border-bottom:1px solid #e9efff;
            }
            .json_img_td{
                text-align:center;
                padding:5px;
                width:49%
            }
            .layui-progress{
                position: relative;
                border-radius: 20px;
                background-color: #eee;
                height: 18px;
                line-height: 18px;
            }
            .layui-progress-bar{
                position: absolute;
                left: 0;
                top: 0;
                width: 0;
                max-width: 100%;
                height: 18px;
                border-radius: 20px;
                text-align: right;
                background-color: #5FB878;
                transition: all .3s;
                -webkit-transition: all .3s;
            }
            .layui-progress-text{
                position: static;
                padding: 0 10px;
                color: #fff;
                line-height: 18px;
                font-size: 12px;
                word-break: normal;
                
            }
        </style> 
        </head>
        
        <body>
        <div class="sys-page">
            <div class="ai-biz-panel ai-biz-top">
                <div class="panel-body">
                    <div class="d-table d-table-middle">
                        <div class="fee-tips tb-cell">
                            <p class="fee-tips-msg"><b>翻译校对:</b>翻译校对已正式上线
                            </p>
                        </div>
                    </div>
                </div>
            </div>
            <div class="ai-biz-panel ai-biz-list ">
                <div class="ai-trade-panel add_ai_content">
                    <div class="add_ai_content_left full-left">
                        <div class="add_ai_content_left_title pages-title-style">
                            <ul class="pages-title-tab">
                                <li class="tab-item active"><span>翻译校对</span></li>
                                <li class="tab-item"><span>校对配置</span></li>
                                <li class="tab-item"><span>专业校对</span></li>
                                <li class="tab-item" id="clear-cache"><span>清除翻译缓存</span></li>

                               <!-- <li class="tab-item"  id="trans" domain="'.$wsdomain["host"].'"><span>翻译全部</span></li> -->
                            </ul>
                        </div>
                        <div class="information_items nav_information_items">
                            <ul class="nav_information_items_wrap loading">
                                <li class="active">
                                    <div class="form-group">
                                        <div class="form-item">
                                            <p class="form-title">选择页面:</p>
                                            <div class="form-input">
                                                <select class="form-control" name="path" id="id_select2_demo1" style="width: 280px">
                                                    <option value="">请选择需要校对的页面</option>
                                                    ' . $pages_html . '
                                                </select>
                                            </div>
                                        </div>
                                        <div class="form-item">
                                            <p class="form-title">选择语种:</p>
                                            <div class="form-input">
                                                <select class="form-control" name="language" id="id_select2_demo2" style="width: 280px">
                                                    <option value="">请选择需要校对的语种</option>
                                                    '. $pr_language_html .'
                                                </select>
                                            </div>
                                            <div data-t="0" class="form-button getJson" >
                                                确认
                                            </div>
                                            <div data-t="1" class="form-button getJson">
                                                同步翻译
                                            </div>
                                            ' .  $open_customer_proofreading_html . '
                                        </div>
                                    </div>
                                    <div class="table-language-list">
                                    <div class="content_lable">
                                        <div class="content_text active">文本</div>
                                        <div class="content_image">图片</div>
                                       
                                    </div>
                                        <table id="json-table"></table>
                                        <table id="json-table-img" wpnonce = '.wp_create_nonce('media-form').'>
                                            <tr>
                                                <td>还没有图片数据<td>
                                            </tr>
                                            
                                        </table>
                                    </div>
                                </li>
                                <li>
                                    <div class="all-choose-box" style="margin: 20px 0;">
                                        <label class="ipt-addon-group">
                                            <input type="checkbox" class="check-box check-all">
                                            <span class="mb-show-only" style="display: inline;">全选</span>
                                        </label>
                                    </div>
                                    <div class="language-list">
                                        ' . $language_string . '
                                    </div>
                                </li>
                                <li>
                                    <div class="form-group">
                                        <div class="form-item">
                                            <p class="form-title">设置校对密码:</p>
                                            <div class="form-input">
                                                <input type="text" name="password" placeholder="请设置密码" value="' . $user_password . '">
                                            </div>
                                            <div class="form-button" id="confirm">
                                                确认
                                            </div>
                                        </div>
                                        <div class="form-item">
                                            <p class="form-title">
                                                <a href="' . $more_language_url . '" target="_blank" style="color: #4680fe">专业校对链接: ' . $more_language_url . ' </a>
                                            </p>
                                        </div>
                                    </div>
                                    <div class="table-language-list">
                                        <table id="json-table"></table>
                                       
                                    </div>
                                </li>
                                <li></li>
                                <li>
                                    <div class="all-choose-box" style="margin: 20px 0;">
                                        <label class="ipt-addon-group">
                                            <input type="checkbox" class="check-box check-all">
                                            <span class="mb-show-only" style="display: inline;">全选</span>
                                        </label>
                                    </div>
                                    <div class="language-list">
                                        ' . $trans_language_string . '
                                    </div>
                                </li>
                            </ul>
        


                            <div id="page" class="page_btn tab-button-list">
                                <ul>
                                    <li class="active">
                                        <div class="button-list">
                                            <button class="button button-pri change-button" data-type="1">修改当前页面</button>
                                            <button class="button button-war change-button" data-type="2">修改所有页面</button>
                                            <!--<button class="button button-war "  style="background: #e2a818;" id="clear-bakfile">清除较对备份</button>-->
                                            
                                        </div>
                                    </li>
                                    <li>
                                        <div class="choose_language_button">
                                            <div class="choose_all_box">
                                                <label>选择链接格式:</label> <select name="link_type" style="width: 180px;">
                                                    <option value="1" ' . $link_select1 .'>二级域名</option>
                                                    <option value="2" ' . $link_select2 .'>二级目录</option>
                                                </select>   
                                                <label class="ipt-addon-group">
                                                    <input type="checkbox" class="check-box is_start" ' . $is_start_checked . '>
                                                    <span class="mb-show-only" style="display: inline;">是否启用</span>
                                                </label>
                                                <label class="ipt-addon-group">
                                                    <input type="checkbox" class="check-box is_open_customer_proofreading" ' . $is_open_customer_proofreading_checked . '>
                                                    <span class="mb-show-only" style="display: inline;">是否开启自定义校对文本</span>
                                                </label>
                                            </div>
                                            <div class="choose_true_button">
                                                 <button class="button button-pri save-language">确认</button>
                                            </div>
                                        </div>
                                    </li>
                                    <li></li>
                                    <li></li>
                                    <li>
                                    <div class="choose_true_button">
                                                 <button class="button button-pri save-trans" domain="'.$wsdomain["host"].'">确认</button>
                                            </div>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
 
        </body>
        <script src="/wp-content/plugins/proofreading/resource/js/jquery-2.1.4.min.js"></script>
        <script src="/wp-content/plugins/proofreading/resource/select2/select2.min.js"></script>
        <script src="/wp-content/plugins/proofreading/resource/layer/layer.js"></script>
        <script src="/wp-content/plugins/proofreading/resource/sortable/sortable.min.js"></script>
        <script src="/wp-content/plugins/proofreading/resource/js/ajaxupload.3.9.js?v=54"></script>
        <script src="/wp-content/plugins/proofreading/resource/js/jquery.base64.js"></script>
        <script src="/wp-content/plugins/proofreading/resource/js/jquery.websocket.js?12345"></script>
        <script src="/wp-content/plugins/proofreading/resource/js/pages.js?v=20"></script>
        
        </html>';
}

add_action( 'wp_footer', 'add_language' );

function add_language() {

    // 获取用户设置的链接方式
    require_once dirname(__FILE__) . '/services/FileService.php';
    $service   = new FileService();

    // 判断语言模板是否启用
    $user_config      = $service->getUserConfigAll();
    $is_start         = isset($user_config['is_start']) ? (int)$user_config['is_start'] : 2;

    $pages    = array_column($service->pages, 'path');
    $newPages = [];
    foreach ($pages as $value) {
        if (strrpos($value, '/') === strlen($value) - 1 && strlen($value) > 1) {
            $value = substr($value,0,strlen($value)-1);
        }
        $newPages[] = $value;
    }

    $service_uri = $_SERVER['REQUEST_URI'];
    if (strrpos($service_uri, '/') === strlen($service_uri) - 1 && strlen($service_uri) > 1) {
        $service_uri = substr($service_uri,0,strlen($service_uri)-1);
    }

    if ($is_start != 1 || !in_array($service_uri, $newPages)) {
        echo '';
    } else {
        // 获取用户选择的链接方式
        $link_type = (int)$service->getUserConfig('link_type');
        $link_type = $link_type > 0 ? $link_type : 1;

        $user_language_path = dirname(__FILE__) . '/json/user_language.json';
        if (file_exists($user_language_path)) {
            $language = json_decode(file_get_contents($user_language_path), true);
        } else {
            $language = [];
        }

        if (empty($language)) {
            $language      = file_get_contents(dirname(__FILE__) . '/json/language.json');
            $language      = json_decode($language, true);
        }

        $cdn_setting = get_option("gd_cdn_setting");
        $domain   = isset($cdn_setting['weburl']) && !empty($cdn_setting['weburl']) ? $cdn_setting['weburl'] : '';



        if (!empty($domain)) {

            // 循环正式域名 获取语种正确的域名
            $domains         = explode('.', $domain);
            $language_domain = 'language_url';

            foreach ($domains as $key => $vo) {
                if ($key > 0) {

                    if ($vo === end($domains)) {
                        $vo = str_replace('/', '', $vo);
                    }

                    $language_domain .= '.' . $vo;
                }

            }

            $language_html  = '';
            $domain_slash = explode('/', $domain);
            $english_domain = str_replace('language_url', $domain_slash[0] . '//www', $language_domain) . $_SERVER['REQUEST_URI'];

            if ($link_type == 1) {
                $english_href = '<a href="' . $english_domain . '" title="English" target="_blank"><b class="country-flag"></b><span>English</span></a>';
            } else {
                $english_href = '<a href="' . $english_domain . '" title="English"><b class="country-flag"></b><span>English</span></a>';
            }

            $language_html .= '<li class="language-flag language-flag-en">' . $english_href . '</li>';
            foreach ($language as $value) {
                $link_href = '';
                if ($link_type == 1) {
                    $href = str_replace('language_url', 'http://' . $value['short'], $language_domain) . $_SERVER['REQUEST_URI'];
                    $link_href = '<a href="' . $href . '" title="' . $value['english'] . '" target="_blank"><b class="country-flag"></b><span>' . $value['english'] . '</span></a>';
                } else {
                    $href = $domain . $value['short'] . $_SERVER['REQUEST_URI'];
                    $link_href = '<a href="' . $href . '" title="' . $value['english'] . '"><b class="country-flag"></b><span>' . $value['english'] . '</span></a>';
                }
                $language_html .= '<li class="language-flag language-flag-' . $value['short'] . '">' . $link_href . '</li>';
            }

            echo '<ul class="prisna-wp-translate-seo" id="prisna-translator-seo">' . $language_html . '</ul>';
        }
    }
}