예제 #1
1
/**
 * 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>';
}
예제 #2
0
/**
 * 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));
         }
     }
 }