diff options
Diffstat (limited to 'program/include')
| -rw-r--r-- | program/include/rcmail.php | 5 | ||||
| -rw-r--r-- | program/include/rcube_config.php | 11 | ||||
| -rw-r--r-- | program/include/rcube_plugin.php | 7 | 
3 files changed, 15 insertions, 8 deletions
diff --git a/program/include/rcmail.php b/program/include/rcmail.php index 0eecd8ddb..f72b33e95 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -929,6 +929,9 @@ class rcmail      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'); @@ -949,6 +952,8 @@ class rcmail            $this->texts = array_merge($this->texts, $messages);        } +      ob_end_clean(); +        $_SESSION['language'] = $lang;      } diff --git a/program/include/rcube_config.php b/program/include/rcube_config.php index a7e1d9ef5..76cf18307 100644 --- a/program/include/rcube_config.php +++ b/program/include/rcube_config.php @@ -47,10 +47,6 @@ class rcube_config       */      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.'; @@ -98,9 +94,6 @@ class rcube_config              ini_set('display_errors', 0);          } -        // clear output buffer -        ob_end_clean(); -          // export config data          $GLOBALS['CONFIG'] = &$this->prop;      } @@ -136,7 +129,11 @@ class rcube_config      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; diff --git a/program/include/rcube_plugin.php b/program/include/rcube_plugin.php index c7ec01943..1c3a8f602 100644 --- a/program/include/rcube_plugin.php +++ b/program/include/rcube_plugin.php @@ -129,12 +129,17 @@ abstract class rcube_plugin      $lang = $_SESSION['language'];      $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();  | 
