newTemplate('templates/web_backup_list.htm'); //* Loading language file $lng_file = "lib/lang/".$app->functions->check_language($_SESSION["s"]["language"])."_web_backup_list.lng"; include $lng_file; $listTpl->setVar($wb); $message = ''; $error = ''; if(isset($_GET['backup_action'])) { $backup_id = $app->functions->intval($_GET['backup_id']); //* check if the user is owner of the parent domain $domain_backup = $app->db->queryOneRecord("SELECT parent_domain_id FROM web_backup WHERE backup_id = ?", $backup_id); $check_perm = 'u'; if($_GET['backup_action'] == 'download') $check_perm = 'r'; // only check read permissions on download, not update permissions $get_domain = $app->db->queryOneRecord("SELECT domain_id FROM web_domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL($check_perm), $domain_backup["parent_domain_id"]); if(empty($get_domain) || !$get_domain) { $app->error($app->tform->lng('no_domain_perm')); } if($_GET['backup_action'] == 'download' && $backup_id > 0) { $server_id = $this->form->dataRecord['server_id']; $backup = $app->db->queryOneRecord("SELECT * FROM web_backup WHERE backup_id = ?", $backup_id); if($backup['server_id'] > 0) $server_id = $backup['server_id']; $sql = "SELECT count(action_id) as number FROM sys_remoteaction WHERE action_state = 'pending' AND action_type = 'backup_download' AND action_param = ?"; $tmp = $app->db->queryOneRecord($sql, $backup_id); if($tmp['number'] == 0) { $message .= $wb['download_info_txt']; $sql = "INSERT INTO sys_remoteaction (server_id, tstamp, action_type, action_param, action_state, response) " . "VALUES (?, UNIX_TIMESTAMP(), 'backup_download', ?, 'pending', '')"; $app->db->query($sql, $server_id, $backup_id); } else { $error .= $wb['download_pending_txt']; } } if($_GET['backup_action'] == 'restore' && $backup_id > 0) { $server_id = $this->form->dataRecord['server_id']; $backup = $app->db->queryOneRecord("SELECT * FROM web_backup WHERE backup_id = ?", $backup_id); if($backup['server_id'] > 0) $server_id = $backup['server_id']; $sql = "SELECT count(action_id) as number FROM sys_remoteaction WHERE action_state = 'pending' AND action_type = 'backup_restore' AND action_param = ?"; $tmp = $app->db->queryOneRecord($sql, $backup_id); if($tmp['number'] == 0) { $message .= $wb['restore_info_txt']; $sql = "INSERT INTO sys_remoteaction (server_id, tstamp, action_type, action_param, action_state, response) " . "VALUES (?, UNIX_TIMESTAMP(), 'backup_restore', ?, 'pending', '')"; $app->db->query($sql, $server_id, $backup_id); } else { $error .= $wb['restore_pending_txt']; } } if($_GET['backup_action'] == 'delete' && $backup_id > 0) { $server_id = $this->form->dataRecord['server_id']; $backup = $app->db->queryOneRecord("SELECT * FROM web_backup WHERE backup_id = ?", $backup_id); if($backup['server_id'] > 0) $server_id = $backup['server_id']; $sql = "SELECT count(action_id) as number FROM sys_remoteaction WHERE action_state = 'pending' AND action_type = 'backup_delete' AND action_param = ?"; $tmp = $app->db->queryOneRecord($sql, $backup_id); if($tmp['number'] == 0) { $message .= $wb['delete_info_txt']; $sql = "INSERT INTO sys_remoteaction (server_id, tstamp, action_type, action_param, action_state, response) " . "VALUES (?, UNIX_TIMESTAMP(), 'backup_delete', ?, 'pending', '')"; $app->db->query($sql, $server_id, $backup_id); } else { $error .= $wb['delete_pending_txt']; } } } //* Get the data $server_ids = array(); $web = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = ?", $this->form->id); $databases = $app->db->queryAllRecords("SELECT server_id FROM web_database WHERE parent_domain_id = ?", $this->form->id); if($app->functions->intval($web['server_id']) > 0) $server_ids[] = $app->functions->intval($web['server_id']); if(is_array($databases) && !empty($databases)){ foreach($databases as $database){ if($app->functions->intval($database['server_id']) > 0) $server_ids[] = $app->functions->intval($database['server_id']); } } $server_ids = array_unique($server_ids); $sql = "SELECT * FROM web_backup WHERE parent_domain_id = ? AND server_id IN ? ORDER BY tstamp DESC, backup_type ASC"; $records = $app->db->queryAllRecords($sql, $this->form->id, $server_ids); $bgcolor = "#FFFFFF"; if(is_array($records)) { foreach($records as $rec) { // Change of color $bgcolor = ($bgcolor == "#FFFFFF")?"#EEEEEE":"#FFFFFF"; $rec["bgcolor"] = $bgcolor; $rec['date'] = date($app->lng('conf_format_datetime'), $rec['tstamp']); $rec['backup_type'] = $wb[('backup_type_'.$rec['backup_type'])]; $rec['download_available'] = true; if($rec['server_id'] != $web['server_id']) $rec['download_available'] = false; if($rec['filesize'] > 0){ $rec['filesize'] = $app->functions->currency_format($rec['filesize']/(1024*1024), 'client').' MB'; } $records_new[] = $rec; } } $listTpl->setLoop('records', @$records_new); $listTpl->setVar('parent_id', $this->form->id); $listTpl->setVar('msg', $message); $listTpl->setVar('error', $error); // Setting Returnto information in the session $list_name = 'backup_list'; // $_SESSION["s"]["list"][$list_name]["parent_id"] = $app->tform_actions->id; $_SESSION["s"]["list"][$list_name]["parent_id"] = $this->form->id; $_SESSION["s"]["list"][$list_name]["parent_name"] = $app->tform->formDef["name"]; $_SESSION["s"]["list"][$list_name]["parent_tab"] = $_SESSION["s"]["form"]["tab"]; $_SESSION["s"]["list"][$list_name]["parent_script"] = $app->tform->formDef["action"]; $_SESSION["s"]["form"]["return_to"] = $list_name; return $listTpl->grab(); } } ?>