//
function clean_user_themes($theme)
{
- global $db_connections, $db, $installed_extensions;
+ global $db_connections, $db;
$comp = user_company();
- foreach ($db_connections as $n => $conn) {
+ $connections = $db_connections; // do not use db_connections directly here, or script will hang due to db_connections usage inside the loop
+ foreach ($connections as $n => $conn) {
$db = $_SESSION["wa_current_user"]->set_db_connection($n);
$sql = "UPDATE {$conn['tbpref']}users SET theme='default' WHERE theme='$theme'";
if (!db_query($sql, 'Cannot update user theme settings'))
return false;
}
$db = $_SESSION["wa_current_user"]->set_db_connection($comp);
-
$_SESSION['wa_current_user']->prefs->theme = 'default';
return true;
}
//---------------------------------------------------------------------------------------------
-if (($id = find_submit('Delete', false))
+if (($id = find_submit('Delete', false)) && isset($installed_extensions[$id])
&& clean_user_themes($installed_extensions[$id]['package']))
{
$extensions = get_company_extensions();
$theme = $extensions[$id]['package'];
+ $path = $extensions[$id]['path'];
+
if (uninstall_package($theme)) {
- $dirname = $path_to_root.'/themes/'.$theme;
+ $dirname = $path_to_root.'/'.$path;
flush_dir($dirname, true);
rmdir($dirname);
unset($extensions[$id]);
$th = array(_("Theme"), _("Installed"), _("Available"), "", "");
$k = 0;
+
$mods = get_themes_list();
if (!$mods)
if ($available && check_pkg_upgrade($installed, $available)) // outdated or not installed theme in repo
button_cell('Update'.$pkg_name, $installed ? _("Update") : _("Install"),
- _('Upload and install latest extension package'), ICON_DOWN);
+ _('Upload and install latest extension package'), ICON_DOWN, 'process');
else
label_cell('');