public function build_content_translators() { global $sitepress, $iclTranslationManagement, $wpdb, $current_user; $selected_translator = $iclTranslationManagement->get_selected_translator(); $active_service = $this->active_service; $service_name = $this->service_name; if (current_user_can('list_users')) { add_filter('icl_translation_services_button', array($this, 'icl_local_add_translator_button')); add_filter('icl_translation_services_button', array('TranslationProxy', 'get_current_service_info')); $only_local_translators = $active_service && (!TranslationProxy_Service::is_authenticated($active_service) || $active_service && !$active_service->has_translator_selection); ?> <div id="icl-your-translators"> <?php if ($active_service && TranslationProxy::translator_selection_available()) { if ($only_local_translators) { $translation_dashboard_url = "admin.php?page=" . WPML_TM_FOLDER . "/menu/main.php&sm=dashboard"; $translation_dashboard_link = sprintf('<a href="%s">' . __('Translation Dashboard', 'wpml-translation-management') . '</a>', $translation_dashboard_url); $service_html = '<p>'; $service_html .= sprintf(__('This section is for selecting WPML (local) translators only. If you wish to use %s, please go to %s.'), '<strong>' . $service_name . '</strong>', $translation_dashboard_link); $service_html .= '</p>'; } else { $service_html = TranslationProxy::get_service_translators_info(); } ICL_AdminNotifier::display_instant_message($service_html); } if ($selected_translator && $selected_translator->ID) { // Edit form echo '<h3>' . __('Edit translator', 'wpml-translation-management') . '</h3>'; echo '<form id="icl_tm_adduser" method="post" action="">' . "\r\n"; echo $this->icl_local_edit_translator_form('edit', $selected_translator) . "\r\n"; echo '</form>' . "\r\n"; } else { // Services add translator form // Services hook $services_buttons = apply_filters('icl_translation_services_button', array()); if (!empty($services_buttons)) { if (!$only_local_translators) { // Toggle button echo '<input type="submit" class="button secondary" id="icl_add_translator_form_toggle" value="' . __('Add Translator', 'wpml-translation-management') . ' »" />' . "\r\n"; } // Toggle div start $form_classes = array('translator-form-wrapper'); if (!isset($_GET['service']) && !$only_local_translators) { $form_classes[] = 'hidden'; } echo '<div id="icl_add_translator_form_wrapper" class="' . implode(' ', $form_classes) . '">'; // Open form echo '<form id="icl_tm_adduser" method="post" action="">'; // 'From' and 'To' languages dropdowns $languages = $sitepress->get_active_languages(); $from = '<label>' . __('From language:', 'wpml-translation-management') . ' <select name="from_lang" id="edit-from">' . "\r\n" . '<option value="0">' . __('Choose', 'wpml-translation-management') . '</option>' . "\r\n"; $to = '<label>' . __('To language:', 'wpml-translation-management') . ' <select name="to_lang" id="edit-to">' . "\r\n" . '<option value="0">' . __('Choose', 'wpml-translation-management') . '</option>' . "\r\n"; foreach ($languages as $language) { // select language from request $selected_from = isset($_GET['icl_lng']) && $_GET['icl_lng'] == $language['code'] ? ' selected="selected"' : ''; $from .= '<option ' . $selected_from . ' value="' . $language['code'] . '"' . @strval($selected_from) . '>' . $language['display_name'] . '</option>' . "\r\n"; $to .= '<option value="' . $language['code'] . '"' . '>' . $language['display_name'] . '</option>' . "\r\n"; } echo $from . '</select></label>' . "\r\n"; echo $to . '</select></label>' . "\r\n"; if (!$only_local_translators) { // Services radio boxes echo '<h4 style="margin-bottom:5px;">' . __('Select translation service', 'wpml-translation-management') . '</h4>' . "\r\n"; } else { echo '<h4 style="margin-bottom:5px;">' . __('Select translators', 'wpml-translation-management') . '</h4>' . "\r\n"; } foreach ($services_buttons as $service => $button) { if ($only_local_translators && $service != 'local') { continue; } if (!isset($button['has_translator_selection']) || $button['has_translator_selection']) { $selected = $only_local_translators && $service == 'local' || isset($_GET['service']) && $_GET['service'] == $service ? ' checked="checked"' : ''; $title = array(); $has_translator_selection = isset($service['has_translator_selection']) ? $service['has_translator_selection'] : false; echo '<div style="margin-bottom:5px;">'; $display = $only_local_translators && $service == 'local' ? ' style="display:none;"' : ''; echo '<input type="radio" id="radio-' . $service . '" name="services" data-has_translator_selection="' . $has_translator_selection . '" value="' . $service . '"' . $selected . $display . ' />'; if (isset($button['name']) && $button['name']) { $title[] = '<label for="radio-' . $service . '"' . $display . '> ' . $button['name']; } if (isset($button['description']) && $button['description']) { $title[] = $button['description']; } if (isset($button['more_link']) && $button['more_link']) { $title[] = $button['more_link']; } echo implode(' - ', $title) . "\r\n"; echo '</label>'; echo isset($button['content']) && $button['content'] ? $button['content'] . "\r\n" : ''; echo isset($button['messages']) && $button['messages'] ? $button['messages'] . "\r\n" : ''; if (isset($button['setup_url']) && $button['setup_url']) { echo '<input type="hidden" id="' . $service . '_setup_url" name="' . $service . '_setup_url" value="' . $button['setup_url'] . '" />' . "\r\n"; } echo '</div>'; } } echo '<br style="clear:both;" />'; echo '<input id="icl_add_translator_submit" class="button-primary" type="submit" value="' . esc_attr(__('Add translator', 'wpml-translation-management')) . '" />' . "\r\n"; echo '</form>' . "\r\n"; echo '</div>' . "\r\n"; } else { _e('No add translator interface available', 'wpml-translation-management'); } } // Translators lists // Local translators $blog_users_t = $iclTranslationManagement->get_blog_translators(); if (TranslationProxy::translator_selection_available()) { $other_service_translators = TranslationProxy_Translator::translation_service_translators_list(); } ?> <?php if (!empty($blog_users_t) || !empty($other_service_translators)) { ?> <h3><?php _e('Current translators', 'wpml-translation-management'); ?> </h3> <table class="widefat fixed" cellspacing="0"> <thead> <?php $this->translators_head_foot_row(); ?> </thead> <tfoot> <?php $this->translators_head_foot_row(); ?> </tfoot> <tbody class="list:user user-list"> <?php if (!empty($blog_users_t)) { foreach ($blog_users_t as $bu) { ?> <?php if (!isset($trstyle) || $trstyle) { $trstyle = ''; } else { $trstyle = ' class="alternate"'; } if ($current_user->ID == $bu->ID) { $edit_link = 'profile.php'; } else { $edit_link = esc_url(add_query_arg('wp_http_referer', urlencode(esc_url(stripslashes($_SERVER['REQUEST_URI']))), "user-edit.php?user_id={$bu->ID}")); } $language_pairs = get_user_meta($bu->ID, $wpdb->prefix . 'language_pairs', true); ?> <tr<?php echo $trstyle; ?> > <td class="column-title"> <strong><a class="row-title" href="<?php echo $edit_link; ?> "><?php echo $bu->user_login; ?> </a></strong> <div class="row-actions"> <a class="edit" href="admin.php?page=<?php echo WPML_TM_FOLDER; ?> /menu/main.php&sm=translators&icl_tm_action=remove_translator&remove_translator_nonce=<?php echo wp_create_nonce('remove_translator'); ?> &user_id=<?php echo $bu->ID; ?> "><?php _e('Remove', 'wpml-translation-management'); ?> </a> | <a class="edit" href="admin.php?page=<?php echo WPML_TM_FOLDER; ?> /menu/main.php&sm=translators&icl_tm_action=edit&user_id=<?php echo $bu->ID; ?> "> <?php _e('Language pairs', 'wpml-translation-management'); ?> </a> </div> </td> <td> <?php $langs = $sitepress->get_active_languages(); ?> <ul> <?php foreach ($language_pairs as $from => $lp) { ?> <?php $tos = array(); foreach ($lp as $to => $null) { if (isset($langs[$to])) { $tos[] = $langs[$to]['display_name']; } elseif ($to) { $_lang = $sitepress->get_language_details($to); if ($_lang) { $tos[] = '<i>' . $_lang['display_name'] . __(' (inactive)', 'wpml-translation-management') . '</i>'; } } } ?> <li><?php @printf(__('%s to %s', 'wpml-translation-management'), $langs[$from]['display_name'], join(', ', $tos)); ?> </li> <?php } ?> </ul> </td> <td> Local </td> <td> <a href="admin.php?page=<?php echo WPML_TM_FOLDER; ?> /menu/main.php&sm=translators&icl_tm_action=edit&user_id=<?php echo $bu->ID; ?> "><?php _e('edit languages', 'wpml-translation-management'); ?> </a> </td> </tr> <?php } } ?> <?php if (!empty($other_service_translators)) { foreach ($other_service_translators as $rows) { ?> <?php if (!isset($trstyle) || $trstyle) { $trstyle = ''; } else { $trstyle = ' class="alternate"'; } $language_pairs = isset($rows['langs']) ? $rows['langs'] : ''; ?> <tr<?php echo $trstyle; ?> > <td class="column-title"> <strong><?php echo isset($rows['name']) ? $rows['name'] : ''; ?> </strong> <div class="row-actions"> <?php echo isset($rows['action']) ? $rows['action'] : ''; ?> </div> </td> <td> <?php $langs = $sitepress->get_active_languages(); if (is_array($language_pairs)) { ?> <ul> <?php foreach ($language_pairs as $from => $lp) { $from = isset($langs[$from]['display_name']) ? $langs[$from]['display_name'] : $from; $tos = array(); foreach ($lp as $to) { $tos[] = isset($langs[$to]['display_name']) ? $langs[$to]['display_name'] : $to; } ?> <li><?php printf(__('%s to %s', 'wpml-translation-management'), $from, join(', ', $tos)); ?> </li> <?php } ?> </ul> <?php } ?> </td> <td> <?php echo isset($rows['type']) ? icl_do_not_promote() ? __('Translation Service', 'sitepress') : $rows['type'] : ''; ?> </td> <td> <?php echo isset($rows['action']) ? $rows['action'] : ''; ?> </td> </tr> <?php } } ?> </tbody> </table> <?php } else { $message = __("You haven't added any translator accounts yet.", 'wpml-translation-management'); ICL_AdminNotifier::display_instant_message($message, 'warning'); } wp_nonce_field('get_users_not_trans_nonce', 'get_users_not_trans_nonce'); } //if ( current_user_can('list_users') ) ?> </div> <?php }
$wpml_tm_menus = new WPML_TM_Menus(); } if (isset($wpml_tm_menus)) { $wpml_tm_menus->build_content_dashboard_fetch_translations_box(); } if (count($active_languages = $sitepress->get_active_languages()) > 1) { ?> <div><a href="javascript:void(0)" onclick="jQuery(this).parent().next('.wrapper').slideToggle();" style="display:block; padding:5px; border: 1px solid #eee; margin-bottom:2px; background-color: #F7F7F7;"><?php _e('Content translation', 'wpml-translation-management'); ?> </a> </div> <div class="wrapper" style="display:none; padding: 5px 10px; border: 1px solid #eee; border-top: 0px; margin:-11px 0 2px 0;"> <?php $your_translators = TranslationManagement::get_blog_translators(); $other_service_translators = TranslationProxy_Translator::translation_service_translators_list(); if (!empty($your_translators) || !empty($other_service_translators)) { echo '<p><strong>' . __('Your translators', 'wpml-translation-management') . '</strong></p><ul>'; if (!empty($your_translators)) { foreach ($your_translators as $your_translator) { echo '<li>'; if ($current_user->ID == $your_translator->ID) { $edit_link = 'profile.php'; } else { $edit_link = esc_url(add_query_arg('wp_http_referer', urlencode(esc_url(stripslashes($_SERVER['REQUEST_URI']))), "user-edit.php?user_id={$your_translator->ID}")); } echo '<a href="' . $edit_link . '"><strong>' . $your_translator->display_name . '</strong></a> - '; foreach ($your_translator->language_pairs as $from => $lp) { $tos = array(); foreach ($lp as $to => $null) { if (isset($active_languages[$to])) {