| | |
| | | // Also strtoupper/strtolower and other methods are locale-aware |
| | | // for these locales it is problematic (#1490519) |
| | | if (in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) { |
| | | setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8'); |
| | | setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8', 'C'); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | // try to log in |
| | | if (!$storage->connect($host, $username, $pass, $port, $ssl)) { |
| | | // Wait a second to slow down brute-force attacks (#1490549) |
| | | sleep(1); |
| | | return false; |
| | | } |
| | | |
| | |
| | | // this need to be full url to make redirects work |
| | | $absolute = true; |
| | | } |
| | | else if ($secure && ($token = $this->get_request_token())) |
| | | $url .= $delm . '_token=' . urlencode($token); |
| | | |
| | | if ($absolute || $full) { |
| | | // add base path to this Roundcube installation |
| | |
| | | |
| | | foreach ($emoticons as $idx => $file) { |
| | | // <img title="Cry" src="http://.../program/js/tinymce/plugins/emoticons/img/smiley-cry.gif" border="0" alt="Cry" /> |
| | | $search[] = '/<img title="[a-z ]+" src="https?:\/\/[a-z0-9_.\/-]+\/tinymce\/plugins\/emoticons\/img\/'.$file.'.gif"[^>]+\/>/i'; |
| | | $file = preg_quote('program/js/tinymce/plugins/emoticons/img/' . $file . '.gif', '/'); |
| | | $search[] = '/<img (title="[a-z ]+" )?src="[^"]+' . $file . '"[^>]+\/>/i'; |
| | | $replace[] = $idx; |
| | | } |
| | | |
| | |
| | | return file_get_contents($name, false); |
| | | } |
| | | |
| | | /** |
| | | * Converts HTML content into plain text |
| | | * |
| | | * @param string $html HTML content |
| | | * @param array $options Conversion parameters (width, links, charset) |
| | | * |
| | | * @return string Plain text |
| | | */ |
| | | public function html2text($html, $options = array()) |
| | | { |
| | | $default_options = array( |
| | | 'links' => true, |
| | | 'width' => 75, |
| | | 'body' => $html, |
| | | 'charset' => RCUBE_CHARSET, |
| | | ); |
| | | |
| | | $options = array_merge($default_options, (array) $options); |
| | | |
| | | // Plugins may want to modify HTML in another/additional way |
| | | $options = $this->plugins->exec_hook('html2text', $options); |
| | | |
| | | // Convert to text |
| | | if (!$options['abort']) { |
| | | $converter = new rcube_html2text($options['body'], |
| | | false, $options['links'], $options['width'], $options['charset']); |
| | | |
| | | $options['body'] = rtrim($converter->get_text()); |
| | | } |
| | | |
| | | return $options['body']; |
| | | } |
| | | |
| | | |
| | | /************************************************************************ |
| | | ********* Deprecated methods (to be removed) ********* |