Created
November 14, 2013 20:23
-
-
Save iiwo/7473706 to your computer and use it in GitHub Desktop.
qTranslate - create tabs for language versions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* qTranslate tabbed language chooser | |
*/ | |
//make enabled languages visible for javascript | |
function register_qtranslate_var() { | |
global $q_config; | |
wp_localize_script('jquery', 'Qtranslate', array( | |
'enabled_languages' => $q_config['enabled_languages'] | |
, 'current_language' => qtrans_getLanguage() | |
) | |
); | |
} | |
add_action('admin_enqueue_scripts', 'register_qtranslate_var'); | |
function hide_nonactive_language() { | |
?> | |
<style type="text/css"> | |
<!-- | |
.qtrans_version | |
{ | |
display: none; | |
} | |
.qtrans_version.<?php echo qtrans_getLanguage(); ?> | |
{ | |
display: block; | |
} | |
--> | |
</style> | |
<?php | |
} | |
add_action("admin_head", 'hide_nonactive_language'); | |
function get_lang_menu($id = "") { | |
global $q_config; | |
$ret = '<h2 class=\"nav-tab-wrapper\">'; | |
foreach (qtrans_getSortedLanguages() as $language) { | |
//qtrans_convertURL was always returning lang=en for me, so had to fix that with this dirty fix | |
$fixed_url = preg_replace("/lang=[a-zA-Z][a-zA-Z]/", "lang=".$language, qtrans_convertURL('', $language)); | |
$ret .='<a href=\"' . $fixed_url . '\"'; | |
if ($language == $q_config['language']) | |
$ret .=' class=\"active nav-tab nav-tab-active qtrans_flag_' . $language . ' qtrans_flag_and_text\" title=\"' . $q_config['language_name'][$language] . '\"'; | |
else | |
$ret .=' class=\"nav-tab qtrans_flag_' . $language . ' qtrans_flag_and_text\" title=\"' . $q_config['language_name'][$language] . '\"'; | |
$ret .='><span>' . $q_config['language_name'][$language] . '</span></a>'; | |
} | |
$ret .='</h2>'; | |
return $ret; | |
} | |
function add_tabbed_languages_script() { | |
$screen = get_current_screen(); | |
if ($screen->base === 'post'){ | |
$menu = get_lang_menu(); | |
} | |
else{ | |
$menu = ''; | |
} | |
echo '<script type="text/javascript"> | |
/* <![CDATA[ */ | |
jQuery(".wrap").prepend("'.$menu.'"); | |
jQuery(document).ready(function() { | |
jQuery(".qtrans_title_input").each(function(){ | |
var item_id = jQuery(this).attr("id"); | |
var lang_regexp = /qtrans_title_(.+)/g; | |
var match = lang_regexp.exec(item_id); | |
var lang = match[1]; | |
jQuery(this).closest(".postarea").addClass("qtrans_version "+lang); | |
}); | |
jQuery("#qtrans_select_"+Qtranslate.current_language).click(); | |
jQuery.each(Qtranslate.enabled_languages, function(value){ | |
jQuery("#qtrans_select_"+Qtranslate.enabled_languages[value]).hide(); | |
}); | |
}); | |
/* ]]> */ | |
</script>'; | |
} | |
add_action("admin_footer", 'add_tabbed_languages_script'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment