Browse Source

vchamilo add check database connection

jmontoyaa 8 years ago
parent
commit
78f130df29

+ 34 - 27
plugin/vchamilo/lib/Virtual.php

@@ -852,7 +852,7 @@ class Virtual
 
     /**
      * @param object $instance
-     * @return \Doctrine\DBAL\Connection
+     * @return bool|\Doctrine\DBAL\Connection
      */
     public static function getConnectionFromInstance($instance, $getManager = false)
     {
@@ -888,8 +888,10 @@ class Virtual
 
             return $manager->getConnection();
         } catch (Exception $e) {
-            echo $e->getMessage();
+            error_log($e->getMessage());
         }
+
+        return false;
     }
 
     /**
@@ -938,6 +940,17 @@ class Virtual
             return ;
         }
 
+        $connection = Virtual::getConnectionFromInstance($data);
+        if (!$connection) {
+            Display::addFlash(
+                Display::return_message(
+                    'Cannot connect to database with params: '.print_r($data, 1),
+                    'error'
+                )
+            );
+            return ;
+        }
+
         $data->root_web = api_add_trailing_slash($data->root_web);
 
         self::ctrace('Registering: '.$data->root_web);
@@ -1208,18 +1221,6 @@ class Virtual
         self::ctrace("Finished");
     }
 
-    /**
-     * @param stdClass $params
-     */
-    public static function upgradeInstance($params)
-    {
-        $connection = Virtual::getConnectionFromInstance($params);
-        $statement = $connection->query('SELECT * FROM settings_current');
-        $settings = $statement->fetchAll();
-        $settings = array_column($settings, 'selected_value', 'variable');
-        $settings['data_base'];
-    }
-
     /**
      * @param string $slug
      *
@@ -1301,19 +1302,25 @@ class Virtual
     public static function canBeUpgraded($instance)
     {
         $connection = Virtual::getConnectionFromInstance($instance);
-        $statement = $connection->query('SELECT * FROM settings_current WHERE variable = "chamilo_database_version"');
-        $settings = $statement->fetchAll();
-        $settings = array_column($settings, 'selected_value', 'variable');
-        $version = $settings['chamilo_database_version'];
-        $versionParts = explode('.', $version);
-        $version = implode('.', [$versionParts[0], $versionParts[1], '0']);
-
-        $currentVersion = api_get_setting('chamilo_database_version');
-        $versionParts = explode('.', $currentVersion);
-        $currentVersion = implode('.', [$versionParts[0], $versionParts[1], '0']);
-
-        if (version_compare($version, $currentVersion, '<')) {
-            return $version;
+        if ($connection) {
+            $sql = 'SELECT * FROM settings_current WHERE variable = "chamilo_database_version"';
+            $statement = $connection->query($sql);
+            $settings = $statement->fetchAll();
+            $settings = array_column($settings, 'selected_value', 'variable');
+            $version = $settings['chamilo_database_version'];
+            $versionParts = explode('.', $version);
+            $version = implode('.', [$versionParts[0], $versionParts[1], '0']);
+
+            $currentVersion = api_get_setting('chamilo_database_version');
+            $versionParts = explode('.', $currentVersion);
+            $currentVersion = implode(
+                '.',
+                [$versionParts[0], $versionParts[1], '0']
+            );
+
+            if (version_compare($version, $currentVersion, '<')) {
+                return $version;
+            }
         }
 
         return false;

+ 0 - 3
plugin/vchamilo/views/editinstance.php

@@ -20,9 +20,6 @@ $registeronly = isset($_REQUEST['registeronly']) ? $_REQUEST['registeronly'] : 0
 $plugin = VChamiloPlugin::create();
 $thisurl = api_get_path(WEB_PLUGIN_PATH).'vchamilo/views/manage.php';
 
-/*$coursePath = Virtual::getConfig('vchamilo', 'course_real_root');
-$homePath = Virtual::getConfig('vchamilo', 'home_real_root');*/
-
 if ($id) {
     $mode = 'update';
 } else {

+ 10 - 6
plugin/vchamilo/views/upgrade.php

@@ -45,15 +45,19 @@ if ($form->validate() && $canBeUpgraded) {
     require_once api_get_path(SYS_CODE_PATH).'install/install.lib.php';
 
     $manager = Virtual::getConnectionFromInstance($instance, true);
-    ob_start();
-    $result = migrateSwitch($canBeUpgraded, $manager, false);
-    $data = ob_get_clean();
-    if ($result) {
-        Display::addFlash(Display::return_message(get_lang('Upgraded')));
+    if ($manager) {
+        ob_start();
+        $result = migrateSwitch($canBeUpgraded, $manager, false);
+        $data = ob_get_clean();
+        if ($result) {
+            Display::addFlash(Display::return_message(get_lang('Upgraded')));
+        } else {
+            Display::addFlash(Display::return_message(get_lang('Error')));
+        }
+        $content = $data;
     } else {
         Display::addFlash(Display::return_message(get_lang('Error')));
     }
-    $content = $data;
 }
 
 $tpl = new Template(get_lang('Upgrade'), true, true, false, true, false);