| | |
| | | } |
| | | } |
| | | |
| | | // select folder where to save the sent message |
| | | $_SESSION['compose']['param']['sent_mbox'] = $RCMAIL->config->get('sent_mbox'); |
| | | |
| | | // pipe compose parameters thru plugins |
| | | $plugin = $RCMAIL->plugins->exec_hook('message_compose', $_SESSION['compose']); |
| | | $_SESSION['compose']['param'] = array_merge($_SESSION['compose']['param'], $plugin['param']); |
| | | $_SESSION['compose']['param'] = array_merge($_SESSION['compose']['param'], $plugin['param']); |
| | | |
| | | // add attachments listed by message_compose hook |
| | | if (is_array($plugin['attachments'])) { |
| | |
| | | $CONFIG['prefer_html'] = $CONFIG['prefer_html'] || $CONFIG['htmleditor'] || $compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT; |
| | | $MESSAGE = new rcube_message($msg_uid); |
| | | |
| | | // make sure message is marked as read |
| | | if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen) |
| | | $IMAP->set_flag($msg_uid, 'SEEN'); |
| | | |
| | | if (!empty($MESSAGE->headers->charset)) |
| | | $IMAP->set_charset($MESSAGE->headers->charset); |
| | | |
| | |
| | | // include GoogieSpell |
| | | if (!empty($CONFIG['enable_spellcheck'])) { |
| | | |
| | | $lang = strtolower(substr($_SESSION['language'], 0, 2)); |
| | | |
| | | $spellcheck_langs = (array)$RCMAIL->config->get('spellcheck_languages', array('da'=>'Dansk', 'de'=>'Deutsch', 'en' => 'English', 'es'=>'Español', 'fr'=>'Français', 'it'=>'Italiano', 'nl'=>'Nederlands', 'pl'=>'Polski', 'pt'=>'Português', 'fi'=>'Suomi', 'sv'=>'Svenska')); |
| | | $engine = $RCMAIL->config->get('spellcheck_engine','googie'); |
| | | $spellcheck_langs = (array) $RCMAIL->config->get('spellcheck_languages', |
| | | array('da'=>'Dansk', 'de'=>'Deutsch', 'en' => 'English', 'es'=>'Español', |
| | | 'fr'=>'Français', 'it'=>'Italiano', 'nl'=>'Nederlands', 'pl'=>'Polski', |
| | | 'pt'=>'Português', 'fi'=>'Suomi', 'sv'=>'Svenska')); |
| | | |
| | | // googie works only with two-letter codes |
| | | if ($engine == 'googie') { |
| | | $lang = strtolower(substr($_SESSION['language'], 0, 2)); |
| | | |
| | | $spellcheck_langs_googie = array(); |
| | | foreach ($spellcheck_langs as $key => $name) |
| | | $spellcheck_langs_googie[strtolower(substr($key,0,2))] = $name; |
| | | $spellcheck_langs = $spellcheck_langs_googie; |
| | | } |
| | | else { |
| | | $lang = $_SESSION['language']; |
| | | |
| | | // if not found in the list, try with two-letter code |
| | | if (!$spellcheck_langs[$lang]) |
| | | $lang = strtolower(substr($lang, 0, 2)); |
| | | } |
| | | |
| | | if (!$spellcheck_langs[$lang]) |
| | | $lang = 'en'; |
| | | |
| | | |
| | | $editor_lang_set = array(); |
| | | foreach ($spellcheck_langs as $key => $name) { |
| | | $editor_lang_set[] = ($key == $lang ? '+' : '') . JQ($name).'='.JQ($key); |
| | | } |
| | | } |
| | | |
| | | $OUTPUT->include_script('googiespell.js'); |
| | | $OUTPUT->add_script(sprintf( |
| | | "var googie = new GoogieSpell('\$__skin_path/images/googiespell/','%s&_action=spell&lang=');\n". |
| | | "var googie = new GoogieSpell('\$__skin_path/images/googiespell/','?_task=utils&_action=spell&lang=');\n". |
| | | "googie.lang_chck_spell = \"%s\";\n". |
| | | "googie.lang_rsm_edt = \"%s\";\n". |
| | | "googie.lang_close = \"%s\";\n". |
| | |
| | | "googie.setSpellContainer('spellcheck-control');\n". |
| | | "googie.decorateTextarea('%s');\n". |
| | | "%s.set_env('spellcheck', googie);", |
| | | $RCMAIL->comm_path, |
| | | JQ(Q(rcube_label('checkspelling'))), |
| | | JQ(Q(rcube_label('resumeediting'))), |
| | | JQ(Q(rcube_label('close'))), |
| | |
| | | { |
| | | $attrib['name'] = '_store_target'; |
| | | $select = rcmail_mailbox_select(array_merge($attrib, array('noselection' => '- '.rcube_label('dontsave').' -'))); |
| | | return $select->show(rcmail::get_instance()->config->get('sent_mbox'), $attrib); |
| | | return $select->show($_SESSION['compose']['param']['sent_mbox'], $attrib); |
| | | } |
| | | |
| | | |