public static function get_job_id_from_request() { /** * @var TranslationManagement $iclTranslationManagement * @var WPML_Post_Translation $wpml_post_translations */ global $iclTranslationManagement, $wpml_post_translations, $wpml_translation_job_factory, $sitepress, $wpdb; $job_id = filter_input(INPUT_GET, 'job_id', FILTER_SANITIZE_NUMBER_INT); $trid = filter_input(INPUT_GET, 'trid', FILTER_SANITIZE_NUMBER_INT); $language_code = filter_input(INPUT_GET, 'language_code', FILTER_SANITIZE_FULL_SPECIAL_CHARS); $source_language_code = filter_input(INPUT_GET, 'source_language_code', FILTER_SANITIZE_FULL_SPECIAL_CHARS); if (!$job_id && $trid && $language_code) { $job_id = $iclTranslationManagement->get_translation_job_id($trid, $language_code); if (!$job_id) { if (!$source_language_code) { $post_id = SitePress::get_original_element_id_by_trid($trid); } else { $posts_in_trid = $wpml_post_translations->get_element_translations(false, $trid); $post_id = isset($posts_in_trid[$source_language_code]) ? $posts_in_trid[$source_language_code] : false; } $blog_translators = wpml_tm_load_blog_translators(); $args = array('lang_from' => $source_language_code, 'lang_to' => $language_code, 'job_id' => $job_id); if ($post_id && $blog_translators->is_translator($sitepress->get_current_user()->ID, $args)) { $job_id = $wpml_translation_job_factory->create_local_post_job($post_id, $language_code); } } } return $job_id; }
/** * @param int $job_id * @param int|null $batch_id * @param WPML_TM_Blog_Translators $blog_translators */ function __construct($job_id, $batch_id = null, &$blog_translators = null) { $this->job_id = $job_id; $batch_id = $batch_id ? $batch_id : $this->get_batch_id(); $this->batch_id = $batch_id ? $batch_id : TranslationProxy_Batch::update_translation_batch(); $this->blog_translators = $blog_translators ? $blog_translators : wpml_tm_load_blog_translators(); }
function wpml_tm_save_post($post_id, $post, $force_set_status) { global $wpdb; require_once WPML_TM_PATH . '/inc/actions/wpml-tm-post-actions.class.php'; $action_helper = new WPML_TM_Action_Helper(); $blog_translators = wpml_tm_load_blog_translators(); $tm_records = new WPML_TM_Records($wpdb); $save_post_action = new WPML_TM_Post_Actions($action_helper, $blog_translators, $tm_records); if ($post->post_type == 'revision' || $post->post_status == 'auto-draft' || isset($_POST['autosave'])) { return; } $save_post_action->save_post_actions($post_id, $post, $force_set_status); }
/** * @return WPML_TM_Mail_Notification */ function wpml_tm_init_mail_notifications() { global $wpml_tm_mailer, $sitepress, $wpdb, $iclTranslationManagement, $wpml_translation_job_factory; if (!isset($wpml_tm_mailer)) { require WPML_TM_PATH . '/inc/local-translation/wpml-tm-mail-notification.class.php'; $blog_translators = wpml_tm_load_blog_translators(); $iclTranslationManagement = $iclTranslationManagement ? $iclTranslationManagement : wpml_load_core_tm(); if (empty($iclTranslationManagement->settings)) { $iclTranslationManagement->init(); } $settings = isset($iclTranslationManagement->settings['notification']) ? $iclTranslationManagement->settings['notification'] : array(); $wpml_tm_mailer = new WPML_TM_Mail_Notification($sitepress, $wpdb, $wpml_translation_job_factory, $blog_translators, $settings); } $wpml_tm_mailer->init(); return $wpml_tm_mailer; }
private function build_translation_options() { global $sitepress, $wpdb; $basket_items_number = TranslationProxy_Basket::get_basket_items_count(true); $basket_name_max_length = TranslationProxy::get_current_service_batch_name_max_length(); if ($basket_items_number > 0) { $source_language = TranslationProxy_Basket::get_source_language(); $basket_name_placeholder = sprintf(__("%s|WPML|%s", 'wpml-translation-management'), get_option('blogname'), $source_language); $basket = new WPML_Translation_Basket($wpdb); $basket_name_placeholder = esc_attr($basket->get_unique_basket_name($basket_name_placeholder, $basket_name_max_length)); ?> <h3>2. <?php _e('Choose translation options', 'wpml-translation-management'); ?> </h3> <form method="post" id="translation-jobs-translators-form" name="translation-jobs-translators" action=""> <input type="hidden" name="icl_tm_action" value="send_all_jobs"/> <label for="basket_name"><strong><?php _e('Batch name', 'wpml-translation-management'); ?> :</strong></label> <input id="basket_name" name="basket_name" type="text" style="width: 40%;" value="<?php echo $basket_name_placeholder; ?> " maxlength="<?php echo $basket_name_max_length; ?> " placeholder="<?php echo $basket_name_placeholder; ?> "> <br/><span class="description"><?php _e('Give a name to the batch. If omitted, the default name will be applied.', 'wpml-translation-management'); ?> </span> <table class="widefat fixed" id="icl-translation-translators" cellspacing="0"> <thead> <tr> <th scope="col" width="15%"><?php _e('Language', 'wpml-translation-management'); ?> </th> <th scope="col"><?php _e('Translator', 'wpml-translation-management'); ?> </th> </tr> </thead> <tfoot> <tr> <th scope="col"><?php _e('Language', 'wpml-translation-management'); ?> </th> <th scope="col"><?php _e('Translator', 'wpml-translation-management'); ?> </th> </tr> </tfoot> <?php $basket_languages = TranslationProxy_Basket::get_target_languages(); if ($basket_languages) { ?> <tbody> <?php $target_languages = $sitepress->get_active_languages(); foreach ($target_languages as $key => $lang) { if (!in_array($lang['code'], $basket_languages)) { unset($target_languages[$key]); } } foreach ($target_languages as $lang) { if ($lang['code'] === TranslationProxy_Basket::get_source_language()) { continue; } ?> <tr> <td><strong><?php echo $lang['display_name']; ?> </strong></td> <td> <label for="<?php echo esc_attr('translator[' . $lang['code'] . ']'); ?> "> <?php _e('Translate by', 'wpml-translation-management'); ?> </label> <?php $selected_translator = isset($icl_selected_translators[$lang['code']]) ? $icl_selected_translators[$lang['code']] : false; if ($selected_translator === false) { $selected_translator = TranslationProxy_Service::get_wpml_translator_id(); } $args = array('from' => TranslationProxy_Basket::get_source_language(), 'to' => $lang['code'], 'name' => 'translator[' . $lang['code'] . ']', 'selected' => $selected_translator, 'services' => array('local', TranslationProxy::get_current_service_id())); $blog_translators = wpml_tm_load_blog_translators(); $translators_dropdown = new WPML_TM_Translators_Dropdown($blog_translators); $translators_dropdown->render($args); ?> <a href="admin.php?page=<?php echo WPML_TM_FOLDER; ?> /menu/main.php&sm=translators"><?php _e('Manage translators', 'wpml-translation-management'); ?> </a> </td> </tr> <?php } ?> </tbody> <?php } ?> </table> <br> <?php echo TranslationProxy_Basket::get_basket_extra_fields_section(); ?> <?php wp_nonce_field('send_basket_items_nonce', '_icl_nonce_send_basket_items'); ?> <?php wp_nonce_field('send_basket_item_nonce', '_icl_nonce_send_basket_item'); ?> <?php wp_nonce_field('send_basket_commit_nonce', '_icl_nonce_send_basket_commit'); ?> <?php wp_nonce_field('check_basket_name_nonce', '_icl_nonce_check_basket_name'); ?> <input type="submit" class="button-primary" name="send-all-jobs-for-translation" value="<?php _e('Send all items for translation', 'wpml-translation-management'); ?> "> </form> <?php } do_action('wpml_translation_basket_page_after'); }
<script type="text/html" id="table-listing-filter"> <?php global $iclTranslationManagement, $sitepress, $wpdb; $translation_services = array('local', TranslationProxy::get_current_service_id()); $args = array('name' => 'filter[translator_id]', 'default_name' => __('All', 'wpml-translation-management'), 'selected' => isset($icl_translation_filter['translator_id']) ? $icl_translation_filter['translator_id'] : '', 'services' => $translation_services, 'add_label' => true); $blog_translators = wpml_tm_load_blog_translators(); $translators_dropdown = new WPML_TM_Translators_Dropdown($blog_translators); $translators_dropdown->render($args); ?> <label for="filter-job-status"> <?php _e('Status', 'wpml-translation-management'); ?> </label> <select id="filter-job-status" name="filter[status]"> <option value=""><?php _e('All translation jobs', 'wpml-translation-management'); ?> </option> <option value="<?php echo ICL_TM_WAITING_FOR_TRANSLATOR; ?> "><?php echo TranslationManagement::status2text(ICL_TM_WAITING_FOR_TRANSLATOR); ?> </option> <option value="<?php echo ICL_TM_IN_PROGRESS; ?> "><?php echo TranslationManagement::status2text(ICL_TM_IN_PROGRESS); ?>