Rechtschreibkorrektur des TinyMCE reparieren

Wer Wordpress nutzt, der nutzt zu 99% auch den TinyMCE, einen WYSIWYG-Texteditor. Dieser bietet als Plugin auch eine Rechtschreibkorrektur an (bei WP standardmäßig aktiviert).

Wenn auf dem Server das cURL-Modul nicht installiert ist, kommt es beim Ausführen der Rechtschreibkorrektur sehr wahrscheinlich zu folgendem Fehler:

Error response: <br />
<b>Warning</b>:
   fgets() [<a href='function.fgets'>function.fgets</a>]:  SSL: fatal protocol error in  <b>/wordpress/wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php</b>  on line <b>94</b><br /> {"id":null,"result":["Tesat"],"error":null}

Nach langer Recherche bin ich darauf gestoßen, dass es sich hierbei um einen php-Bug handelt, der irgendwie in Zusammenhang mit MySQL auftritt.

So schwer es war das Problem zu identifizieren, so leicht ist die Lösung: ein @ vor fgets() in Zeile 92 der /wordpress/wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php

					$xml .= @fgets($fp, 128);

Wenn wir einmal dabei sind, können wir auch noch ein zweites Problem lösen (was aber nur auftritt, sofern das Blog utf-8-kodiert ist, was auch in den meisten Fällen der Fall sein sollte), die falsch codierten Umlaute etc. Im WP-Deutschland-Blog gibts die Lösung,  in Zeile 41  wird überflüssigerweise die Funktion utf8_decode() aufgerufen, was zu dieser Verunstaltung der Sonderzeichen führt. Ändert man diese Zeile in

			$sug = explode("\t", $this->_unhtmlentities($matches[0][4]));

so läuft wieder alles wie es soll


Kommentare

Keine Kommentare vorhanden


Kommentar schreiben
Folgende HTML-Tags sind erlaubt:
  • <a href="" title=""></a>
  • <abbr title=""></abbr>
  • <br />
  • <blockquote cite=""></blockquote>
  • <code></code>
  • <em></em>
  • <strike></strike>
  • <strong></strong>