- Improve handling of whitespace characters after closing PHP tag in localization and config files
| | |
| | | if (empty($this->texts) || $lang != $_SESSION['language']) { |
| | | $this->texts = array(); |
| | | |
| | | // handle empty lines after closing PHP tag in localization files |
| | | ob_start(); |
| | | |
| | | // get english labels (these should be complete) |
| | | @include(INSTALL_PATH . 'program/localization/en_US/labels.inc'); |
| | | @include(INSTALL_PATH . 'program/localization/en_US/messages.inc'); |
| | |
| | | $this->texts = array_merge($this->texts, $messages); |
| | | } |
| | | |
| | | ob_end_clean(); |
| | | |
| | | $_SESSION['language'] = $lang; |
| | | } |
| | | |
| | |
| | | */ |
| | | private function load() |
| | | { |
| | | // start output buffering, we don't need any output yet, |
| | | // it'll be cleared after reading of config files, etc. |
| | | ob_start(); |
| | | |
| | | // load main config file |
| | | if (!$this->load_from_file(RCMAIL_CONFIG_DIR . '/main.inc.php')) |
| | | $this->errors[] = 'main.inc.php was not found.'; |
| | |
| | | ini_set('display_errors', 0); |
| | | } |
| | | |
| | | // clear output buffer |
| | | ob_end_clean(); |
| | | |
| | | // export config data |
| | | $GLOBALS['CONFIG'] = &$this->prop; |
| | | } |
| | |
| | | public function load_from_file($fpath) |
| | | { |
| | | if (is_file($fpath) && is_readable($fpath)) { |
| | | // use output buffering, we don't need any output here |
| | | ob_start(); |
| | | include($fpath); |
| | | ob_end_clean(); |
| | | |
| | | if (is_array($rcmail_config)) { |
| | | $this->prop = array_merge($this->prop, $rcmail_config, $this->userprefs); |
| | | return true; |
| | |
| | | $locdir = slashify(realpath(slashify($this->home) . $dir)); |
| | | $texts = array(); |
| | | |
| | | // use buffering to handle empty lines/spaces after closing PHP tag |
| | | ob_start(); |
| | | |
| | | foreach (array('en_US', $lang) as $lng) { |
| | | @include($locdir . $lng . '.inc'); |
| | | $texts = (array)$labels + (array)$messages + (array)$texts; |
| | | } |
| | | |
| | | ob_end_clean(); |
| | | |
| | | // prepend domain to text keys and add to the application texts repository |
| | | if (!empty($texts)) { |
| | | $add = array(); |