From ed1d212ae2daea5e4bd043417610177093e99f19 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Sat, 16 Jan 2016 03:03:51 -0500 Subject: [PATCH] Improved SVG cleanup code --- program/steps/utils/spell_html.inc | 50 +++++++++++++++++++++++++++----------------------- 1 files changed, 27 insertions(+), 23 deletions(-) diff --git a/program/steps/utils/spell_html.inc b/program/steps/utils/spell_html.inc index d69c73f..9381956 100644 --- a/program/steps/utils/spell_html.inc +++ b/program/steps/utils/spell_html.inc @@ -1,12 +1,15 @@ <?php -/* +/** +-----------------------------------------------------------------------+ | program/steps/utils/spell_html.inc | | | | This file is part of the Roundcube Webmail client | | Copyright (C) 2005-2011, The Roundcube Dev Team | - | Licensed under the GNU GPL | + | | + | 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: | | Spellchecker for TinyMCE | @@ -14,40 +17,41 @@ +-----------------------------------------------------------------------+ | Author: Aleksander Machniak <alec@alec.pl> | +-----------------------------------------------------------------------+ - - $Id$ - */ -// 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'] = $spellchecker->get_words($data); +if ($method == 'addToDictionary') { + $data = rcube_utils::get_input_value('word', rcube_utils::INPUT_POST); + + $spellchecker->add_word($data); + $result['result'] = true; } -else if ($request['method'] == 'getSuggestions') { - $result['result'] = $spellchecker->get_suggestions($data); +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()) { - echo '{"error":{"errstr":"' . addslashes($error) . '","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}'; + rcube::raise_error(array('code' => 500, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => sprintf("Spell check engine error: " . $error)), + true, false); + + echo json_encode(array('error' => $error)); exit; } // send output -header("Content-Type: text/xml; charset=".RCMAIL_CHARSET); +header("Content-Type: application/json; charset=".RCUBE_CHARSET); echo json_encode($result); exit; - -- Gitblit v1.9.1