diff --git a/install.xml b/install.xml
index 6064c148..cb497580 100644
--- a/install.xml
+++ b/install.xml
@@ -116,6 +116,7 @@ Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.boar
Applied patch for folders with special characters (upload module)
Reworked parts of calendar block
Fixed missing CSS for li-tags of calendar
+ Added error handling to installation of modules
Fehlendes IF $S_BLOCK_ICON hinzugefügt
@@ -125,6 +126,7 @@ Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.boar
Patch für Ordner mit Spezialcharaktern hinzugefügt (Upload Modul)
Teile des Kalender Blocks überarbeitet
Fehlendes CSS für li-tags des Kalenders hinzugefügt
+ Fehlerbehandlung zu Installation von Modulen hinzugefügt
diff --git a/root/includes/acp/acp_portal.php b/root/includes/acp/acp_portal.php
index e893a5f5..766c8750 100644
--- a/root/includes/acp/acp_portal.php
+++ b/root/includes/acp/acp_portal.php
@@ -739,9 +739,29 @@ class acp_portal
$module_id = $db->sql_nextid();
- $c_class->install($module_id);
+ $error = $c_class->install($module_id);
$cache->purge(); // make sure we don't get errors after re-adding a module
+
+ // if something went wrong, handle the errors accordingly and undo the above query
+ if (sizeof($error))
+ {
+ if (is_array($error))
+ {
+ foreach($error as $cur_error)
+ {
+ $error_output = $cur_error . '
';
+ }
+ }
+ else if($error != false)
+ {
+ $error_output = $error;
+ }
+
+ $sql = 'DELETE FROM ' . PORTAL_MODULES_TABLE . ' WHERE module_id = ' . (int) $module_id;
+
+ trigger_error($error_output . adm_back_link($this->u_action));
+ }
meta_refresh(3, append_sid("{$phpbb_admin_path}index.$phpEx", 'i=portal&mode=config&module_id=' . $module_id));