Jak naprawić błąd w qTranslate związany z usuwaniem formatowania <p> oraz <br>?

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?


Opublikowano

w

,

przez

Komentarze

3 odpowiedzi na „Jak naprawić błąd w qTranslate związany z usuwaniem formatowania <p> oraz <br>?”

  1. Awatar Konrad Karpieszuk

    do mnie tez ten klient zglaszal sie z tym pytaniem ;) jako ze nie moglem pomoc z braku czasu, odeslalem go wlasnie na GL

    1. Awatar Jakub Milczarek

      Ale u mnie to był początkowo inny klient – „własny” :)

  2. Awatar Marek Knappe

    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’);