/** * Add hidden fields to TM basket. * #icl_duplicate_post_in_basket with list of ids in basket. * #icl_disconnect_nonce nonce for AJAX call. */ public function add_hidden_field() { if (class_exists('TranslationProxy_Basket')) { $basket = TranslationProxy_Basket::get_basket(true); if (!isset($basket['post'])) { return; } $post_ids = array_map('intval', array_keys($basket['post'])); if (true === $this->duplicated_posts_found($post_ids)) { ?> <input type="hidden" value="<?php echo implode(',', $post_ids); ?> " id="icl_duplicate_post_in_basket"> <input type="hidden" value="<?php echo wp_create_nonce('icl_disconnect_duplicates'); ?> " id="icl_disconnect_nonce"> <?php } } }
/** * Returns an array representation of the current translation basket * * @param bool|false $force if true reloads the baskets contents from the database * * @return array */ function get_basket($force = false) { $basket = TranslationProxy_Basket::get_basket($force); $basket = $basket ? $basket : array(); return $basket; }
public function is_in_basket($target_lang) { if (class_exists('TranslationProxy_Basket')) { $basket = TranslationProxy_Basket::get_basket(); return isset($basket['package'][$this->package->ID]['to_langs'][$target_lang]); } else { return false; } }
public function rollback_basket_commit() { TranslationProxy_Basket::get_basket(true); $basket_name = TranslationProxy_Basket::get_basket_name(); $basket_name = $basket_name ? $basket_name : filter_input(INPUT_POST, 'basket_name', FILTER_SANITIZE_STRING); $batch_id = TranslationProxy::get_batch_id_from_name($basket_name); if ($batch_id) { $batch = new WPML_Translation_Batch($batch_id); $batch->cancel_all_remote_jobs(); } }
/** * @param $data */ private function set_translation_jobs_basket($data) { if (isset($data['batch']) && $data['batch']) { $batch = $data['batch']; $translation_jobs_basket_full = TranslationProxy_Basket::get_basket(); $this->translation_jobs_basket['name'] = $translation_jobs_basket_full['name']; foreach ($batch as $batch_item) { $element_type = $batch_item['type']; $element_id = $batch_item['post_id']; if (isset($translation_jobs_basket_full[$element_type][$element_id])) { $this->translation_jobs_basket[$element_type][$element_id] = $translation_jobs_basket_full[$element_type][$element_id]; } } } }
/** * return TranslationProxy_Batch */ public static function get_batch_data() { $basket = TranslationProxy_Basket::get_basket(); return $basket; }
/** * @param $source_language * @param $target_language * * @throws WPML_Package_Exception */ public function send_package_to_basket($source_language, $target_language) { global $sitepress, $iclTranslationManagement; $package = $this->package; $package_id = $package->ID; $basket = TranslationProxy_Basket::get_basket(); $language_name = $sitepress->get_display_language_name($target_language); $send_to_basket = true; $package_helper = new WPML_Package_Helper(); $post = $package_helper->get_translatable_item(null, $package_id); $post_title = $post->title; $element_type = $package->get_element_type_prefix() . '_' . $post->kind_slug; $trid = $sitepress->get_element_trid($package_id, $element_type); $job_id = $iclTranslationManagement->get_translation_job_id($trid, $target_language); if ($job_id) { $job_details = $iclTranslationManagement->get_translation_job($job_id); $send_to_basket = $this->validate_package_status($job_details, $post_title, $language_name); } if ($send_to_basket) { $basket['package'][$package_id]['from_lang'] = $source_language; $basket['package'][$package_id]['to_langs'][$target_language] = 1; // set basket language if not already set if (!isset($basket['source_language'])) { $basket['source_language'] = $source_language; } } TranslationProxy_Basket::update_basket($basket); }
private function get_data() { global $iclTranslationManagement; $translation_jobs_basket = TranslationProxy_Basket::get_basket(); $basket_items_types = TranslationProxy_Basket::get_basket_items_types(); foreach ($basket_items_types as $item_type_name => $item_type) { $translation_jobs_cart[$item_type_name] = false; if ($item_type == 'core') { if (!empty($translation_jobs_basket[$item_type_name])) { $basket_type_items = $translation_jobs_basket[$item_type_name]; if ($item_type_name == 'string') { $translation_jobs_cart[$item_type_name] = $iclTranslationManagement->get_translation_jobs_basket_strings($basket_type_items); } else { $translation_jobs_cart[$item_type_name] = $iclTranslationManagement->get_translation_jobs_basket_posts($basket_type_items); } $this->build_basket_items($translation_jobs_cart[$item_type_name], $item_type_name); } } elseif ($item_type == 'custom') { $translation_jobs_cart_externals = apply_filters('wpml_tm_translation_jobs_basket', array(), $translation_jobs_basket, $item_type_name); $this->build_basket_items($translation_jobs_cart_externals, $item_type_name); } } }