Kilka dni temu zgłosił się do nas jeden z klientów z dość dziwnym problemem. Okazało się, że podczas zapisywania edytowanych wpisów traci część formatowania. Co ciekawe kilka dni później podobny problem pojawił się na forum Fani WordPressa (GoldenLine).
Sprawa dotyczyła w zasadzie jedynie: zakończenia paragrafów <p> oraz pustych linii <br />.
Po krótkim badaniu okazało się, że za problemy odpowiada popularna wtyczka qTranslate (służąca do wprowadzania wielojęzyczności w serwisach opartych na WordPressie).
Istnieje jednak dość proste rozwiązanie, które odnalazłem na forum użytkowników qTranslate.
Należy wyedytować plik qtranslate_wphacks.php znajdujący się w katalogu głównym wtyczki qTranslate.
W pliku tym odnajdujemy fragment rozpoczynający się komentarzem:
// do some crazy js to alter the admin view” (linia nr 89)
i kończący się komentarzem
// insert language, visual and html buttons” (linia nr 106).
Powinien wyglądać on jak poniżej:
// do some crazy js to alter the admin view $content .="\n// <![CDATA[\n"; $content .="function qtrans_editorInit1() {\n"; // include needed js functions $content .= $q_config['js']['qtrans_is_array']; $content .= $q_config['js']['qtrans_xsplit']; $content .= $q_config['js']['qtrans_split']; $content .= $q_config['js']['qtrans_integrate']; $content .= $q_config['js']['qtrans_use']; $content .= $q_config['js']['qtrans_switch']; $content .= $q_config['js']['qtrans_assign']; $content .= $q_config['js']['qtrans_save']; $content .= $q_config['js']['qtrans_integrate_title']; $content .= $q_config['js']['qtrans_get_active_language']; $content .= $q_config['js']['qtrans_hook_on_tinyMCE']; // insert language, visual and html buttons
Tutaj musimy trochę pomieszać, aby w efekcie otrzymać następujący wynik:
// do some crazy js to alter the admin view $content .="\n// <![CDATA[\n"; // Deklarujemy funkcje globalne uzywane w roznych miejscach $content .= $q_config['js']['qtrans_xsplit']; $content .= $q_config['js']['qtrans_is_array']; $content .= $q_config['js']['qtrans_split']; $content .= $q_config['js']['qtrans_integrate']; // Dodajemy prywatne funkcje, ktore wczesnie byly na poczatku $content .="function qtrans_editorInit1() {\n"; // include needed js functions $content .= $q_config['js']['qtrans_use']; $content .= $q_config['js']['qtrans_switch']; $content .= $q_config['js']['qtrans_assign']; $content .= $q_config['js']['qtrans_save']; $content .= $q_config['js']['qtrans_integrate_title']; $content .= $q_config['js']['qtrans_get_active_language']; $content .= $q_config['js']['qtrans_hook_on_tinyMCE']; // insert language, visual and html buttons
Potem oczywiście nadpisujemy oryginalny plik i wszystko powinno być już OK!
Czy też spotkaliście się z podobnym problemem? A może znacie inne rozwiązanie?
Komentarze
3 odpowiedzi na „Jak naprawić błąd w qTranslate związany z usuwaniem formatowania <p> oraz <br>?”
do mnie tez ten klient zglaszal sie z tym pytaniem ;) jako ze nie moglem pomoc z braku czasu, odeslalem go wlasnie na GL
Ale u mnie to był początkowo inny klient – „własny” :)
mozna jeszcze dopisac cos takiego w functions.php twojego theme:
function cbnet_tinymce_config( $init ) {
// Don’t remove line breaks
$init[’remove_linebreaks’] = false;
// Convert newline characters to BR tags
$init[’convert_newlines_to_brs’] = true;
// Do not remove redundant BR tags
$init[’remove_redundant_brs’] = false;
// Pass $init back to WordPress
return $init;
}
add_filter(’tiny_mce_before_init’, 'cbnet_tinymce_config’);