/**
 * @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++;
        }
    }
}
Exemple #3
0
/**
 * @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();
        }
    }
}
Exemple #5
0
/**
 * 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;
}
Exemple #6
0
/**
 * 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
}
Exemple #7
0
/**
 * @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();
    }
}
Exemple #8
0
/**
 * @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])));
}
Exemple #10
0
/**
 * @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);
}
Exemple #11
0
/**
 * @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
    }
}
Exemple #12
0
/**
 * 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
}
Exemple #13
0
/**
 * @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));
    }
}
Exemple #14
0
/**
 * @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;
            }
        }
    }
}
Exemple #15
0
/**
 * 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', '');
    }
}
Exemple #16
0
/**
 * 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;
}
Exemple #17
0
/**
 * 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();
    }
}
Exemple #18
0
/**
 * @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();
        }
    }
}
Exemple #20
0
/**
 * @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' => ''));
    }
}
Exemple #21
0
/**
 * 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']);
    }
}
Exemple #22
0
/**
 * @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', '');
    }
}
Exemple #23
0
/**
 * 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();
        }
    }
}
Exemple #24
0
/**
 * @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)));
}
Exemple #25
0
/**
 * 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))));
}
Exemple #27
0
/**
 * 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&amp;del_id=" . $als_id;
                $edit_link = "alias_order.php?action=activate&amp;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();
    }
}
Exemple #28
0
/**
 * @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)));
}
Exemple #29
0
/**
 * @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));
    }
}
Exemple #30
0
/**
 * @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)));
}