diff --git a/modules/install/install.controller.php b/modules/install/install.controller.php
index 5c2143df9..e62f5961d 100644
--- a/modules/install/install.controller.php
+++ b/modules/install/install.controller.php
@@ -167,9 +167,14 @@ class installController extends install
if(!$oDB->isConnected()) return $oDB->getError();
// Install all the modules
- $oDB->begin();
- $this->installDownloadedModule();
- $oDB->commit();
+ try {
+ $oDB->begin();
+ $this->installDownloadedModule();
+ $oDB->commit();
+ } catch(Exception $e) {
+ $oDB->rollback();
+ return new Object(-1, $e->getMessage());
+ }
// Create a config file
if(!$this->makeConfigFile()) return new Object(-1, 'msg_install_failed');
@@ -515,6 +520,8 @@ class installController extends install
$file = trim($schema_files[$i]);
if(!$file || substr($file,-4)!='.xml') continue;
$output = $oDB->createTableByXmlFile($file);
+ if($output === false)
+ throw new Exception('msg_create_table_failed');
}
// Create a table and module instance and then execute install() method
unset($oModule);
diff --git a/modules/install/lang/lang.xml b/modules/install/lang/lang.xml
index 75d4b81be..437196e3d 100644
--- a/modules/install/lang/lang.xml
+++ b/modules/install/lang/lang.xml
@@ -808,6 +808,10 @@
+ -
+
+
+
-