diff options
Diffstat (limited to 'program/steps/utils')
-rw-r--r-- | program/steps/utils/html2text.inc | 7 | ||||
-rw-r--r-- | program/steps/utils/spell_html.inc | 36 | ||||
-rw-r--r-- | program/steps/utils/text2html.inc | 33 |
3 files changed, 55 insertions, 21 deletions
diff --git a/program/steps/utils/html2text.inc b/program/steps/utils/html2text.inc index c01443b22..f6e2bec4d 100644 --- a/program/steps/utils/html2text.inc +++ b/program/steps/utils/html2text.inc @@ -19,7 +19,12 @@ +-----------------------------------------------------------------------+ */ -$html = $HTTP_RAW_POST_DATA; +$html = stream_get_contents(fopen('php://input', 'r')); + +// strip slashes if magic_quotes enabled +if (get_magic_quotes_gpc() || get_magic_quotes_runtime()) { + $html = stripslashes($html); +} // Replace emoticon images with its text representation $html = $RCMAIL->replace_emoticons($html); diff --git a/program/steps/utils/spell_html.inc b/program/steps/utils/spell_html.inc index 5935dc13f..6722f8787 100644 --- a/program/steps/utils/spell_html.inc +++ b/program/steps/utils/spell_html.inc @@ -19,31 +19,28 @@ +-----------------------------------------------------------------------+ */ -// read input data -$data = file_get_contents('php://input'); -// Decode JSON input -$request = json_decode($data, true); +$method = rcube_utils::get_input_value('method', rcube_utils::INPUT_POST); +$lang = rcube_utils::get_input_value('lang', rcube_utils::INPUT_POST); $result = array(); -$lang = $request['params'][0]; -$data = $request['params'][1]; -$data = implode("\n", (array) $data); - -$result['id'] = $request['id']; - $spellchecker = new rcube_spellchecker($lang); -if ($request['method'] == 'checkWords') { - $result['result'] = empty($data) ? array() : $spellchecker->get_words($data); -} -else if ($request['method'] == 'getSuggestions') { - $result['result'] = $spellchecker->get_suggestions($data); -} -else if ($request['method'] == 'learnWord') { +if ($method == 'addToDictionary') { + $data = rcube_utils::get_input_value('word', rcube_utils::INPUT_POST); + $spellchecker->add_word($data); $result['result'] = true; } +else { + $data = rcube_utils::get_input_value('text', rcube_utils::INPUT_POST, true); + $data = html_entity_decode($data, ENT_QUOTES, RCUBE_CHARSET); + + if ($data && !$spellchecker->check($data)) { + $result['words'] = $spellchecker->get(); + $result['dictionary'] = (bool) $RCMAIL->config->get('spellcheck_dictionary'); + } +} if ($error = $spellchecker->error()) { rcube::raise_error(array('code' => 500, 'type' => 'php', @@ -51,12 +48,11 @@ if ($error = $spellchecker->error()) { 'message' => sprintf("Spell check engine error: " . $error)), true, false); - echo '{"error":{"errstr":"' . addslashes($error) . '","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}'; + echo json_encode(array('error' => $error)); exit; } // send output -header("Content-Type: text/xml; charset=".RCUBE_CHARSET); +header("Content-Type: application/json; charset=".RCUBE_CHARSET); echo json_encode($result); exit; - diff --git a/program/steps/utils/text2html.inc b/program/steps/utils/text2html.inc new file mode 100644 index 000000000..56d15fa19 --- /dev/null +++ b/program/steps/utils/text2html.inc @@ -0,0 +1,33 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | program/steps/utils/text2html.inc | + | | + | This file is part of the Roundcube Webmail client | + | Copyright (C) 2005-2014, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + | PURPOSE: | + | Convert plain text to HTML | + | | + +-----------------------------------------------------------------------+ + | Author: Thomas Bruederli <roundcube@gmail.com> | + +-----------------------------------------------------------------------+ +*/ + +$text = stream_get_contents(fopen('php://input', 'r')); + +// strip slashes if magic_quotes enabled +if (get_magic_quotes_gpc() || get_magic_quotes_runtime()) { + $html = stripslashes($html); +} + +$converter = new rcube_text2html($text, false, array('wrap' => true)); + +header('Content-Type: text/html; charset=' . RCUBE_CHARSET); +print $converter->get_html(); +exit; |