Changeset 5c6d1ac in github
- Timestamp:
- May 12, 2012 10:47:51 AM (13 months ago)
- Branches:
- release-0.8
- Children:
- b3da048
- Parents:
- 568e26c (diff), 02cf44e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Files:
-
- 9 edited
-
.htaccess (modified) (1 diff)
-
CHANGELOG (modified) (1 diff)
-
README.md (modified) (1 diff)
-
program/include/rcmail.php (modified) (1 diff)
-
program/include/rcube_plugin.php (modified) (1 diff)
-
program/js/app.js (modified) (2 diffs)
-
program/lib/washtml.php (modified) (8 diffs)
-
program/steps/addressbook/func.inc (modified) (1 diff)
-
program/steps/mail/func.inc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
.htaccess
r57d15d50 r82e1bd2 31 31 RewriteRule ^favicon\.ico$ skins/default/images/favicon.ico 32 32 # security rules 33 RewriteRule . svn/ - [F]33 RewriteRule .git/ - [F] 34 34 RewriteRule ^README|INSTALL|LICENSE|SQL|bin|CHANGELOG$ - [F] 35 35 </IfModule> -
CHANGELOG
raca50c1 r02cf44e 2 2 =========================== 3 3 4 - Fix handling of "usemap" attribute (#1488472) 5 - Fix handling of some HTML tags e.g. IMG (#1488471) 6 - Use similar language as a fallback for plugin localization (#1488401) 4 7 - Fix issue where signature wasn't re-added on draft compose (#1488322) 5 8 - Update to TinyMCE 3.5 (#1488459) -
README.md
rce81074 rdac31dd 6 6 ATTENTION 7 7 --------- 8 This is just a snapshot of the current SVNrepository and is **NOT A STABLE8 This is just a snapshot from the GIT repository and is **NOT A STABLE 9 9 version of Roundcube**. It's not recommended to replace an existing installation 10 10 of Roundcube with this version. Also using a separate database for this -
program/include/rcmail.php
ra9c1b87 r71ced07 1168 1168 1169 1169 // include user language files 1170 if ($lang != 'en' && is_dir(INSTALL_PATH . 'program/localization/' . $lang)) {1170 if ($lang != 'en' && $lang != 'en_US' && is_dir(INSTALL_PATH . 'program/localization/' . $lang)) { 1171 1171 include_once(INSTALL_PATH . 'program/localization/' . $lang . '/labels.inc'); 1172 1172 include_once(INSTALL_PATH . 'program/localization/' . $lang . '/messages.inc'); -
program/include/rcube_plugin.php
r479af905 r71ced07 153 153 { 154 154 $domain = $this->ID; 155 156 $lang = $_SESSION['language'];155 $lang = $_SESSION['language']; 156 $langs = array_unique(array('en_US', $lang)); 157 157 $locdir = slashify(realpath(slashify($this->home) . $dir)); 158 $texts = array(); 158 $texts = array(); 159 160 // Language aliases used to find localization in similar lang, see below 161 $aliases = array( 162 'de_CH' => 'de_DE', 163 'es_AR' => 'es_ES', 164 'fa_AF' => 'fa_IR', 165 'nl_BE' => 'nl_NL', 166 'pt_BR' => 'pt_PT', 167 'zh_CN' => 'zh_TW', 168 ); 159 169 160 170 // use buffering to handle empty lines/spaces after closing PHP tag 161 171 ob_start(); 162 172 163 foreach ( array('en_US', $lang)as $lng) {173 foreach ($langs as $lng) { 164 174 $fpath = $locdir . $lng . '.inc'; 165 175 if (is_file($fpath) && is_readable($fpath)) { 166 include ($fpath);176 include $fpath; 167 177 $texts = (array)$labels + (array)$messages + (array)$texts; 178 } 179 else if ($lng != 'en_US') { 180 // Find localization in similar language (#1488401) 181 $alias = null; 182 if (!empty($aliases[$lng])) { 183 $alias = $aliases[$lng]; 184 } 185 else if ($key = array_search($lng, $aliases)) { 186 $alias = $key; 187 } 188 189 if (!empty($alias)) { 190 $fpath = $locdir . $alias . '.inc'; 191 if (is_file($fpath) && is_readable($fpath)) { 192 include $fpath; 193 $texts = (array)$labels + (array)$messages + (array)$texts; 194 } 195 } 168 196 } 169 197 } -
program/js/app.js
rdcaab6b r951c9b3a 767 767 case 'always-load': 768 768 if (this.env.uid && this.env.sender) { 769 this.add_contact( urlencode(this.env.sender));769 this.add_contact(this.env.sender); 770 770 setTimeout(function(){ ref.command('load-images'); }, 300); 771 771 break; … … 3528 3528 { 3529 3529 if (value) 3530 this.http_post('addcontact', '_address='+value);3530 this.http_post('addcontact', {_address: value}); 3531 3531 3532 3532 return true; -
program/lib/washtml.php
rf38dfc29 r02cf44e 102 102 'bordercolordark', 'face', 'marginwidth', 'marginheight', 'axis', 'border', 103 103 'abbr', 'char', 'charoff', 'clear', 'compact', 'coords', 'vspace', 'hspace', 104 'cellborder', 'size', 'lang', 'dir', 104 'cellborder', 'size', 'lang', 'dir', 'usemap', 105 105 // attributes of form elements 106 106 'type', 'rows', 'cols', 'disabled', 'readonly', 'checked', 'multiple', 'value' … … 109 109 /* Block elements which could be empty but cannot be returned in short form (<tag />) */ 110 110 static $block_elements = array('div', 'p', 'pre', 'blockquote', 'a', 'font', 'center', 111 'table', 'ul', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ol', 'dl', 'strong', 'i', 'b', 'u' );111 'table', 'ul', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ol', 'dl', 'strong', 'i', 'b', 'u', 'span'); 112 112 113 113 /* State for linked objects in HTML */ … … 134 134 135 135 /* Constructor */ 136 public function __construct($p = array()) { 136 public function __construct($p = array()) 137 { 137 138 $this->_html_elements = array_flip((array)$p['html_elements']) + array_flip(self::$html_elements) ; 138 139 $this->_html_attribs = array_flip((array)$p['html_attribs']) + array_flip(self::$html_attribs); … … 150 151 151 152 /* Check CSS style */ 152 private function wash_style($style) { 153 private function wash_style($style) 154 { 153 155 $s = ''; 154 156 … … 192 194 193 195 /* Take a node and return allowed attributes and check values */ 194 private function wash_attribs($node) { 196 private function wash_attribs($node) 197 { 195 198 $t = ''; 196 199 $washed; … … 232 235 * It output only allowed tags with allowed attributes 233 236 * and allowed inline styles */ 234 private function dumpHtml($node) { 237 private function dumpHtml($node) 238 { 235 239 if(!$node->hasChildNodes()) 236 240 return ''; … … 249 253 $content = $this->dumpHtml($node); 250 254 $dump .= '<' . $tagName . $this->wash_attribs($node) . 251 // create closing tag for block elements, but also for elements 252 // with content or with some attributes (eg. style, class) (#1486812) 253 ($content != '' || $node->hasAttributes() || isset($this->_block_elements[$tagName]) ? ">$content</$tagName>" : ' />'); 255 ($content != '' || isset($this->_block_elements[$tagName]) ? ">$content</$tagName>" : ' />'); 254 256 } 255 257 else if (isset($this->_ignore_elements[$tagName])) { … … 311 313 312 314 } 313 314 ?> -
program/steps/addressbook/func.inc
r373e3df r8253e7d 594 594 $template = $RCMAIL->config->get($col . '_template', '{'.join('} {', array_keys($colprop['childs'])).'}'); 595 595 foreach ($colprop['childs'] as $childcol => $cp) { 596 $childvalue = $val[$childcol] ? $val[$childcol] : $val[$j]; 596 if (!empty($val) && is_array($val)) { 597 $childvalue = $val[$childcol] ? $val[$childcol] : $val[$j]; 598 } 599 else { 600 $childvalue = ''; 601 } 597 602 598 603 if ($edit_mode) { -
program/steps/mail/func.inc
rf4698cb r951c9b3a 1331 1331 $address = html::span(null, $address . html::a(array( 1332 1332 'href' => "#add", 1333 'onclick' => sprintf("return %s.command('add-contact','%s',this)", JS_OBJECT_NAME, urlencode($string)),1333 'onclick' => sprintf("return %s.command('add-contact','%s',this)", JS_OBJECT_NAME, $string), 1334 1334 'title' => rcube_label('addtoaddressbook'), 1335 1335 'class' => 'rcmaddcontact',
Note: See TracChangeset
for help on using the changeset viewer.
