/** * @todo check if it's useful to have the table admin two times in the same query * @param EasySCP_TemplateEngine $tpl */ function gen_reseller_table($tpl) { $cfg = EasySCP_Registry::get('Config'); $sql = EasySCP_Registry::get('Db'); $query = "\n\t\tSELECT\n\t\t\tt1.`admin_id`, t1.`admin_name`, t2.`admin_name` AS created_by\n\t\tFROM\n\t\t\t`admin` AS t1,\n\t\t\t`admin` AS t2\n\t\tWHERE\n\t\t\tt1.`admin_type` = 'reseller'\n\t\tAND\n\t\t\tt1.`created_by` = t2.`admin_id`\n\t\tORDER BY\n\t\t\t`created_by`,\n\t\t\t`admin_id`\n\t"; $rs = exec_query($sql, $query); $i = 0; if ($rs->recordCount() == 0) { set_page_message(tr('Reseller list is empty!'), 'info'); } else { while (!$rs->EOF) { $admin_id = $rs->fields['admin_id']; $admin_id_var_name = "admin_id_" . $admin_id; $tpl->append(array('NUMBER' => $i + 1, 'RESELLER_NAME' => tohtml($rs->fields['admin_name']), 'OWNER' => tohtml($rs->fields['created_by']), 'CKB_NAME' => $admin_id_var_name)); $rs->moveNext(); $i++; } $tpl->assign('PAGE_MESSAGE', ''); } $query = "\n\t\tSELECT\n\t\t\t`admin_id`, `admin_name`\n\t\tFROM\n\t\t\t`admin`\n\t\tWHERE\n\t\t\t`admin_type` = 'admin'\n\t\tORDER BY\n\t\t\t`admin_name`\n\t"; $rs = exec_query($sql, $query); while (!$rs->EOF) { if (isset($_POST['uaction']) && $_POST['uaction'] === 'reseller_owner' && (isset($_POST['dest_admin']) && $_POST['dest_admin'] == $rs->fields['admin_id'])) { $selected = $cfg->HTML_SELECTED; } else { $selected = ''; } $tpl->append(array('OPTION' => tohtml($rs->fields['admin_name']), 'VALUE' => $rs->fields['admin_id'], 'SELECTED' => $selected)); $rs->moveNext(); } $tpl->assign('PAGE_MESSAGE', ''); }
/** * @param EasySCP_TemplateEngine $tpl */ function gen_user_table($tpl) { $cfg = EasySCP_Registry::get('Config'); $sql = EasySCP_Registry::get('Db'); $query = "\n\t\tSELECT\n\t\t\t`admin_id`, `admin_name`\n\t\tFROM\n\t\t\t`admin`\n\t\tWHERE\n\t\t\t`admin_type` = 'reseller'\n\t\tORDER BY\n\t\t\t`admin_name`\n\t"; $rs = exec_query($sql, $query); if ($rs->recordCount() == 0) { set_page_message(tr('Reseller or user list is empty!'), 'info'); user_goto('manage_users.php'); } $reseller_id = $rs->fields['admin_id']; $all_resellers = array(); while (!$rs->EOF) { if (isset($_POST['uaction']) && $_POST['uaction'] === 'change_src' && (isset($_POST['src_reseller']) && $_POST['src_reseller'] == $rs->fields['admin_id'])) { $selected = $cfg->HTML_SELECTED; $reseller_id = $_POST['src_reseller']; } else { if (isset($_POST['uaction']) && $_POST['uaction'] === 'move_user' && (isset($_POST['dst_reseller']) && $_POST['dst_reseller'] == $rs->fields['admin_id'])) { $selected = $cfg->HTML_SELECTED; $reseller_id = $_POST['dst_reseller']; } else { $selected = ''; } } $all_resellers[] = $rs->fields['admin_id']; $tpl->append(array('SRC_RSL_OPTION' => tohtml($rs->fields['admin_name']), 'SRC_RSL_VALUE' => $rs->fields['admin_id'], 'SRC_RSL_SELECTED' => $selected)); $tpl->append(array('DST_RSL_OPTION' => tohtml($rs->fields['admin_name']), 'DST_RSL_VALUE' => $rs->fields['admin_id'], 'DST_RSL_SELECTED' => '')); $rs->moveNext(); } if (isset($_POST['src_reseller']) && $_POST['src_reseller'] == 0) { $selected = $cfg->HTML_SELECTED; $reseller_id = 0; } else { $selected = ''; } $tpl->append(array('SRC_RSL_OPTION' => tr("N/A"), 'SRC_RSL_VALUE' => 0, 'SRC_RSL_SELECTED' => $selected)); if ($reseller_id === 0) { $query = "\n\t\t\tSELECT\n\t\t\t\t`admin_id`, `admin_name`\n\t\t\tFROM\n\t\t\t\t`admin`\n\t\t\tWHERE\n\t\t\t\t`admin_type` = 'user'\n\t\t\tAND\n\t\t\t\t`created_by` NOT IN (?)\n\t\t\tORDER BY\n\t\t\t\t`admin_name`\n\t\t"; $not_in = implode(',', $all_resellers); $rs = exec_query($sql, $query, $not_in); } else { $query = "\n\t\t\tSELECT\n\t\t\t\t`admin_id`, `admin_name`\n\t\t\tFROM\n\t\t\t\t`admin`\n\t\t\tWHERE\n\t\t\t\t`admin_type` = 'user'\n\t\t\tAND\n\t\t\t\t`created_by` = ?\n\t\t\tORDER BY\n\t\t\t\t`admin_name`\n\t\t"; $rs = exec_query($sql, $query, $reseller_id); } if ($rs->recordCount() == 0) { set_page_message(tr('User list is empty!'), 'info'); $tpl->assign('RESELLER_LIST', ''); } else { $i = 0; while (!$rs->EOF) { $admin_id = $rs->fields['admin_id']; $admin_id_var_name = 'admin_id_' . $admin_id; $show_admin_name = decode_idna($rs->fields['admin_name']); $tpl->append(array('NUMBER' => $i + 1, 'USER_NAME' => tohtml($show_admin_name), 'CKB_NAME' => $admin_id_var_name)); $rs->moveNext(); $i++; } } }
/** * @param EasySCP_TemplateEngine $tpl */ function gen_directories($tpl) { $sql = EasySCP_Registry::get('Db'); // Initialize variables $path = isset($_GET['cur_dir']) ? $_GET['cur_dir'] : ''; $domain = $_SESSION['user_logged']; // Create the virtual file system and open it so it can be used $vfs = new EasySCP_VirtualFileSystem($domain, $sql); // Get the directory listing $list = $vfs->ls($path); if (!$list) { set_page_message(tr('Cannot open directory!<br />Please contact your administrator!'), 'error'); return; } // Show parent directory link $parent = explode(DIRECTORY_SEPARATOR, $path); array_pop($parent); $parent = implode(DIRECTORY_SEPARATOR, $parent); $tpl->append(array('ACTION' => '', 'ACTION_LINK' => 'no', 'ICON' => "parent", 'DIR_NAME' => tr('Parent Directory'), 'CHOOSE_IT' => '', 'LINK' => 'ftp_choose_dir.php?cur_dir=' . $parent)); // Show directories only foreach ($list as $entry) { // Skip non-directory entries if ($entry['type'] != EasySCP_VirtualFileSystem::VFS_TYPE_DIR) { continue; } // Skip '.' and '..' if ($entry['file'] == '.' || $entry['file'] == '..') { continue; } // Check for .htaccess existence to display another icon $dr = $path . '/' . $entry['file']; $tfile = $dr . '/.htaccess'; if ($vfs->exists($tfile)) { $image = "locked"; } else { $image = "folder"; } // Check if folder does not contain a folder that can not be protected // @todo: valid directories (e.g. /htdocs/disabled/) are excluded (false positive) $forbiddenDirnames = '/backups|disabled|errors|logs|phptmp/i'; $forbidden = preg_match($forbiddenDirnames, $entry['file']); if ($forbidden === 1) { $tpl->append('ACTION_LINK', 'no'); } else { $tpl->append('ACTION_LINK', 'yes'); } // Create the directory link $tpl->append(array('PROTECT_IT' => "protected_areas_add.php?file=" . $dr, 'ICON' => $image, 'DIR_NAME' => tohtml($entry['file']), 'CHOOSE_IT' => $dr, 'LINK' => "ftp_choose_dir.php?cur_dir=" . $dr)); } }
/** * @param EasySCP_TemplateEngine $tpl * @param EasySCP_Database $sql * @param int $dmn_id */ function gen_pgroups($tpl, $sql, &$dmn_id) { $cfg = EasySCP_Registry::get('Config'); $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`htaccess_groups`\n\t\tWHERE\n\t\t\t`dmn_id` = ?\n\t\tORDER BY\n\t\t\t`dmn_id` DESC\n\t"; $rs = exec_query($sql, $query, $dmn_id); if ($rs->recordCount() == 0) { $tpl->assign('GROUP_MESSAGE', tr('You have no groups!')); } else { while (!$rs->EOF) { $tpl->append(array('GNAME' => tohtml($rs->fields['ugroup']), 'GSTATUS' => translate_dmn_status($rs->fields['status']), 'GROUP_ID' => $rs->fields['id'], 'GROUP_DELETE' => tr('Delete'), 'GROUP_DELETE_SCRIPT' => $rs->fields['status'] === $cfg->ITEM_OK_STATUS && $rs->fields['ugroup'] != $cfg->AWSTATS_GROUP_AUTH ? "action_delete('protected_group_delete.php?gname=" . $rs->fields['id'] . "', '" . $rs->fields['ugroup'] . "')" : tr('N/A'))); if ($rs->fields['members'] != '') { $group_members = ''; $members = explode(',', $rs->fields['members']); $cnt_members = count($members); for ($i = 0; $i < $cnt_members; $i++) { $query = "\n\t\t\t\t\t\tSELECT\n\t\t\t\t\t\t\t`uname`\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t`htaccess_users`\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t`id` = ?\n\t\t\t\t\t"; $rs_members = exec_query($sql, $query, $members[$i]); if ($cnt_members == 1 || $cnt_members == $i + 1) { $group_members .= tohtml($rs_members->fields['uname']); } else { $group_members .= tohtml($rs_members->fields['uname']) . ', '; } } $tpl->append('MEMBER', $group_members); } else { $tpl->append('MEMBER', ''); } $rs->moveNext(); } } }
/** * Get Server IPs * @param EasySCP_TemplateEngine $tpl */ function get_server_ip($tpl) { $cfg = EasySCP_Registry::get('Config'); $sql = EasySCP_Registry::get('Db'); $query = "\n\t\tSELECT\n\t\t\t`ip_id`, `ip_number`, `ip_domain`\n\t\tFROM\n\t\t\t`server_ips`\n\t\tORDER BY\n\t\t\t`ip_number`\n\t"; $rs = exec_query($sql, $query); $i = 0; $reseller_ips = ''; if ($rs->recordCount() == 0) { $tpl->assign(array('RSL_IP_MESSAGE' => tr('Reseller IP list is empty!'), 'RSL_IP_MESSAGE_TYPE' => 'info')); } else { $tpl->assign(array('TR_RSL_IP_NUMBER' => tr('No.'), 'TR_RSL_IP_ASSIGN' => tr('Assign'), 'TR_RSL_IP_LABEL' => tr('Label'), 'TR_RSL_IP_IP' => tr('Number'))); while (!$rs->EOF) { $ip_id = $rs->fields['ip_id']; $ip_var_name = "ip_{$ip_id}"; if (isset($_POST[$ip_var_name]) && $_POST[$ip_var_name] == 'asgned') { $ip_item_assigned = $cfg->HTML_CHECKED; $reseller_ips .= "{$ip_id};"; } else { $ip_item_assigned = ''; } $tpl->append(array('RSL_IP_NUMBER' => $i + 1, 'RSL_IP_LABEL' => $rs->fields['ip_domain'], 'RSL_IP_IP' => $rs->fields['ip_number'], 'RSL_IP_CKB_NAME' => $ip_var_name, 'RSL_IP_CKB_VALUE' => 'asgned', 'RSL_IP_ITEM_ASSIGNED' => $ip_item_assigned)); $rs->moveNext(); $i++; } } return $reseller_ips; }
/** * Generate List of Domains assigned to IPs * * @param EasySCP_TemplateEngine $tpl */ function listIPDomains($tpl) { $sql = EasySCP_Registry::get('Db'); $query = "\n\t\tSELECT\n\t\t\tip_id, ip_number, ip_number_v6\n\t\tFROM\n\t\t\tserver_ips;\n\t"; $rs = exec_query($sql, $query); while (!$rs->EOF) { $no_domains = false; $no_alias_domains = false; $domains = array(); $reseller = array(); $query = "\n\t\t\tSELECT\n\t\t\t\t`d`.`domain_name`, `a`.`admin_name`\n\t\t\tFROM\n\t\t\t\t`domain` d\n\t\t\tINNER JOIN\n\t\t\t\t`admin` a\n\t\t\tON\n\t\t\t\t(`a`.`admin_id` = `d`.`domain_created_id`)\n\t\t\tWHERE\n\t\t\t\t`d`.`domain_ip_id` = ?\n\t\t\tORDER BY\n\t\t\t\t`d`.`domain_name`;\n\t\t"; $rs2 = exec_query($sql, $query, $rs->fields['ip_id']); $domain_count = $rs2->recordCount(); if ($rs2->recordCount() == 0) { $no_domains = true; } while (!$rs2->EOF) { $domains[] = $rs2->fields['domain_name']; $reseller[] = $rs2->fields['admin_name']; $rs2->moveNext(); } $query = "\n\t\t\tSELECT\n\t\t\t\t`da`.`alias_name`, `a`.`admin_name`\n\t\t\tFROM\n\t\t\t\t`domain_aliasses` da\n\t\t\tINNER JOIN\n\t\t\t\t`domain` d\n\t\t\tON\n\t\t\t\t(`d`.`domain_id` = `da`.`domain_id`)\n\t\t\tINNER JOIN\n\t\t\t\t`admin` a\n\t\t\tON\n\t\t\t\t(`a`.`admin_id` = `d`.`domain_created_id`)\n\t\t\tWHERE\n\t\t\t\t`da`.`alias_ip_id` = ?\n\t\t\tORDER BY\n\t\t\t\t`da`.`alias_name`;\n\t\t"; $rs3 = exec_query($sql, $query, $rs->fields['ip_id']); $alias_count = $rs3->recordCount(); if ($rs3->recordCount() == 0) { $no_alias_domains = true; } while (!$rs3->EOF) { $domains[] = $rs3->fields['alias_name']; $reseller[] = $rs3->fields['admin_name']; $rs3->moveNext(); } if ($no_domains && $no_alias_domains) { $tpl->append(array('DOMAIN_NAME' => array(tr("No records found")), 'RESELLER_NAME' => array(''))); } else { $tpl->append(array('DOMAIN_NAME' => $domains, 'RESELLER_NAME' => $reseller)); } $tpl->append(array('IP' => $rs->fields['ip_number_v6'] != '' ? $rs->fields['ip_number'] . ' / ' . $rs->fields['ip_number_v6'] : $rs->fields['ip_number'], 'RECORD_COUNT' => tr('Total Domains') . " : " . ($domain_count + $alias_count))); $rs->moveNext(); } // end while }
/** * @param EasySCP_TemplateEngine $tpl */ function gen_user_sessions($tpl) { $sql = EasySCP_Registry::get('Db'); $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`login`\n\t"; $rs = exec_query($sql, $query); while (!$rs->EOF) { if ($rs->fields['user_name'] === NULL) { $tpl->append(array('ADMIN_USERNAME' => tr('Unknown'), 'LOGIN_TIME' => date("G:i:s", $rs->fields['lastaccess']))); } else { $tpl->append(array('ADMIN_USERNAME' => $rs->fields['user_name'], 'LOGIN_TIME' => date("G:i:s", $rs->fields['lastaccess']))); } $sess_id = session_id(); if ($sess_id === $rs->fields['session_id']) { $tpl->append('KILL_LINK', 'sessions_manage.php'); } else { $tpl->append('KILL_LINK', 'sessions_manage.php?kill=' . $rs->fields['session_id']); } $rs->moveNext(); } }
/** * @param EasySCP_TemplateEngine $tpl * @param EasySCP_Database $sql * @param int $dmn_id */ function gen_htaccess_entries($tpl, $sql, &$dmn_id) { $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`htaccess`\n\t\tWHERE\n\t\t\t`dmn_id` = ?\n\t"; $rs = exec_query($sql, $query, $dmn_id); if ($rs->recordCount() == 0) { set_page_message(tr('You do not have protected areas'), 'info'); } else { while (!$rs->EOF) { $auth_name = $rs->fields['auth_name']; $tpl->append(array('AREA_NAME' => tohtml($auth_name), 'JS_AREA_NAME' => addslashes($auth_name), 'AREA_PATH' => tohtml($rs->fields['path']), 'PID' => $rs->fields['id'], 'STATUS' => translate_dmn_status($rs->fields['status']))); $rs->moveNext(); } } }
/** * @param EasySCP_TemplateEngine $tpl */ function generate_page($tpl) { $sql = EasySCP_Registry::get('Db'); global $month, $year, $day; $all[0] = 0; $all[1] = 0; $all[2] = 0; $all[3] = 0; $all[4] = 0; $all[5] = 0; $all[6] = 0; $all[7] = 0; $all_other_in = 0; $all_other_out = 0; $ftm = mktime(0, 0, 0, $month, $day, $year); $ltm = mktime(0, 0, 0, $month, $day + 1, $year); $query = "\n\t\tSELECT\n\t\t\tCOUNT(`bytes_in`) AS cnt\n\t\tFROM\n\t\t\t`server_traffic`\n\t\tWHERE\n\t\t\t`traff_time` > ? AND `traff_time` <= ?\n\t"; $rs = exec_query($sql, $query, array($ftm, $ltm)); $dnum = $rs->fields['cnt']; $query = "\n\t\tSELECT\n\t\t\t`traff_time` AS ttime,\n\t\t\t`bytes_in` AS sbin,\n\t\t\t`bytes_out` AS sbout,\n\t\t\t`bytes_mail_in` AS smbin,\n\t\t\t`bytes_mail_out` AS smbout,\n\t\t\t`bytes_pop_in` AS spbin,\n\t\t\t`bytes_pop_out` AS spbout,\n\t\t\t`bytes_web_in` AS swbin,\n\t\t\t`bytes_web_out` AS swbout\n\t\tFROM\n\t\t\t`server_traffic`\n\t\tWHERE\n\t\t\t`traff_time` > ? AND `traff_time` <= ?\n\t"; $rs1 = exec_query($sql, $query, array($ftm, $ltm)); if ($dnum != 0) { for ($i = 0; $i < $dnum; $i++) { // make it in kb mb or bytes :) $ttime = date('H:i', $rs1->fields['ttime']); // make other traffic $other_in = $rs1->fields['sbin'] - ($rs1->fields['swbin'] + $rs1->fields['smbin'] + $rs1->fields['spbin']); $other_out = $rs1->fields['sbout'] - ($rs1->fields['swbout'] + $rs1->fields['smbout'] + $rs1->fields['spbout']); $tpl->append(array('HOUR' => $ttime, 'WEB_IN' => sizeit($rs1->fields['swbin']), 'WEB_OUT' => sizeit($rs1->fields['swbout']), 'SMTP_IN' => sizeit($rs1->fields['smbin']), 'SMTP_OUT' => sizeit($rs1->fields['smbout']), 'POP_IN' => sizeit($rs1->fields['spbin']), 'POP_OUT' => sizeit($rs1->fields['spbout']), 'OTHER_IN' => sizeit($other_in), 'OTHER_OUT' => sizeit($other_out), 'ALL_IN' => sizeit($rs1->fields['sbin']), 'ALL_OUT' => sizeit($rs1->fields['sbout']), 'ALL' => sizeit($rs1->fields['sbin'] + $rs1->fields['sbout']))); $all[0] = $all[0] + $rs1->fields['swbin']; $all[1] = $all[1] + $rs1->fields['swbout']; $all[2] = $all[2] + $rs1->fields['smbin']; $all[3] = $all[3] + $rs1->fields['smbout']; $all[4] = $all[4] + $rs1->fields['spbin']; $all[5] = $all[5] + $rs1->fields['spbout']; $all[6] = $all[6] + $rs1->fields['sbin']; $all[7] = $all[7] + $rs1->fields['sbout']; $rs1->moveNext(); } // end for $all_other_in = $all[6] - ($all[0] + $all[2] + $all[4]); $all_other_out = $all[7] - ($all[1] + $all[3] + $all[5]); } $tpl->assign(array('WEB_IN_ALL' => sizeit($all[0]), 'WEB_OUT_ALL' => sizeit($all[1]), 'SMTP_IN_ALL' => sizeit($all[2]), 'SMTP_OUT_ALL' => sizeit($all[3]), 'POP_IN_ALL' => sizeit($all[4]), 'POP_OUT_ALL' => sizeit($all[5]), 'OTHER_IN_ALL' => sizeit($all_other_in), 'OTHER_OUT_ALL' => sizeit($all_other_out), 'ALL_IN_ALL' => sizeit($all[6]), 'ALL_OUT_ALL' => sizeit($all[7]), 'ALL_ALL' => sizeit($all[6] + $all[7]))); }
/** * @param EasySCP_TemplateEngine $tpl * @param EasySCP_Database $sql * @param int $db_id */ function gen_db_user_list($tpl, $sql, $db_id) { global $count; $query = "\n\t\tSELECT\n\t\t\t`sqlu_id`, `sqlu_name`\n\t\tFROM\n\t\t\t`sql_user`\n\t\tWHERE\n\t\t\t`sqld_id` = ?\n\t\tORDER BY\n\t\t\t`sqlu_name`\n\t"; $rs = exec_query($sql, $query, $db_id); $users = array(); if ($rs->recordCount() > 0) { while (!$rs->EOF) { $count++; $user_id = $rs->fields['sqlu_id']; $user_mysql = $rs->fields['sqlu_name']; $users[] = array('DB_USER' => tohtml($user_mysql), 'DB_USER_JS' => tojs($user_mysql), 'USER_ID' => $user_id); $rs->moveNext(); } } $tpl->append('DB_USERLIST', $users); return count($users); }
/** * @param EasySCP_TemplateEngine $tpl */ function generate_page($tpl) { $cfg = EasySCP_Registry::get('Config'); $sql = EasySCP_Registry::get('Db'); $start_index = 0; $rows_per_page = 12; if (isset($_GET['psi']) && is_numeric($_GET['psi'])) { $start_index = intval($_GET['psi']); } $count_query = "\n\t\tSELECT\n\t\t\tCOUNT(`log_id`) AS cnt\n\t\tFROM\n\t\t\t`log`;\n\t"; $query = "\n\t\tSELECT\n\t\t\tDATE_FORMAT(`log_time`, '%Y-%m-%d %H:%i') AS dat, `log_message`\n\t\tFROM\n\t\t\t`log`\n\t\tORDER BY\n\t\t\t`log_time` DESC\n\t\tLIMIT\n\t\t\t{$start_index}, {$rows_per_page};\n\t"; $rs = exec_query($sql, $count_query); $records_count = $rs->fields['cnt']; $rs = exec_query($sql, $query); if ($rs->rowCount() == 0) { // set_page_message(tr('Log is empty!'), 'info'); $tpl->assign(array('PAG_MESSAGE' => tr('Log is empty!'))); } else { $prev_si = $start_index - $rows_per_page; if ($start_index == 0) { $tpl->assign('SCROLL_PREV', ''); } else { $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prev_si)); } $next_si = $start_index + $rows_per_page; if ($next_si + 1 > $records_count) { $tpl->assign('SCROLL_NEXT', ''); } else { $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $next_si)); } $tpl->assign(array('PAGE_MESSAGE' => '')); while (!$rs->EOF) { $log_message = $rs->fields['log_message']; $replaces = array('/[^a-zA-Z](delete[sd]?)[^a-zA-Z]/i' => ' <strong style="color:#f00">\\1</strong> ', '/[^a-zA-Z](remove[sd]?)[^a-zA-Z]/i' => ' <strong style="color:#f00">\\1</strong> ', '/[^a-zA-Z](add(s|ed)?)[^a-zA-Z]/i' => ' <strong style="color:#3c6">\\1</strong> ', '/[^a-zA-Z](change[sd]?)[^a-zA-Z]/i' => ' <strong style="color:#30f">\\1</strong> ', '/[^a-zA-Z](update[sd]?)[^a-zA-Z]/i' => ' <strong style="color:#30f">\\1</strong> ', '/[^a-zA-Z](edit(s|ed)?)[^a-zA-Z]/i' => ' <strong style="color:#3c6">\\1</strong> ', '/[^a-zA-Z](unknown)[^a-zA-Z]/i' => ' <strong style="color:#c0f">\\1</strong> ', '/[^a-zA-Z](logged)[^a-zA-Z]/i' => ' <strong style="color:#360">\\1</strong> ', '/[^a-zA-Z]((session )?manipulation)[^a-zA-Z]/i' => ' <strong style="color:#f00">\\1</strong> ', '/[^a-zA-Z]*(Warning[\\!]?)[^a-zA-Z]/i' => ' <strong style="color:#f00">\\1</strong> ', '/(bad password login data)/i' => ' <strong style="color:#f00">\\1</strong> '); foreach ($replaces as $pattern => $replacement) { $log_message = preg_replace($pattern, $replacement, $log_message); } $date_formt = $cfg->DATE_FORMAT . ' H:i'; $tpl->append(array('ADM_MESSAGE' => $log_message, 'DATE' => date($date_formt, strtotime($rs->fields['dat'])))); $rs->moveNext(); } // end while } }
/** * Generate List of Domains assigned to IPs * * @param EasySCP_TemplateEngine $tpl The TPL object * @param EasySCP_Database $sql The SQL object */ function listIPDomains($tpl, $sql) { global $reseller_id; $query = "\n\t\tSELECT\n\t\t\t`reseller_ips`\n\t\tFROM\n\t\t\t`reseller_props`\n\t\tWHERE\n\t\t\t`reseller_id` = ?;\n\t"; $res = exec_query($sql, $query, $reseller_id); $data = $res->fetchRow(); $reseller_ips = explode(";", substr($data['reseller_ips'], 0, -1)); $query = "\n\t\tSELECT\n\t\t\t`ip_id`, `ip_number`\n\t\tFROM\n\t\t\t`server_ips`\n\t\tWHERE\n\t\t\t`ip_id`\n\t\tIN\n\t\t\t(" . implode(',', $reseller_ips) . ");\n\t"; $rs = exec_query($sql, $query); while (!$rs->EOF) { $no_domains = false; $no_alias_domains = false; $domains = array(); $query = "\n\t\t\tSELECT\n\t\t\t\t`d`.`domain_name`, `a`.`admin_name`\n\t\t\tFROM\n\t\t\t\t`domain` d\n\t\t\tINNER JOIN\n\t\t\t\t`admin` a\n\t\t\tON\n\t\t\t\t(`a`.`admin_id` = `d`.`domain_created_id`)\n\t\t\tWHERE\n\t\t\t\t`d`.`domain_ip_id` = ?\n\t\t\tAND\n\t\t\t\t`d`.`domain_created_id` = ?\n\t\t\tORDER BY\n\t\t\t\t`d`.`domain_name`;\n\t\t"; $rs2 = exec_query($sql, $query, array($rs->fields['ip_id'], $reseller_id)); $domain_count = $rs2->recordCount(); if ($rs2->recordCount() == 0) { $no_domains = true; } while (!$rs2->EOF) { $domains[] = $rs2->fields['domain_name']; $rs2->moveNext(); } $query = "\n\t\t\tSELECT\n\t\t\t\t`da`.`alias_name`, `a`.`admin_name`\n\t\t\tFROM\n\t\t\t\t`domain_aliasses` da\n\t\t\tINNER JOIN\n\t\t\t\t`domain` d\n\t\t\tON\n\t\t\t\t(`d`.`domain_id` = `da`.`domain_id`)\n\t\t\tINNER JOIN\n\t\t\t\t`admin` a\n\t\t\tON\n\t\t\t\t(`a`.`admin_id` = `d`.`domain_created_id`)\n\t\t\tWHERE\n\t\t\t\t`da`.`alias_ip_id` = ?\n\t\t\tAND\n\t\t\t\t`d`.`domain_created_id` = ?\n\t\t\tORDER BY\n\t\t\t\t`da`.`alias_name`;\n\t\t"; $rs3 = exec_query($sql, $query, array($rs->fields['ip_id'], $reseller_id)); $alias_count = $rs3->recordCount(); if ($rs3->recordCount() == 0) { $no_alias_domains = true; } while (!$rs3->EOF) { $domains[] = $rs3->fields['alias_name']; $rs3->moveNext(); } if ($no_domains && $no_alias_domains) { $tpl->append('DOMAIN_NAME', array(tr("No records found"))); } else { $tpl->append('DOMAIN_NAME', $domains); } $tpl->append(array('IP' => $rs->fields['ip_number'], 'RECORD_COUNT' => tr('Total Domains') . " : " . ($domain_count + $alias_count))); $rs->moveNext(); } // end while }
/** * @param EasySCP_TemplateEngine $tpl * @param EasySCP_Database $sql * @param int $dmn_id * @param string $dmn_name */ function gen_page_ftp_list($tpl, $sql, $dmn_id, $dmn_name) { $query = "\n\t\tSELECT\n\t\t\t`gid`,\n\t\t\t`members`\n\t\tFROM\n\t\t\t`ftp_group`\n\t\tWHERE\n\t\t\t`groupname` = ?\n\t;"; $rs = exec_query($sql, $query, $dmn_name); if ($rs->recordCount() == 0) { $tpl->assign(array('FTP_MSG' => tr('FTP list is empty!'), 'FTP_MSG_TYPE' => 'info', 'FTP_ITEM' => '', 'FTPS_TOTAL' => '', 'TABLE_LIST' => '')); } else { $ftp_accs = explode(',', $rs->fields['members']); sort($ftp_accs); reset($ftp_accs); for ($i = 0, $cnt_ftp_accs = count($ftp_accs); $i < $cnt_ftp_accs; $i++) { $tpl->assign('ITEM_CLASS', $i % 2 == 0 ? 'content' : 'content2'); $ftp_accs_encode[$i] = decode_idna($ftp_accs[$i]); $query = "\n\t\t\t\tSELECT\n\t\t\t\t\t`net2ftppasswd`\n\t\t\t\tFROM\n\t\t\t\t\t`ftp_users`\n\t\t\t\tWHERE\n\t\t\t\t\t`userid` = ?\n\t\t\t;"; $rs = exec_query($sql, $query, $ftp_accs[$i]); $tpl->append(array('FTP_ACCOUNT' => tohtml($ftp_accs_encode[$i]), 'UID' => urlencode($ftp_accs[$i]), 'FTP_LOGIN_AVAILABLE' => !is_null($rs->fields['net2ftppasswd']))); } $tpl->assign('TOTAL_FTP_ACCOUNTS', count($ftp_accs)); } }
/** * @param EasySCP_TemplateEngine $tpl * @param EasySCP_Database $sql * @param int $dmn_id * @param string $post_check */ function gen_dmn_als_list($tpl, $sql, $dmn_id, $post_check) { $cfg = EasySCP_Registry::get('Config'); $ok_status = $cfg->ITEM_OK_STATUS; $query = "\n\t\tSELECT\n\t\t\t`alias_id`, `alias_name`\n\t\tFROM\n\t\t\t`domain_aliasses`\n\t\tWHERE\n\t\t\t`domain_id` = ?\n\t\tAND\n\t\t\t`status` = ?\n\t\tORDER BY\n\t\t\t`alias_name`\n\t"; $rs = exec_query($sql, $query, array($dmn_id, $ok_status)); if ($rs->recordCount() != 0) { $first_passed = false; while (!$rs->EOF) { if ($post_check === 'yes') { $als_id = !isset($_POST['als_id']) ? '' : $_POST['als_id']; $als_selected = $als_id == $rs->fields['alias_name'] ? $cfg->HTML_SELECTED : ''; } else { $als_selected = !$first_passed ? $cfg->HTML_SELECTED : ''; } $als_menu_name = decode_idna($rs->fields['alias_name']); $tpl->append(array('ALS_ID' => tohtml($rs->fields['alias_name']), 'ALS_SELECTED' => $als_selected, 'ALS_NAME' => tohtml($als_menu_name))); $rs->moveNext(); if (!$first_passed) { $first_passed = true; } } } }
/** * Get list with hosting plan for selection * @param EasySCP_TemplateEngine $tpl * @param int $reseller_id */ function get_hp_data_list($tpl, $reseller_id) { global $dmn_chp; $sql = EasySCP_Registry::get('Db'); $cfg = EasySCP_Registry::get('Config'); if (isset($cfg->HOSTING_PLANS_LEVEL) && $cfg->HOSTING_PLANS_LEVEL === 'admin') { $query = "\n\t\t\tSELECT\n\t\t\t\tt1.`id`,\n\t\t\t\tt1.`reseller_id`,\n\t\t\t\tt1.`name`,\n\t\t\t\tt1.`props`,\n\t\t\t\tt1.`status`,\n\t\t\t\tt2.`admin_id`,\n\t\t\t\tt2.`admin_type`\n\t\t\tFROM\n\t\t\t\t`hosting_plans` AS t1,\n\t\t\t\t`admin` AS t2\n\t\t\tWHERE\n\t\t\t\tt2.`admin_type` = ?\n\t\t\tAND\n\t\t\t\tt1.`reseller_id` = t2.`admin_id`\n\t\t\tAND\n\t\t\t\tt1.`status` = 1\n\t\t\tORDER BY\n\t\t\t\tt1.`name`\n\t\t"; $rs = exec_query($sql, $query, 'admin'); $tpl->assign('PERSONALIZE', ''); if ($rs->recordCount() == 0) { set_page_message(tr('You have no hosting plans. Please contact your system administrator.'), 'info'); $tpl->assign('ADD_USER', ''); $tpl->assign('ADD_FORM', ''); } } else { $query = "\n\t\t\tSELECT\n\t\t\t\t`id`,\n\t\t\t\t`name`,\n\t\t\t\t`props`,\n\t\t\t\t`status`\n\t\t\tFROM\n\t\t\t\t`hosting_plans`\n\t\t\tWHERE\n\t\t\t\t`reseller_id` = ?\n\t\t\tORDER BY\n\t\t\t\t`name`\n\t\t"; $rs = exec_query($sql, $query, $reseller_id); } if (0 !== $rs->rowCount()) { // There are data while ($data = $rs->fetchRow()) { $dmn_chp = isset($dmn_chp) ? $dmn_chp : $data['id']; $tpl->append(array('HP_NAME' => tohtml($data['name']), 'CHN' => $data['id'], 'CH_SEL' => $data['id'] == $dmn_chp ? $cfg->HTML_SELECTED : '')); } } else { $tpl->assign('ADD_USER', ''); } }
/** * Get get_error_htaccess errors generated by a daemon request * * @param EasySCP_TemplateEngine $tpl EasySCP_TemplateEngine instance * @return int number of errors */ function get_error_htaccess($tpl) { $cfg = EasySCP_Registry::get('Config'); $sql_query = "\n\t\tSELECT\n\t\t\t`id`, `dmn_id`, h.`status`, 'htaccess' as `type`, `domain_name`\n\t\tFROM\n\t\t\t`htaccess` h\n\t\tLEFT JOIN\n\t\t\t`domain`\n\t\tON\n\t\t\t`dmn_id` = `domain_id`\n\t\tWHERE\n\t\t\th.`status` <> '{$cfg->ITEM_OK_STATUS}'\n\t\tUNION\n\t\tSELECT\n\t\t\t`id`, `dmn_id`, hg.`status`, 'htaccess_groups' as `type`, `domain_name`\n\t\tFROM\n\t\t\t`htaccess_groups` hg\n\t\tLEFT JOIN\n\t\t\t`domain`\n\t\tON\n\t\t\t`dmn_id` = `domain_id`\n\t\tWHERE\n\t\t\thg.`status` <> '{$cfg->ITEM_OK_STATUS}'\n\t\tUNION\n\t\tSELECT\n\t\t\t`id`, `dmn_id`, hu.`status`, 'htaccess_users' as `type`, `domain_name`\n\t\tFROM\n\t\t\t`htaccess_users` hu\n\t\tLEFT JOIN\n\t\t\t`domain`\n\t\tON\n\t\t\t`dmn_id` = `domain_id`\n\t\tWHERE\n\t\t\thu.`status` <> '{$cfg->ITEM_OK_STATUS}'\n\t"; $rs = DB::query($sql_query); $errors = 0; if ($rs->rowCount() == 0) { $tpl->assign(array('TR_HTACCESS_MESSAGE' => tr('No htaccess related system errors'))); } else { while ($row = $rs->fetch()) { $tpl->append(array('TR_HTACCESS_TYPE' => $row['type'], 'TR_HTACCESS_NAME' => $row['domain_name'] == null ? tr('missing domain') : tohtml($row['domain_name']), 'TR_HTACCESS_ERROR' => tohtml($row['status']))); } } return $errors; }
/** * Must be documented * * @param EasySCP_TemplateEngine $tpl reference to template object * @param EasySCP_Database $sql reference to the EasySCP_Database object * @param int $dmn_id domain name id; * @param string $dmn_name domain name * @return int number of domain alias mails addresses */ function gen_page_als_mail_list($tpl, $sql, $dmn_id, $dmn_name) { $als_query = "\n\t\tSELECT\n\t\t\tt1.`alias_id` AS als_id,\n\t\t\tt1.`alias_name` AS als_name,\n\t\t\tt2.`mail_id`,\n\t\t\tt2.`mail_acc`,\n\t\t\tt2.`mail_type`,\n\t\t\tt2.`status`,\n\t\tCONCAT(\n\t\t\tLEFT(t2.`mail_forward`, 20),\n\t\t\tIF( LENGTH(t2.`mail_forward`) > 20, '...', '')\n\t\t) AS 'mail_forward'\n\t\tFROM\n\t\t\t`domain_aliasses` AS t1,\n\t\t\t`mail_users` AS t2\n\t\tWHERE\n\t\t\tt1.`domain_id` = ?\n\t\tAND\n\t\t\tt2.`domain_id` = ?\n\t\tAND\n\t\t\tt1.`alias_id` = t2.`sub_id`\n\t\tAND\n\t\t\t(\n\t\t\t\tt2.`mail_type` LIKE '%" . MT_ALIAS_MAIL . "%'\n\t\t\tOR\n\t\t\t\tt2.`mail_type` LIKE '%" . MT_ALIAS_FORWARD . "%'\n\t\t\t)\n\t"; $als_query .= "\n\t\tORDER BY\n\t\t\tt2.`mail_acc` ASC,\n\t\t\tt2.`mail_type` DESC\n\t"; $rs = exec_query($sql, $als_query, array($dmn_id, $dmn_id)); if ($rs->recordCount() == 0) { return 0; } else { while (!$rs->EOF) { $mail_acc = decode_idna($rs->fields['mail_acc']); // Unused variable // $show_dmn_name = decode_idna($dmn_name); $show_als_name = decode_idna($rs->fields['als_name']); $mail_types = explode(',', $rs->fields['mail_type']); $mail_type = ''; foreach ($mail_types as $type) { $mail_type .= user_trans_mail_type($type); if (strpos($type, '_forward') !== false) { $mail_type .= ': ' . str_replace(array("\r\n", "\n", "\r"), ", ", $rs->fields['mail_forward']); } $mail_type .= '<br />'; } $tpl->append(array('MAIL_ACC' => tohtml($mail_acc . '@' . $show_als_name), 'MAIL_TYPE' => $mail_type, 'MAIL_STATUS' => translate_dmn_status($rs->fields['status']), 'MAIL_EDIT_URL' => 'mail_edit.php?id=' . $rs->fields['mail_id'], 'MAIL_DELETE_URL' => 'mail_delete.php?id=' . $rs->fields['mail_id'])); $rs->moveNext(); } return $rs->recordCount(); } }
/** * @param EasySCP_TemplateEngine $tpl * @param EasySCP_Database $sql * @param int $id */ function gen_dynamic_page_data($tpl, $sql, $id) { global $domain_id; $cfg = EasySCP_Registry::get('Config'); $dmn_props = get_domain_default_props($_SESSION['user_id']); $domain_id = $dmn_props['domain_id']; list($mail_acc_cnt) = get_domain_running_mail_acc_cnt($sql, $dmn_props['domain_id']); if ($dmn_props['domain_mailacc_limit'] != 0 && $mail_acc_cnt >= $dmn_props['domain_mailacc_limit']) { set_page_message(tr('Mail accounts limit reached!'), 'warning'); user_goto('mail_catchall.php'); } $ok_status = $cfg->ITEM_OK_STATUS; $match = array(); if (preg_match("/(\\d+);(normal|alias|subdom|alssub)/", $id, $match) == 1) { $item_id = $match[1]; $item_type = $match[2]; if ($item_type === 'normal') { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.`mail_id`, t1.`mail_type`, t2.`domain_name`, t1.`mail_acc`\n\t\t\t\tFROM\n\t\t\t\t\t`mail_users` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt1.`domain_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`sub_id` = '0'\n\t\t\t\tAND\n\t\t\t\t\tt1.`status` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`mail_type` DESC, t1.`mail_acc`\n\t\t\t"; $rs = exec_query($sql, $query, array($item_id, $item_id, $ok_status)); if ($rs->recordCount() == 0) { $tpl->assign(array('FORWARD_MAIL' => $cfg->HTML_CHECKED, 'MAIL_LIST' => '', 'DEFAULT' => 'forward')); } else { $tpl->assign(array('NORMAL_MAIL' => $cfg->HTML_CHECKED, 'NORMAL_MAIL_CHECK' => 'checked', 'FORWARD_MAIL' => '', 'DEFAULT' => 'normal')); while (!$rs->EOF) { $show_mail_acc = decode_idna($rs->fields['mail_acc']); $show_domain_name = decode_idna($rs->fields['domain_name']); $mail_acc = $rs->fields['mail_acc']; $domain_name = $rs->fields['domain_name']; $tpl->append(array('MAIL_ID' => $rs->fields['mail_id'], 'MAIL_ACCOUNT' => tohtml($show_mail_acc . "@" . $show_domain_name), 'MAIL_ACCOUNT_PUNNY' => tohtml($mail_acc . "@" . $domain_name))); $rs->moveNext(); } } } else { if ($item_type === 'alias') { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.`mail_id`, t1.`mail_type`, t2.`alias_name`, t1.`mail_acc`\n\t\t\t\tFROM\n\t\t\t\t\t`mail_users` AS t1,\n\t\t\t\t\t`domain_aliasses` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt1.`sub_id` = t2.`alias_id`\n\t\t\t\tAND\n\t\t\t\t\tt1.`status` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`mail_type` LIKE 'alias_%'\n\t\t\t\tAND\n\t\t\t\t\tt2.`alias_id` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`mail_type` DESC, t1.`mail_acc`\n\t\t\t"; $rs = exec_query($sql, $query, array($ok_status, $item_id)); if ($rs->recordCount() == 0) { $tpl->assign(array('FORWARD_MAIL' => $cfg->HTML_CHECKED, 'MAIL_LIST' => '', 'DEFAULT' => 'forward')); } else { $tpl->assign(array('NORMAL_MAIL' => $cfg->HTML_CHECKED, 'NORMAL_MAIL_CHECK' => 'checked', 'FORWARD_MAIL' => '', 'DEFAULT' => 'normal')); while (!$rs->EOF) { $show_mail_acc = decode_idna($rs->fields['mail_acc']); $show_alias_name = decode_idna($rs->fields['alias_name']); $mail_acc = $rs->fields['mail_acc']; $alias_name = $rs->fields['alias_name']; $tpl->append(array('MAIL_ID' => $rs->fields['mail_id'], 'MAIL_ACCOUNT' => tohtml($show_mail_acc . "@" . $show_alias_name), 'MAIL_ACCOUNT_PUNNY' => tohtml($mail_acc . "@" . $alias_name))); $rs->moveNext(); } } } else { if ($item_type === 'subdom') { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.`mail_id`, t1.`mail_type`, CONCAT(t2.`subdomain_name`, '.', t3.`domain_name`) AS subdomain_name, t1.`mail_acc`\n\t\t\t\tFROM\n\t\t\t\t\t`mail_users` AS t1,\n\t\t\t\t\t`subdomain` AS t2,\n\t\t\t\t\t`domain` AS t3\n\t\t\t\tWHERE\n\t\t\t\t\tt1.`sub_id` = t2.`subdomain_id`\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_id` = t3.`domain_id`\n\t\t\t\tAND\n\t\t\t\t\tt1.`status` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`mail_type` LIKE 'subdom_%'\n\t\t\t\tAND\n\t\t\t\t\tt2.`subdomain_id` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`mail_type` DESC, t1.`mail_acc`\n\t\t\t"; $rs = exec_query($sql, $query, array($ok_status, $item_id)); if ($rs->recordCount() == 0) { $tpl->assign(array('FORWARD_MAIL' => $cfg->HTML_CHECKED, 'MAIL_LIST' => '', 'DEFAULT' => 'forward')); } else { $tpl->assign(array('NORMAL_MAIL' => $cfg->HTML_CHECKED, 'NORMAL_MAIL_CHECK' => 'checked', 'FORWARD_MAIL' => '', 'DEFAULT' => 'normal')); while (!$rs->EOF) { $show_mail_acc = decode_idna($rs->fields['mail_acc']); $show_alias_name = decode_idna($rs->fields['subdomain_name']); $mail_acc = $rs->fields['mail_acc']; $alias_name = $rs->fields['subdomain_name']; $tpl->append(array('MAIL_ID' => $rs->fields['mail_id'], 'MAIL_ACCOUNT' => tohtml($show_mail_acc . "@" . $show_alias_name), 'MAIL_ACCOUNT_PUNNY' => tohtml($mail_acc . "@" . $alias_name))); $rs->moveNext(); } } } else { if ($item_type === 'alssub') { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.`mail_id`, t1.`mail_type`, CONCAT(t2.`subdomain_alias_name`, '.', t3.`alias_name`) AS subdomain_name, t1.`mail_acc`\n\t\t\t\tFROM\n\t\t\t\t\t`mail_users` AS t1,\n\t\t\t\t\t`subdomain_alias` AS t2,\n\t\t\t\t\t`domain_aliasses` AS t3\n\t\t\t\tWHERE\n\t\t\t\t\tt1.`sub_id` = t2.`subdomain_alias_id`\n\t\t\t\tAND\n\t\t\t\t\tt2.`alias_id` = t3.`alias_id`\n\t\t\t\tAND\n\t\t\t\t\tt1.`status` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`mail_type` LIKE 'alssub_%'\n\t\t\t\tAND\n\t\t\t\t\tt2.`subdomain_alias_id` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`mail_type` DESC, t1.`mail_acc`\n\t\t\t"; $rs = exec_query($sql, $query, array($ok_status, $item_id)); if ($rs->recordCount() == 0) { $tpl->assign(array('FORWARD_MAIL' => $cfg->HTML_CHECKED, 'MAIL_LIST' => '', 'DEFAULT' => 'forward')); } else { $tpl->assign(array('NORMAL_MAIL' => $cfg->HTML_CHECKED, 'NORMAL_MAIL_CHECK' => 'checked', 'FORWARD_MAIL' => '', 'DEFAULT' => 'normal')); while (!$rs->EOF) { $show_mail_acc = decode_idna($rs->fields['mail_acc']); $show_alias_name = decode_idna($rs->fields['subdomain_name']); $mail_acc = $rs->fields['mail_acc']; $alias_name = $rs->fields['subdomain_name']; $tpl->append(array('MAIL_ID' => $rs->fields['mail_id'], 'MAIL_ACCOUNT' => tohtml($show_mail_acc . "@" . $show_alias_name), 'MAIL_ACCOUNT_PUNNY' => tohtml($mail_acc . "@" . $alias_name))); $rs->moveNext(); } } } } } } } else { user_goto('mail_catchall.php'); } }
/** * @param EasySCP_TemplateEngine $tpl * @param EasySCP_Database $sql * @param int $dmn_id */ function gen_protect_it($tpl, $sql, &$dmn_id) { $cfg = EasySCP_Registry::get('Config'); if (!isset($_GET['id'])) { $edit = 'no'; $type = 'user'; $user_id = 0; $group_id = 0; $tpl->assign(array('CDIR' => '', 'PATH' => '', 'AREA_NAME' => '')); } else { $edit = 'yes'; $ht_id = $_GET['id']; $tpl->assign('CDIR', $ht_id); $tpl->assign(array('CDIR' => $ht_id, 'UNPROTECT_IT' => true)); $query = "\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\t`htaccess`\n\t\t\tWHERE\n\t\t\t\t`dmn_id` = ?\n\t\t\tAND\n\t\t\t\t`id` = ?;\n\t\t"; $rs = exec_query($sql, $query, array($dmn_id, $ht_id)); if ($rs->recordCount() == 0) { user_goto('protected_areas_add.php'); } $user_id = $rs->fields['user_id']; $group_id = $rs->fields['group_id']; $status = $rs->fields['status']; $path = $rs->fields['path']; $auth_name = $rs->fields['auth_name']; $ok_status = $cfg->ITEM_OK_STATUS; if ($status !== $ok_status) { set_page_message(tr('Protected area status should be OK if you want to edit it!'), 'error'); user_goto('protected_areas.php'); } $tpl->assign(array('PATH' => tohtml($path), 'AREA_NAME' => tohtml($auth_name))); // let's get the htaccess management type if ($user_id !== 0 && $group_id == 0) { // we have only user htaccess $type = 'user'; } else { if ($group_id !== 0 && $user_id == 0) { // we have only groups htaccess $type = 'group'; } else { if ($group_id == 0 && $user_id == 0) { // we have unsr and groups htaccess $type = 'both'; } } } } // this area is not secured by htaccess if ($edit == 'no' || $rs->recordCount() == 0 || $type == 'user') { $tpl->assign(array('USER_CHECKED' => $cfg->HTML_CHECKED, 'GROUP_CHECKED' => "", 'USER_FORM_ELEMENS' => "false", 'GROUP_FORM_ELEMENS' => "true")); } if ($type == 'group') { $tpl->assign(array('USER_CHECKED' => "", 'GROUP_CHECKED' => $cfg->HTML_CHECKED, 'USER_FORM_ELEMENS' => "true", 'GROUP_FORM_ELEMENS' => "false")); } $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`htaccess_users`\n\t\tWHERE\n\t\t\t`dmn_id` = ?;\n\t"; $rs = exec_query($sql, $query, $dmn_id); if ($rs->recordCount() == 0) { $tpl->assign(array('USER_VALUE' => "-1", 'USER_LABEL' => tr('You have no users !'), 'USER_SELECTED' => '')); } else { while (!$rs->EOF) { $usr_id = explode(',', $user_id); for ($i = 0, $cnt_usr_id = count($usr_id); $i < $cnt_usr_id; $i++) { if ($edit == 'yes' && $usr_id[$i] == $rs->fields['id']) { $i = $cnt_usr_id + 1; $usr_selected = $cfg->HTML_SELECTED; } else { $usr_selected = ''; } } $tpl->append(array('USER_VALUE' => $rs->fields['id'], 'USER_LABEL' => tohtml($rs->fields['uname']), 'USER_SELECTED' => $usr_selected)); $rs->moveNext(); } } $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`htaccess_groups`\n\t\tWHERE\n\t\t\t`dmn_id` = ?\n\t;"; $rs = exec_query($sql, $query, $dmn_id); if ($rs->recordCount() == 0) { $tpl->assign(array('GROUP_VALUE' => "-1", 'GROUP_LABEL' => tr('You have no groups!'), 'GROUP_SELECTED' => '')); } else { while (!$rs->EOF) { $grp_id = explode(',', $group_id); for ($i = 0, $cnt_grp_id = count($grp_id); $i < $cnt_grp_id; $i++) { if ($edit == 'yes' && $grp_id[$i] == $rs->fields['id']) { $i = $cnt_grp_id + 1; $grp_selected = $cfg->HTML_SELECTED; } else { $grp_selected = ''; } } $tpl->append(array('GROUP_VALUE' => $rs->fields['id'], 'GROUP_LABEL' => tohtml($rs->fields['ugroup']), 'GROUP_SELECTED' => $grp_selected)); $rs->moveNext(); } } }
/** * @param EasySCP_TemplateEngine $tpl * @param EasySCP_NetworkCard $interfaces */ function show_Network_Cards($tpl, $interfaces) { if ($interfaces->getErrors() != '') { set_page_message($interfaces->getErrors(), 'error'); } if ($interfaces->getAvailableInterface() != array()) { foreach ($interfaces->getAvailableInterface() as $interface) { $tpl->append(array('NETWORK_CARDS' => $interface)); } } else { $tpl->assign(array('NETWORK_CARDS' => '')); } }
/** * Gets and prepares the template part for services ports * * This function is used for generation of both pages (show page and error page) * * @since 1.0.7 * @param EasySCP_TemplateEngine $tpl Reference to a template instance * @return void; */ function show_services($tpl) { // Gets reference to the EasySCP_ConfigHandler_File object $cfg = EasySCP_Registry::get('Config'); // Gets the needed data if (isset($_SESSION['error_on_updt'])) { $values = new EasySCP_Config_Handler($_SESSION['error_on_updt']); unset($_SESSION['error_on_updt']); $services = array_keys($values->toArray()); } else { $values = EasySCP_Registry::get('Db_Config'); // Filter function to get only the services ports names $filter = create_function('$value', 'if(substr($value, 0, 5) == \'PORT_\') return $value;'); // Gets list of services port names $services = array_filter(array_keys($values->toArray()), $filter); if (isset($_SESSION['error_on_add'])) { $error_on_add = new EasySCP_Config_Handler($_SESSION['error_on_add']); unset($_SESSION['error_on_add']); } } // Prepares tpl if (empty($services)) { set_page_message(tr('You have no custom service ports defined.'), 'info'); } else { sort($services); foreach ($services as $index => $service) { $v = count(explode(';', $values->{$service})) < 6 ? $values->{$service} . ';' : $values->{$service}; list($port, $proto, $name, $status, $custom, $ip) = explode(';', $v); $selected_udp = $proto == 'udp' ? $cfg->HTML_SELECTED : ''; $selected_tcp = $proto == 'udp' ? '' : $cfg->HTML_SELECTED; $selected_on = $status == '1' ? $cfg->HTML_SELECTED : ''; $selected_off = $status == '1' ? '' : $cfg->HTML_SELECTED; if ($custom == 0) { $tpl->append(array('SERVICE' => tohtml($name) . '<input name="name[]" type="hidden" id="name' . $index . '" value="' . tohtml($name) . '" />', 'NAME' => false, 'PORT_READONLY' => $cfg->HTML_READONLY, 'PROTOCOL_READONLY' => $cfg->HTML_DISABLED, 'URL_DELETE' => false, 'NUM' => $index)); } else { $tpl->append(array('SERVICE' => '<input name="name[]" type="text" id="name' . $index . '" value="' . tohtml($name) . '" class="textinput" maxlength="25" />', 'NAME' => tohtml($name), 'PORT_READONLY' => '', 'PROTOCOL_READONLY' => '', 'URL_DELETE' => "?delete={$service}", 'NUM' => $index)); } $tpl->append(array('CUSTOM' => tohtml($custom), 'VAR_NAME' => tohtml($service), 'IP' => $ip == '127.0.0.1' ? 'localhost' : (empty($ip) ? $cfg->BASE_SERVER_IP : tohtml($ip)), 'PORT' => $port, 'SELECTED_UDP' => $selected_udp, 'SELECTED_TCP' => $selected_tcp, 'SELECTED_ON' => $selected_on, 'SELECTED_OFF' => $selected_off)); } // Add fields $tpl->assign(isset($error_on_add) ? array('VAL_FOR_NAME_NEW' => $error_on_add['name_new'], 'VAL_FOR_IP_NEW' => $error_on_add['ip_new'], 'VAL_FOR_PORT_NEW' => $error_on_add['port_new']) : array('VAL_FOR_NAME_NEW' => '', 'VAL_FOR_IP_NEW' => '', 'VAL_FOR_PORT_NEW' => '')); // Error fields ids $tpl->assign(array('ERROR_FIELDS_IDS' => isset($_SESSION['error_fields_ids']) ? $_SESSION['error_fields_ids'] : "[]")); unset($_SESSION['error_fields_ids']); } }
/** * @param EasySCP_TemplateEngine $tpl * @param int $user_id */ function gen_user_als_list($tpl, $user_id) { $sql = EasySCP_Registry::get('Db'); $domain_id = get_user_domain_id($user_id); $query = "\n\t\tSELECT\n\t\t\t`alias_id`,\n\t\t\t`alias_name`,\n\t\t\t`status`,\n\t\t\t`alias_mount`,\n\t\t\t`alias_ip_id`,\n\t\t\t`url_forward`\n\t\tFROM\n\t\t\t`domain_aliasses`\n\t\tWHERE\n\t\t\t`domain_id` = ?\n\t\tORDER BY\n\t\t\t`alias_mount`,\n\t\t\t`alias_name`\n\t;"; $rs = exec_query($sql, $query, $domain_id); if ($rs->recordCount() == 0) { $tpl->assign(array('ALS_MSG' => tr('Alias list is empty!'), 'ALS_MSG_TYPE' => 'info', 'ALS_LIST' => '')); } else { while (!$rs->EOF) { list($als_action, $als_action_script) = gen_user_als_action($rs->fields['alias_id'], $rs->fields['status']); list($als_forward, $alias_edit_link, $als_edit) = gen_user_als_forward($rs->fields['alias_id'], $rs->fields['status'], $rs->fields['url_forward']); $alias_name = decode_idna($rs->fields['alias_name']); $als_forward = decode_idna($als_forward); $tpl->append(array('ALS_NAME' => tohtml($alias_name), 'ALS_MOUNT' => tohtml($rs->fields['alias_mount']), 'ALS_STATUS' => translate_dmn_status($rs->fields['status']), 'ALS_FORWARD' => tohtml($als_forward), 'ALS_EDIT_LINK' => $alias_edit_link, 'ALS_EDIT' => $als_edit, 'ALS_ACTION' => $als_action, 'ALS_ACTION_SCRIPT' => $als_action_script)); $rs->moveNext(); } $tpl->assign('ALS_MESSAGE', ''); } }
/** * Show data fields * * @global <type> $alias_name * @global $forward * @global $forward_prefix * @global string $mount_point * @param EasySCP_TemplateEngine $tpl * @param int $reseller_id */ function gen_al_page($tpl, $reseller_id) { global $alias_name, $forward, $forward_prefix, $mount_point; $sql = EasySCP_Registry::get('Db'); $dmn_id = $_SESSION['dmn_id']; $query = "\n\t\tSELECT\n\t\t\t`alias_id`,\n\t\t\t`alias_name`,\n\t\t\t`status`,\n\t\t\t`url_forward`\n\t\tFROM\n\t\t\t`domain_aliasses`\n\t\tWHERE\n\t\t\t`domain_id` = ?\n\t;"; $rs = exec_query($sql, $query, $dmn_id); if ($rs->recordCount() == 0) { $tpl->assign('ALIAS_LIST', ''); } else { while (!$rs->EOF) { $tpl->append(array('DOMAIN_ALIAS' => tohtml(decode_idna($rs->fields['alias_name'])), 'STATUS' => translate_dmn_status($rs->fields['status']), 'FORWARD_URL' => $rs->fields['url_forward'] == 'no' ? "-" : $rs->fields['url_forward'])); $rs->moveNext(); } } }
/** * @param EasySCP_TemplateEngine $tpl * @param int $user_id * @param int $row */ function generate_domain_entry($tpl, $user_id, $row) { global $crnt_month, $crnt_year; list($domain_name, $domain_id, $web, $ftp, $smtp, $pop3, $utraff_current, $udisk_current) = generate_user_traffic($user_id); list($usub_current, $usub_max, $uals_current, $uals_max, $umail_current, $umail_max, $uftp_current, $uftp_max, $usql_db_current, $usql_db_max, $usql_user_current, $usql_user_max, $utraff_max, $udisk_max) = generate_user_props($user_id); $utraff_max = $utraff_max * 1024 * 1024; $udisk_max = $udisk_max * 1024 * 1024; $traff_show_percent = calc_bar_value($utraff_current, $utraff_max, 400); $disk_show_percent = calc_bar_value($udisk_current, $udisk_max, 400); if ($utraff_max > 0) { $traff_percent = $utraff_current / $utraff_max * 100 < 99.7 ? $utraff_current / $utraff_max * 100 : 99.7; } else { $traff_percent = 0; } if ($udisk_max > 0) { $disk_percent = $udisk_current / $udisk_max * 100 < 99.7 ? $udisk_current / $udisk_max * 100 : 99.7; } else { $disk_percent = 0; } $domain_name = decode_idna($domain_name); $tpl->append(array('DOMAIN_NAME' => tohtml($domain_name), 'MONTH' => $crnt_month, 'YEAR' => $crnt_year, 'DOMAIN_ID' => $domain_id, 'TRAFF_SHOW_PERCENT' => $traff_show_percent, 'TRAFF_PERCENT' => $traff_percent, 'TRAFF_MSG' => $utraff_max ? tr('%1$s <br/>of<br/> <strong>%2$s</strong>', sizeit($utraff_current), sizeit($utraff_max)) : tr('%s <br/>of<br/> <strong>unlimited</strong>', sizeit($utraff_current)), 'DISK_SHOW_PERCENT' => $disk_show_percent, 'DISK_PERCENT' => $disk_percent, 'DISK_MSG' => $udisk_max ? tr('%1$s <br/>of<br/> <strong>%2$s</strong>', sizeit($udisk_current), sizeit($udisk_max)) : tr('%s <br/>of<br/> <strong>unlimited</strong>', sizeit($udisk_current)), 'WEB' => sizeit($web), 'FTP' => sizeit($ftp), 'SMTP' => sizeit($smtp), 'POP3' => sizeit($pop3), 'SUB_MSG' => $usub_max ? $usub_max > 0 ? tr('%1$d <br/>of<br/> <strong>%2$d</strong>', sizeit($usub_current), $usub_max) : tr('<strong>disabled</strong>') : tr('%d <br/>of<br/> <strong>unlimited</strong>', sizeit($usub_current)), 'ALS_MSG' => $uals_max ? $uals_max > 0 ? tr('%1$d <br/>of<br/> <strong>%2$d</strong>', sizeit($uals_current), $uals_max) : tr('<strong>disabled</strong>') : tr('%d <br/>of<br/> <strong>unlimited</strong>', sizeit($uals_current)), 'MAIL_MSG' => $umail_max ? $umail_max > 0 ? tr('%1$d <br/>of<br/> <strong>%2$d</strong>', $umail_current, $umail_max) : tr('<strong>disabled</strong>') : tr('%d <br/>of<br/> <strong>unlimited</strong>', $umail_current), 'FTP_MSG' => $uftp_max ? $uftp_max > 0 ? tr('%1$d <br/>of<br/> <strong>%2$d</strong>', $uftp_current, $uftp_max) : tr('<strong>disabled</strong>') : tr('%d <br/>of<br/> <strong>unlimited</strong>', $uftp_current), 'SQL_DB_MSG' => $usql_db_max ? $usql_db_max > 0 ? tr('%1$d <br/>of<br/> <strong>%2$d</strong>', $usql_db_current, $usql_db_max) : tr('<strong>disabled</strong>') : tr('%d <br/>of<br/> <strong>unlimited</strong>', $usql_db_current), 'SQL_USER_MSG' => $usql_user_max ? $usql_user_max > 0 ? tr('%1$d <br/>of<br/> <strong>%2$d</strong>', $usql_user_current, $usql_user_max) : tr('<strong>disabled</strong>') : tr('%d <br/>of<br/> <strong>unlimited</strong>', $usql_user_current))); }
/** * Extract and show data for hosting plans * @param EasySCP_TemplateEngine $tpl * @param int $reseller_id */ function gen_hp_table($tpl, $reseller_id) { global $external_event; $sql = EasySCP_Registry::get('Db'); $cfg = EasySCP_Registry::get('Config'); if (isset($cfg->HOSTING_PLANS_LEVEL) && $cfg->HOSTING_PLANS_LEVEL === 'admin') { $query = "\n\t\t\tSELECT\n\t\t\t\tt1.`id`, t1.`reseller_id`, t1.`name`, t1.`props`, t1.`status`,\n\t\t\t\tt2.`admin_id`, t2.`admin_type`\n\t\t\tFROM\n\t\t\t\t`hosting_plans` AS t1,\n\t\t\t\t`admin` AS t2\n\t\t\tWHERE\n\t\t\t\tt2.`admin_type` = ?\n\t\t\tAND\n\t\t\t\tt1.`reseller_id` = t2.`admin_id`\n\t\t\tAND\n\t\t\t\tt1.`status` = 1\n\t\t\tORDER BY\n\t\t\t\tt1.`name`\n\t\t"; $rs = exec_query($sql, $query, 'admin'); $tr_edit = tr('View details'); $tpl->assign('HP_MENU_ADD', ''); } else { $query = "\n\t\t\tSELECT\n\t\t\t\t`id`, `name`, `props`, `status`\n\t\t\tFROM\n\t\t\t\t`hosting_plans`\n\t\t\tWHERE\n\t\t\t\t`reseller_id` = ?\n\t\t\tORDER BY\n\t\t\t\t`name`\n\t\t"; $rs = exec_query($sql, $query, $reseller_id); } if ($rs->rowCount() == 0) { set_page_message(tr('Hosting plans not found!'), 'info'); $tpl->assign('HP_TABLE', ''); } else { // There is data for hosting plans :-) if ($external_event == '_off_') { $tpl->assign('HP_MESSAGE', ''); } $tpl->assign(array('TR_HOSTING_PLANS' => tr('Hosting plans'), 'TR_NOM' => tr('No.'), 'TR_EDIT' => tr('Edit'), 'TR_DELETE' => tr('Delete'), 'PLAN_SHOW' => tr('Show hosting plan'), 'TR_PLAN_NAME' => tr('Name'), 'TR_ACTION' => tr('Actions'))); $coid = isset($cfg->CUSTOM_ORDERPANEL_ID) ? $cfg->CUSTOM_ORDERPANEL_ID : ''; $i = 1; while ($data = $rs->fetchRow()) { $status = $data['status'] ? tr('Enabled') : tr('Disabled'); $tpl->append(array('PLAN_NOM' => $i++, 'PLAN_NAME' => tohtml($data['name']), 'PLAN_NAME2' => addslashes(clean_html($data['name'])), 'PURCHASING' => $status, 'CUSTOM_ORDERPANEL_ID' => $coid, 'HP_ID' => $data['id'], 'RESELLER_ID' => $_SESSION['user_id'])); } } }
/** * @param EasySCP_TemplateEngine $tpl * @param int $reseller_id * @param string $reseller_name * @param int $row * @return void */ function generate_reseller_entry($tpl, $reseller_id, $reseller_name, $row) { global $crnt_month, $crnt_year; list($rdmn_current, $rdmn_max, $rsub_current, $rsub_max, $rals_current, $rals_max, $rmail_current, $rmail_max, $rftp_current, $rftp_max, $rsql_db_current, $rsql_db_max, $rsql_user_current, $rsql_user_max, $rtraff_current, $rtraff_max, $rdisk_current, $rdisk_max) = generate_reseller_props($reseller_id); list($udmn_current, , , $usub_current, , , $uals_current, , , $umail_current, , , $uftp_current, , , $usql_db_current, , , $usql_user_current, , , $utraff_current, , , $udisk_current, , ) = generate_reseller_users_props($reseller_id); $rtraff_max = $rtraff_max * 1024 * 1024; $rtraff_current = $rtraff_current * 1024 * 1024; $rdisk_max = $rdisk_max * 1024 * 1024; $rdisk_current = $rdisk_current * 1024 * 1024; $traff_show_percent = calc_bar_value($utraff_current, $rtraff_max, 400); $disk_show_percent = calc_bar_value($udisk_current, $rdisk_max, 400); if ($rtraff_max > 0) { $traff_percent = $utraff_current / $rtraff_max * 100 < 99.7 ? $utraff_current / $rtraff_max * 100 : 99.7; } else { $traff_percent = 0; } if ($rdisk_max > 0) { $disk_percent = $udisk_current / $rdisk_max * 100 < 99.7 ? $udisk_current / $rdisk_max * 100 : 99.7; } else { $disk_percent = 0; } $tpl->append(array('RESELLER_NAME' => tohtml($reseller_name), 'RESELLER_ID' => $reseller_id, 'MONTH' => $crnt_month, 'YEAR' => $crnt_year, 'TRAFF_SHOW_PERCENT' => $traff_show_percent, 'TRAFF_PERCENT' => $traff_percent, 'TRAFF_MSG' => $rtraff_max ? tr('%1$s / %2$s <br/>of<br/> <strong>%3$s</strong>', sizeit($utraff_current), sizeit($rtraff_current), sizeit($rtraff_max)) : tr('%1$s / %2$s <br/>of<br/> <strong>unlimited</strong>', sizeit($utraff_current), sizeit($rtraff_current)), 'DISK_SHOW_PERCENT' => $disk_show_percent, 'DISK_PERCENT' => $disk_percent, 'DISK_MSG' => $rdisk_max ? tr('%1$s / %2$s <br/>of<br/> <strong>%3$s</strong>', sizeit($udisk_current), sizeit($rdisk_current), sizeit($rdisk_max)) : tr('%1$s / %2$s <br/>of<br/> <strong>unlimited</strong>', sizeit($udisk_current), sizeit($rdisk_current)), 'DMN_MSG' => $rdmn_max ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $udmn_current, $rdmn_current, $rdmn_max) : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $udmn_current, $rdmn_current), 'SUB_MSG' => $rsub_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $usub_current, $rsub_current, $rsub_max) : ($rsub_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $usub_current, $rsub_current)), 'ALS_MSG' => $rals_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $uals_current, $rals_current, $rals_max) : ($rals_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $uals_current, $rals_current)), 'MAIL_MSG' => $rmail_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $umail_current, $rmail_current, $rmail_max) : ($rmail_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $umail_current, $rmail_current)), 'FTP_MSG' => $rftp_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $uftp_current, $rftp_current, $rftp_max) : ($rftp_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $uftp_current, $rftp_current)), 'SQL_DB_MSG' => $rsql_db_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $usql_db_current, $rsql_db_current, $rsql_db_max) : ($rsql_db_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $usql_db_current, $rsql_db_current)), 'SQL_USER_MSG' => $rsql_user_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $usql_user_current, $rsql_user_current, $rsql_user_max) : ($rsql_user_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $usql_user_current, $rsql_user_current)))); }
/** * Generate domain alias list * * @todo Use prepared statements (min. with placeholders like ":search_for") * @param EasySCP_TemplateEngine $tpl * @param int $reseller_id * @param string $als_err */ function generate_als_list($tpl, $reseller_id, &$als_err) { $sql = EasySCP_Registry::get('Db'); $cfg = EasySCP_Registry::get('Config'); list(, , , , , , $uals_current) = generate_reseller_user_props($reseller_id); list(, , , , , $rals_max) = get_reseller_default_props($sql, $reseller_id); if ($uals_current >= $rals_max && $rals_max != "0") { $tpl->assign('ALS_ADD_BUTTON', ''); } $start_index = 0; $rows_per_page = $cfg->DOMAIN_ROWS_PER_PAGE; $current_psi = 0; $_SESSION['search_for'] = ''; $search_common = ''; $search_for = ''; if (isset($_GET['psi'])) { $start_index = $_GET['psi']; $current_psi = $_GET['psi']; } if (isset($_POST['uaction']) && !empty($_POST['uaction'])) { $_SESSION['search_for'] = trim(clean_input($_POST['search_for'])); $_SESSION['search_common'] = $_POST['search_common']; $search_for = $_SESSION['search_for']; $search_common = $_SESSION['search_common']; } else { if (isset($_SESSION['search_for']) && !isset($_GET['psi'])) { unset($_SESSION['search_for']); unset($_SESSION['search_common']); } } $tpl->assign(array('PSI' => $current_psi, 'SEARCH_FOR' => tohtml($search_for), 'TR_SEARCH' => tr('Search'), 'M_ALIAS_NAME' => tr('Alias name'), 'M_ACCOUNT_NAME' => tr('Account name'))); if (isset($_SESSION['search_for']) && $_SESSION['search_for'] != '') { if (isset($search_common) && $search_common == 'alias_name') { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.*,\n\t\t\t\t\tt2.`domain_id`,\n\t\t\t\t\tt2.`domain_name`,\n\t\t\t\t\tt2.`domain_created_id`\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\t`alias_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`alias_name` ASC\n\t\t\t\tLIMIT\n\t\t\t\t\t{$start_index}, {$rows_per_page}\n\t\t\t"; // count query $count_query = "\n\t\t\t\tSELECT\n\t\t\t\t\tCOUNT(`alias_id`) AS cnt\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tAND\n\t\t\t\t\t`alias_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t"; } else { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.*,\n\t\t\t\t\tt2.`domain_id`,\n\t\t\t\t\tt2.`domain_name`,\n\t\t\t\t\tt2.`domain_created_id`\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt2.`domain_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`alias_name` ASC\n\t\t\t\tLIMIT\n\t\t\t\t\t{$start_index}, {$rows_per_page}\n\t\t\t"; // count query $count_query = "\n\t\t\t\tSELECT\n\t\t\t\t\tCOUNT(`alias_id`) AS cnt\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t"; } } else { $query = "\n\t\t\tSELECT\n\t\t\t\tt1.*,\n\t\t\t\tt2.`domain_id`,\n\t\t\t\tt2.`domain_name`,\n\t\t\t\tt2.`domain_created_id`\n\t\t\tFROM\n\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t`domain` AS t2\n\t\t\tWHERE\n\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\tAND\n\t\t\t\tt2.`domain_created_id` = ?\n\t\t\tORDER BY\n\t\t\t\tt1.`alias_name` ASC\n\t\t\tLIMIT\n\t\t\t\t{$start_index}, {$rows_per_page}\n\t\t"; // count query $count_query = "\n\t\t\tSELECT\n\t\t\t\tCOUNT(`alias_id`) AS cnt\n\t\t\tFROM\n\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t`domain` AS t2\n\t\t\tWHERE\n\t\t\t\tt1.`domain_id` = t2.domain_id\n\t\t\tAND\n\t\t\t\tt2.`domain_created_id` = ?\n\t\t"; } // let's count $rs = exec_query($sql, $count_query, $reseller_id); $records_count = $rs->fields['cnt']; // Get all alias records $rs = exec_query($sql, $query, $reseller_id); if ($records_count == 0) { if (isset($_SESSION['search_for']) && $_SESSION['search_for'] != '') { $tpl->assign(array('TABLE_LIST' => '', 'USERS_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '', 'M_DOMAIN_NAME_SELECTED' => '', 'M_ACCOUN_NAME_SELECTED' => '')); } else { $tpl->assign(array('TABLE_LIST' => '', 'TABLE_HEADER' => '', 'USERS_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '')); } if (isset($_SESSION['search_for'])) { $als_err = tr('Not found user records matching the search criteria!'); } else { if (isset($_SESSION['almax'])) { if ($_SESSION['almax'] === '_yes_') { $als_err = tr('Domain alias limit reached!'); } else { $als_err = tr('You have no alias records.'); } unset($_SESSION['almax']); } else { $als_err = tr('You have no alias records.'); } } return; } else { $prev_si = $start_index - $rows_per_page; if ($start_index == 0) { $tpl->assign('SCROLL_PREV', ''); } else { $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prev_si)); } $next_si = $start_index + $rows_per_page; if ($next_si + 1 > $records_count) { $tpl->assign('SCROLL_NEXT', ''); } else { $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $next_si)); } } if (isset($_SESSION['search_common']) && $_SESSION['search_common'] === 'account_name') { $domain_name_selected = ''; $account_name_selected = $cfg->HTML_SELECTED; } else { $domain_name_selected = $cfg->HTML_SELECTED; $account_name_selected = ''; } $tpl->assign(array('M_DOMAIN_NAME_SELECTED' => $domain_name_selected, 'M_ACCOUN_NAME_SELECTED' => $account_name_selected)); while (!$rs->EOF) { $als_id = $rs->fields['alias_id']; $als_name = $rs->fields['alias_name']; $als_mount_point = $rs->fields['alias_mount'] != '' ? $rs->fields['alias_mount'] : '/'; $als_status = $rs->fields['status']; $als_ip_id = $rs->fields['alias_ip_id']; $als_fwd = $rs->fields['url_forward']; $show_als_fwd = $als_fwd == 'no' ? "-" : $als_fwd; $domain_name = decode_idna($rs->fields['domain_name']); $query = "SELECT `ip_number`, `ip_domain` FROM `server_ips` WHERE `ip_id` = ?"; $alsip_r = exec_query($sql, $query, $als_ip_id); $alsip_d = $alsip_r->fetchRow(); $als_ip = $alsip_d['ip_number']; $als_ip_name = $alsip_d['ip_domain']; if ($als_status === $cfg->ITEM_OK_STATUS) { $delete_link = "alias_delete.php?del_id=" . $als_id; $edit_link = "alias_edit.php?edit_id=" . $als_id; $action_text = tr("Delete"); $edit_text = tr("Edit"); } else { if ($als_status === $cfg->ITEM_ORDERED_STATUS) { $delete_link = "alias_order.php?action=delete&del_id=" . $als_id; $edit_link = "alias_order.php?action=activate&act_id=" . $als_id; $action_text = tr("Delete order"); $edit_text = tr("Activate"); } else { $delete_link = "#"; $edit_link = "#"; $action_text = tr('N/A'); $edit_text = tr('N/A'); } } $als_status = translate_dmn_status($als_status); $als_name = decode_idna($als_name); $show_als_fwd = decode_idna($show_als_fwd); $tpl->append(array('NAME' => tohtml($als_name), 'ALIAS_IP' => tohtml("{$als_ip} ({$als_ip_name})"), 'REAL_DOMAIN' => tohtml($domain_name), 'REAL_DOMAIN_MOUNT' => tohtml($als_mount_point), 'FORWARD' => tohtml($show_als_fwd), 'STATUS' => $als_status, 'ID' => $als_id, 'DELETE' => $action_text, 'DELETE_LINK' => $delete_link, 'EDIT_LINK' => $edit_link, 'EDIT' => $edit_text)); $rs->moveNext(); } }
/** * @param EasySCP_TemplateEngine $tpl * @param int $month * @param int $year * @param int $domain_id */ function generate_page($tpl, $month, $year, $domain_id) { $cfg = EasySCP_Registry::get('Config'); $sql = EasySCP_Registry::get('Db'); if ($month == date('m') && $year == date('Y')) { $curday = date('j'); } else { $tmp = mktime(1, 0, 0, $month + 1, 0, $year); $curday = date('j', $tmp); } $sum_web = 0; $sum_ftp = 0; $sum_mail = 0; $sum_pop = 0; for ($i = 1; $i <= $curday; $i++) { $ftm = mktime(0, 0, 0, $month, $i, $year); $ltm = mktime(23, 59, 59, $month, $i, $year); $query = "\n\t\t\tSELECT\n\t\t\t\t`dtraff_web_in`, `dtraff_web_out`, `dtraff_ftp_in`, `dtraff_ftp_out`, `dtraff_mail`, `dtraff_pop`, `dtraff_time`\n\t\t\tFROM\n\t\t\t\t`domain_traffic`\n\t\t\tWHERE\n\t\t\t\t`domain_id` = ?\n\t\t\tAND\n\t\t\t\t`dtraff_time` >= ?\n\t\t\tAND\n\t\t\t\t`dtraff_time` <= ?\n\t\t"; exec_query($sql, $query, array($domain_id, $ftm, $ltm)); list($web_trf, $ftp_trf, $pop_trf, $smtp_trf) = get_domain_trafic($ftm, $ltm, $domain_id); if ($web_trf == 0 && $ftp_trf == 0 && $smtp_trf == 0 && $pop_trf == 0) { $tpl->append(array('DATE' => date($cfg->DATE_FORMAT, strtotime($year . "-" . $month . "-" . $i)), 'WEB_TRAFFIC' => 0, 'FTP_TRAFFIC' => 0, 'SMTP_TRAFFIC' => 0, 'POP3_TRAFFIC' => 0, 'ALL_TRAFFIC' => 0)); } else { $sum_web += $web_trf; $sum_ftp += $ftp_trf; $sum_mail += $smtp_trf; $sum_pop += $pop_trf; $tpl->append(array('DATE' => date($cfg->DATE_FORMAT, strtotime($year . "-" . $month . "-" . $i)), 'WEB_TRAFFIC' => sizeit($web_trf), 'FTP_TRAFFIC' => sizeit($ftp_trf), 'SMTP_TRAFFIC' => sizeit($smtp_trf), 'POP3_TRAFFIC' => sizeit($pop_trf), 'ALL_TRAFFIC' => sizeit($web_trf + $ftp_trf + $smtp_trf + $pop_trf))); } } $sql_param = array(':domain_id' => $domain_id); $sql_query = "\n\t\tSELECT\n\t\t\ta.admin_id, a.admin_name\n\t\tFROM\n\t\t\tadmin a,\n\t\t\tdomain b\n\t\tWHERE\n\t\t\tb.domain_created_id = a.admin_id\n\t\tAND\n\t\t\tb.domain_id = :domain_id\n\t"; // Einzelne Schreibweise DB::prepare($sql_query); $row = DB::execute($sql_param, true); $tpl->assign(array('RESELLER_NAME' => $row['admin_name'], 'RESELLER_ID' => $row['admin_id'], 'MONTH' => $month, 'YEAR' => $year, 'DOMAIN_ID' => $domain_id, 'ALL_WEB_TRAFFIC' => sizeit($sum_web), 'ALL_FTP_TRAFFIC' => sizeit($sum_ftp), 'ALL_SMTP_TRAFFIC' => sizeit($sum_mail), 'ALL_POP3_TRAFFIC' => sizeit($sum_pop), 'ALL_ALL_TRAFFIC' => sizeit($sum_web + $sum_ftp + $sum_mail + $sum_pop))); }
/** * @param EasySCP_TemplateEngine $tpl * @param int $user_month * @param int $user_year */ function gen_select_lists($tpl, $user_month, $user_year) { global $crnt_month, $crnt_year; $cfg = EasySCP_Registry::get('Config'); if ($user_month != '' || $user_year != '') { $crnt_month = $user_month; $crnt_year = $user_year; } else { $crnt_month = date('m'); $crnt_year = date('Y'); } for ($i = 1; $i <= 12; $i++) { $tpl->append(array('MONTH_SELECTED' => $i == $crnt_month ? $cfg->HTML_SELECTED : '', 'MONTH_VALUE' => $i)); } for ($i = $crnt_year - 1; $i <= $crnt_year + 1; $i++) { $tpl->append(array('YEAR_SELECTED' => $i == $crnt_year ? $cfg->HTML_SELECTED : '', 'YEAR_VALUE' => $i)); } }
/** * @param EasySCP_TemplateEngine $tpl * @param int $month * @param int $year * @param int $user_id */ function gen_dmn_traff_list($tpl, $month, $year, $user_id) { $cfg = EasySCP_Registry::get('Config'); $sql = EasySCP_Registry::get('Db'); $query = "\n\t\tSELECT\n\t\t\t`domain_id`\n\t\tFROM\n\t\t\t`domain`\n\t\tWHERE\n\t\t\t`domain_admin_id` = ?\n\t"; $rs = exec_query($sql, $query, $user_id); $domain_id = $rs->fields('domain_id'); if ($month == date('m') && $year == date('Y')) { $curday = date('j'); } else { $tmp = mktime(1, 0, 0, $month + 1, 0, $year); $curday = date('j', $tmp); } $sum_web_in = 0; $sum_web_out = 0; $sum_ftp = 0; $sum_mail = 0; $sum_pop = 0; for ($i = 1; $i <= $curday; $i++) { $ftm = mktime(0, 0, 0, $month, $i, $year); $ltm = mktime(23, 59, 59, $month, $i, $year); /* $query = " SELECT `dtraff_web_in`, `dtraff_web_out`, `dtraff_ftp_in`, `dtraff_ftp_out`, `dtraff_mail`, `dtraff_pop`, `dtraff_time` FROM `domain_traffic` WHERE `domain_id` = ? AND `dtraff_time` >= ? AND `dtraff_time` <= ? "; exec_query($sql, $query, array($domain_id, $ftm, $ltm)); */ list($web_trf_in, $web_trf_out, $ftp_trf_in, $ftp_trf_out, $pop_trf, $smtp_trf) = get_domain_trafic($ftm, $ltm, $domain_id); $sum_web_in += $web_trf_in; $sum_web_out += $web_trf_out; $sum_ftp += $ftp_trf_in; $sum_ftp += $ftp_trf_out; $sum_mail += $smtp_trf; $sum_pop += $pop_trf; $date_formt = $cfg->DATE_FORMAT; $tpl->append(array('DATE' => date($date_formt, strtotime($year . "-" . $month . "-" . $i)), 'WEB_TRAFFIC_IN' => sizeit($web_trf_in), 'WEB_TRAFFIC_OUT' => sizeit($web_trf_out), 'FTP_TRAFFIC' => sizeit($ftp_trf_in + $ftp_trf_out), 'SMTP_TRAFFIC' => sizeit($smtp_trf), 'POP3_TRAFFIC' => sizeit($pop_trf), 'SUM_TRAFFIC' => sizeit($web_trf_in + $web_trf_out + $ftp_trf_in + $ftp_trf_out + $smtp_trf + $pop_trf))); } $tpl->assign(array('WEB_ALL_IN' => sizeit($sum_web_in), 'WEB_ALL_OUT' => sizeit($sum_web_out), 'FTP_ALL' => sizeit($sum_ftp), 'SMTP_ALL' => sizeit($sum_mail), 'POP3_ALL' => sizeit($sum_pop), 'SUM_ALL' => sizeit($sum_web_in + $sum_web_out + $sum_ftp + $sum_mail + $sum_pop))); }