Fixed hangouts on php installations with zlib extension installed, fixed warnings...
authorJanusz Dobrowolski <janusz@frontaccouting.eu>
Thu, 6 Oct 2011 19:38:42 +0000 (21:38 +0200)
committerJanusz Dobrowolski <janusz@frontaccouting.eu>
Thu, 6 Oct 2011 19:38:42 +0000 (21:38 +0200)
admin/db/maintenance_db.inc
includes/errors.inc
install/index.php
install/isession.inc

index 056a6209dd9e8e027e73276b90c8427da07c2044..cd4afdacf477f1178da6fd18352834eddaa0abba 100644 (file)
@@ -178,7 +178,7 @@ function update_extensions($extensions) {
        }
 
        // update per company files
-       $cnt = count($db_connections);
+       $cnt = max(1, count($db_connections));
        for($i = 0; $i < $cnt; $i++) 
        {
                $newexts = $extensions;
index 459b306211722122f9dd0b46225051e6645ccc77..9b2ac36f907f81c37a8e12fd37ab52ce31cf5baf 100644 (file)
@@ -154,8 +154,12 @@ function end_flush() {
 
        if (isset($Ajax))
                $Ajax->run();
+
+        // zlib extension adds 1 additional level of buffering
+       $min_level = defined('FORCE_GZIP') ? 1 : 0;
+
        // flush all output buffers (works also with exit inside any div levels)
-       while(ob_get_level()) ob_end_flush();
+       while(ob_get_level() > $min_level) ob_end_flush();
 
        // if any transaction was aborted unexpectedly rollback changes
        cancel_transaction();
index 52adfbef158562c095cdcc2314f9848b180dab0d..fc27f03038097a200e43db1cb57bf2ddf46d6ae2 100644 (file)
@@ -23,7 +23,8 @@ include($path_to_root . "/includes/ui.inc");
 include($path_to_root . "/includes/system_tests.inc");
 include($path_to_root . "/admin/db/maintenance_db.inc");
 include($path_to_root . "/includes/packages.inc");
-@include($path_to_root . "/installed_extensions.php");
+if (file_exists($path_to_root . "/installed_extensions.php"))
+       include($path_to_root . "/installed_extensions.php");
 //-------------------------------------------------------------------------------------------------
 
 function subpage_title($txt) 
@@ -173,11 +174,10 @@ function do_install() {
                        return false;
                }
                // update default language
-               include_once($path_to_root . "/lang/installed_languages.inc");
+               if (file_exists($path_to_root . "/lang/installed_languages.inc"))
+                       include_once($path_to_root . "/lang/installed_languages.inc");
                $dflt_lang = $_POST['lang'];
                write_lang();
-               if (!isset($installed_extensions))
-                       update_extensions(array());
                return true;
        }
        return false;
@@ -262,11 +262,11 @@ elseif(get_post('install_coas'))
                        $ret &= install_extension($package);
                }
        if ($ret) {
-               @include($path_to_root.'/installed_extensions.php');
+               if (file_exists($path_to_root . '/installed_extensions.php'))
+                       include($path_to_root.'/installed_extensions.php');
                $_POST['Page'] = 5;
        }
-}
-elseif (isset($_POST['set_admin'])) {
+} elseif (isset($_POST['set_admin'])) {
        // check company settings
        if (get_post('name')=='') {
                display_error(_('Company name cannot be empty.'));
@@ -371,6 +371,11 @@ start_form();
                                        $_POST[$name] = $val;
                                set_focus('name');
                        }
+                       if (!isset($installed_extensions)) {
+                               $installed_extensions = array();
+                               update_extensions($installed_extensions);
+                       }
+
                        subpage_title(_('Company Settings'));
                        start_table(TABLESTYLE);
                        text_row_ex(_("Company Name:"), 'name', 30);
index 77540a76dde0dfacc37296a6c1291e0afaab4e7f..0f7cae89e9dfc7db17bc374b4d72e56efed5aff8 100644 (file)
@@ -93,7 +93,7 @@ $Ajax = new Ajax();
 get_text_init();
 
 $i_lang = isset($_POST['inst_lang']) ? $_POST['inst_lang'] : 
-       (isset($_SESSION['inst_set']['inst_lang']) ? $_SESSION['inst_set']['inst_lang'] : 'C');
+       (isset($_SESSION['inst_set']['inst_lang']) ? $_SESSION['inst_set']['inst_lang'] : array('C'));
 
 // Page Initialisation
 if (!isset($_SESSION['language']) || !method_exists($_SESSION['language'], 'set_language')
@@ -103,6 +103,8 @@ if (!isset($_SESSION['language']) || !method_exists($_SESSION['language'], 'set_
        $_SESSION['language'] = new language($l['name'], $l['code'], $l['encoding'],
         isset($l['rtl']) ? 'rtl' : 'ltr');
 }
+if (!isset($installed_languages))
+       $installed_languages = array();
 
 $_SESSION['language']->set_language($_SESSION['language']->code);
 $_SESSION['get_text']->add_domain( $_SESSION['language']->code, $path_to_root."/install/lang");