/** * Get markup and language title for each site * * @param string $column_name not used * @param int $blog_id * * @return string */ function mlp_render_site_language_column($column_name, $blog_id) { switch_to_blog($blog_id); $lang = Mlp_Helpers::get_current_blog_language(); restore_current_blog(); if (empty($lang)) { return esc_html__('none', 'multilingualpress'); } $lang = Mlp_Helpers::get_lang_by_iso($lang); return '<div class="mlp_site_language">' . $lang . '</div>'; }
/** * Get language representation. * * @since 1.0.4 * @param string $iso Two-letter code like "en" or "de" * @param string $field Sub-key name: "iso_639_2", "en" or "native", * defaults to "native", "all" returns the complete list. * @return boolean|array|string FALSE for unknown language codes or fields, * array for $field = 'all' and string for specific fields */ function mlp_get_lang_by_iso($iso, $field = 'native_name') { return Mlp_Helpers::get_lang_by_iso($iso, $field); }
/** * Adds the meta box to the post edition page * * @access public * @since 0.1 * @uses get_option, get_site_option, get_current_blog_id, add_meta_box, get_admin_url * @global $wpdb WordPress Database Wrapper * @global $pagenow Current Page Locator * @return void */ public function add_meta_boxes() { global $wpdb, $pagenow; // Just load some options $related_blogs = get_option('inpsyde_multilingual_blog_relationship'); $available_blogs = get_site_option('inpsyde_multilingual'); // We have no Meta Box to declare because there is no related blog if (!is_array($related_blogs)) { return; } // Don't show this meta box on link pages $link_pages = array('link.php', 'link-add.php'); if (in_array($pagenow, $link_pages)) { return; } // get the connected elements $linked_elements = isset($_GET['post']) ? Mlp_Helpers::load_linked_elements($_GET['post'], '', get_current_blog_id()) : array(); $related_blogs = array_unique($related_blogs); // Let's run each blog to get the posts foreach ($related_blogs as $blog_to_translate) { if ($blog_to_translate != get_current_blog_id()) { // set element to 0 to avoid empty element if (!isset($linked_elements[$blog_to_translate])) { $linked_elements[$blog_to_translate] = 0; $link_to_post_edit = FALSE; } else { $link_to_post_edit = ' <small>- <a Href="' . get_admin_url($blog_to_translate) . 'post.php?post=' . $linked_elements[$blog_to_translate] . '&action=edit" target="_blank">' . __('Switch to blog', 'multilingualpress') . '</a></small>'; } $lang_text = $available_blogs[$blog_to_translate]['lang']; if (!empty($available_blogs[$blog_to_translate]['text'])) { $lang_text = $available_blogs[$blog_to_translate]['text']; } if ('' == $lang_text or preg_match('~[a-z]_[a-z]~i', $lang_text)) { $lang_text = Mlp_Helpers::get_lang_by_iso($available_blogs[$blog_to_translate]['lang'], 'native'); } add_meta_box('inpsyde_multilingual_' . $available_blogs[$blog_to_translate]['lang'], __('Add Translation for ', 'multilingualpress') . ' ' . $lang_text . $link_to_post_edit, array($this, 'display_meta_box'), 'post', 'advanced', 'default', array('blog_id' => $blog_to_translate, 'post_id' => $linked_elements[$blog_to_translate], 'post_lang' => $available_blogs[$blog_to_translate]['lang'], 'lang_title' => $lang_text)); add_meta_box('inpsyde_multilingual_' . $available_blogs[$blog_to_translate]['lang'], __('Add Translation for ', 'multilingualpress') . ' ' . $lang_text . $link_to_post_edit, array($this, 'display_meta_box'), 'page', 'advanced', 'default', array('blog_id' => $blog_to_translate, 'post_id' => $linked_elements[$blog_to_translate], 'post_lang' => $available_blogs[$blog_to_translate]['lang'], 'lang_title' => $lang_text)); } } }