function gen_htaccess_entries(&$tpl, &$sql, &$dmn_id)
{
    $query = <<<SQL_QUERY
        select
            *
        from
            htaccess
        where
             dmn_id = ?
SQL_QUERY;
    $rs = exec_query($sql, $query, array($dmn_id));
    if ($rs->RecordCount() == 0) {
        $tpl->assign('PROTECTED_AREAS', '');
        set_page_message(tr('You do not have protected areas'));
    } else {
        $counter = 0;
        while (!$rs->EOF) {
            if ($counter % 2 == 0) {
                $tpl->assign('CLASS', 'content');
            } else {
                $tpl->assign('CLASS', 'content2');
            }
            $id = $rs->fields['id'];
            $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'];
            $tpl->assign(array('AREA_NAME' => $auth_name, 'AREA_PATH' => $path, 'PID' => $id, 'STATUS' => translate_dmn_status($status)));
            $tpl->parse('DIR_ITEM', '.dir_item');
            $rs->MoveNext();
            $counter++;
        }
    }
}
/**
 * @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();
        }
    }
}
Beispiel #3
0
/**
 * Generates page
 *
 * @param iMSCP_pTemplate $tpl Template instance engine
 * @param int $domainId Domain unique identifier
 * @return void
 */
function reseller_generatePage($tpl, $domainId)
{
    $stmt = exec_query('
            SELECT
                domain_admin_id
            FROM
                domain
            INNER JOIN
                admin ON(admin_id = domain_admin_id)
            WHERE
                domain_id = ?
            AND
                created_by = ?
        ', array($domainId, $_SESSION['user_id']));
    if (!$stmt->rowCount()) {
        showBadRequestErrorPage();
    }
    $domainAdminId = $stmt->fields['domain_admin_id'];
    $domainProperties = get_domain_default_props($domainAdminId, $_SESSION['user_id']);
    // Domain IP address info
    $stmt = exec_query("SELECT ip_number FROM server_ips WHERE ip_id = ?", $domainProperties['domain_ip_id']);
    if (!$stmt->rowCount()) {
        $domainIpAddr = tr('Not found.');
    } else {
        $domainIpAddr = $stmt->fields['ip_number'];
    }
    $domainStatus = $domainProperties['domain_status'];
    // Domain status
    if ($domainStatus == 'ok' || $domainStatus == 'disabled' || $domainStatus == 'todelete' || $domainStatus == 'toadd' || $domainStatus == 'torestore' || $domainStatus == 'tochange' || $domainStatus == 'toenable' || $domainStatus == 'todisable') {
        $domainStatus = '<span style="color:green">' . tohtml(translate_dmn_status($domainStatus)) . '</span>';
    } else {
        $domainStatus = '<b><font size="3" color="red">' . $domainStatus . "</font></b>";
    }
    // Get total domain traffic usage in bytes
    $query = "\n        SELECT\n            IFNULL(SUM(dtraff_web), 0) AS dtraff_web, IFNULL(SUM(dtraff_ftp), 0) AS dtraff_ftp,\n            IFNULL(SUM(dtraff_mail), 0) AS dtraff_mail, IFNULL(SUM(dtraff_pop), 0) AS dtraff_pop\n        FROM\n            domain_traffic\n        WHERE\n            domain_id = ?\n        AND\n            dtraff_time BETWEEN ? AND ?\n    ";
    $stmt = exec_query($query, array($domainProperties['domain_id'], getFirstDayOfMonth(), getLastDayOfMonth()));
    if ($stmt->rowCount()) {
        $trafficUsageBytes = $stmt->fields['dtraff_web'] + $stmt->fields['dtraff_ftp'] + $stmt->fields['dtraff_mail'] + $stmt->fields['dtraff_pop'];
    } else {
        $trafficUsageBytes = 0;
    }
    // Get limits in bytes
    $trafficLimitBytes = $domainProperties['domain_traffic_limit'] * 1048576;
    $diskspaceLimitBytes = $domainProperties['domain_disk_limit'] * 1048576;
    // Get usages in percent
    $trafficUsagePercent = make_usage_vals($trafficUsageBytes, $trafficLimitBytes);
    $diskspaceUsagePercent = make_usage_vals($domainProperties['domain_disk_usage'], $diskspaceLimitBytes);
    // Get Email quota info
    list($quota, $quotaLimit) = reseller_gen_mail_quota_limit_mgs($domainAdminId);
    # Features
    $trEnabled = '<span style="color:green">' . tr('Enabled') . '</span>';
    $trDisabled = '<span style="color:red">' . tr('Disabled') . '</span>';
    $tpl->assign(array('DOMAIN_ID' => $domainId, 'VL_DOMAIN_NAME' => tohtml(decode_idna($domainProperties['domain_name'])), 'VL_DOMAIN_IP' => tohtml($domainIpAddr), 'VL_STATUS' => $domainStatus, 'VL_PHP_SUPP' => $domainProperties['domain_php'] == 'yes' ? $trEnabled : $trDisabled, 'VL_PHP_EDITOR_SUPP' => $domainProperties['phpini_perm_system'] == 'yes' ? $trEnabled : $trDisabled, 'VL_CGI_SUPP' => $domainProperties['domain_cgi'] == 'yes' ? $trEnabled : $trDisabled, 'VL_DNS_SUPP' => $domainProperties['domain_dns'] == 'yes' ? $trEnabled : $trDisabled, 'VL_EXT_MAIL_SUPP' => $domainProperties['domain_external_mail'] == 'yes' ? $trEnabled : $trDisabled, 'VL_SOFTWARE_SUPP' => $domainProperties['domain_software_allowed'] == 'yes' ? $trEnabled : $trDisabled, 'VL_BACKUP_SUP' => translate_limit_value($domainProperties['allowbackup']), 'VL_TRAFFIC_PERCENT' => $trafficUsagePercent, 'VL_TRAFFIC_USED' => bytesHuman($trafficUsageBytes), 'VL_TRAFFIC_LIMIT' => bytesHuman($trafficLimitBytes), 'VL_DISK_PERCENT' => $diskspaceUsagePercent, 'VL_DISK_USED' => bytesHuman($domainProperties['domain_disk_usage']), 'VL_DISK_LIMIT' => bytesHuman($diskspaceLimitBytes), 'VL_MAIL_ACCOUNTS_USED' => get_domain_running_mail_acc_cnt($domainId), 'VL_MAIL_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_mailacc_limit']), 'VL_MAIL_QUOTA_USED' => $quota, 'VL_MAIL_QUOTA_LIMIT' => $domainProperties['domain_mailacc_limit'] != '-1' ? $quotaLimit : tr('Disabled'), 'VL_FTP_ACCOUNTS_USED' => get_customer_running_ftp_acc_cnt($domainAdminId), 'VL_FTP_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_ftpacc_limit']), 'VL_SQL_DB_ACCOUNTS_USED' => get_domain_running_sqld_acc_cnt($domainId), 'VL_SQL_DB_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_sqld_limit']), 'VL_SQL_USER_ACCOUNTS_USED' => get_domain_running_sqlu_acc_cnt($domainId), 'VL_SQL_USER_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_sqlu_limit']), 'VL_SUBDOM_ACCOUNTS_USED' => get_domain_running_sub_cnt($domainId), 'VL_SUBDOM_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_subd_limit']), 'VL_DOMALIAS_ACCOUNTS_USED' => get_domain_running_als_cnt($domainId), 'VL_DOMALIAS_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_alias_limit'])));
}
Beispiel #4
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();
        }
    }
}
Beispiel #5
0
/**
 * Generate catchall item
 *
 * @param iMSCP_pTemplate $tpl
 * @param string $action Action
 * @param int $dmnId Domain unique identifier
 * @param string $dmnName Domain name
 * @param int $mailId Mail unique identifier
 * @param string $mailAcc Mail account
 * @param string $mailStatus Mail account status
 * @param string $catchallType Catchall type
 * @return void
 */
function client_generateCatchallItem($tpl, $action, $dmnId, $dmnName, $mailId, $mailAcc, $mailStatus, $catchallType)
{
    $showDmnName = decode_idna($dmnName);
    if ($action == 'create') {
        $tpl->assign(array('CATCHALL_DOMAIN' => tohtml($showDmnName), 'CATCHALL_ACC' => tr('None'), 'TR_CATCHALL_STATUS' => tr('N/A'), 'TR_CATCHALL_ACTION' => tr('Create catch all'), 'CATCHALL_ACTION' => $action, 'CATCHALL_ACTION_SCRIPT' => "mail_catchall_add.php?id={$dmnId};{$catchallType}", 'DEL_ICON' => ''));
    } else {
        list($catchallAction, $catchallActionScript) = client_generateAction($mailId, $mailStatus);
        $showDmnName = decode_idna($dmnName);
        $showMailAcc = decode_idna($mailAcc);
        $tpl->assign(array('CATCHALL_DOMAIN' => tohtml($showDmnName), 'CATCHALL_ACC' => tohtml($showMailAcc), 'TR_CATCHALL_STATUS' => translate_dmn_status($mailStatus), 'TR_CATCHALL_ACTION' => $catchallAction, 'CATCHALL_ACTION' => $catchallAction, 'CATCHALL_ACTION_SCRIPT' => $catchallActionScript));
        if ($catchallActionScript == '#') {
            $tpl->assign('DEL_ICON', '');
        }
    }
}
Beispiel #6
0
/**
 * Generate page
 *
 * @param $tpl TemplateEngine
 * @return void
 */
function opendkim_generatePage($tpl)
{
    $stmt = exec_query('
			SELECT
				opendkim_id, domain_name, opendkim_status, domain_dns, domain_text
			FROM
				opendkim
			LEFT JOIN domain_dns ON(
					domain_dns.domain_id = opendkim.domain_id
				AND
					domain_dns.alias_id = IFNULL(opendkim.alias_id, 0)
				AND
					owned_by = ?
			)
			WHERE
				admin_id = ?
		', array('OpenDKIM_Plugin', $_SESSION['user_id']));
    if ($stmt->rowCount()) {
        while ($row = $stmt->fetchRow(PDO::FETCH_ASSOC)) {
            if ($row['opendkim_status'] == 'ok') {
                $statusIcon = 'ok';
            } elseif ($row['opendkim_status'] == 'disabled') {
                $statusIcon = 'disabled';
            } elseif (in_array($row['opendkim_status'], array('toadd', 'tochange', 'todelete', 'torestore', 'tochange', 'toenable', 'todisable', 'todelete'))) {
                $statusIcon = 'reload';
            } else {
                $statusIcon = 'error';
            }
            if ($row['domain_text']) {
                if (strpos($row['domain_dns'], ' ') !== false) {
                    $dnsName = explode(' ', $row['domain_dns']);
                    $dnsName = $dnsName[0];
                } else {
                    $dnsName = $row['domain_dns'];
                }
            } else {
                $dnsName = '';
            }
            $tpl->assign(array('DOMAIN_NAME' => decode_idna($row['domain_name']), 'DOMAIN_KEY' => $row['domain_text'] ? tohtml($row['domain_text']) : tr('Generation in progress.'), 'OPENDKIM_ID' => $row['opendkim_id'], 'DNS_NAME' => $dnsName ? tohtml($dnsName) : tr('n/a'), 'KEY_STATUS' => translate_dmn_status($row['opendkim_status']), 'STATUS_ICON' => $statusIcon));
            $tpl->parse('DOMAINKEY_ITEM', '.domainkey_item');
        }
    } else {
        $tpl->assign('CUSTOMER_LIST', '');
        set_page_message(tr('No domain with OpenDKIM support has been found.'), 'static_info');
    }
}
Beispiel #7
0
/**
 * Generate an external mail server item
 *
 * @access private
 * @param iMSCP_pTemplate $tpl Template instance
 * @param string $externalMail Status of external mail for the domain
 * @param int $domainId Domain id
 * @param string $domainName Domain name
 * @param string $status Item status
 * @param string $type Domain type (normal for domain or alias for domain alias)
 * @return void
 */
function _client_generateItem($tpl, $externalMail, $domainId, $domainName, $status, $type)
{
    /** @var $cfg iMSCP_Config_Handler_File */
    $cfg = iMSCP_Registry::get('config');
    $idnDomainName = decode_idna($domainName);
    $statusOk = 'ok';
    $queryParam = urlencode("{$domainId};{$type}");
    $htmlDisabled = $cfg['HTML_DISABLED'];
    if ($externalMail == 'off') {
        $tpl->assign(array('DOMAIN' => $idnDomainName, 'STATUS' => $status == $statusOk ? tr('Deactivated') : translate_dmn_status($status), 'DISABLED' => $htmlDisabled, 'ITEM_TYPE' => $type, 'ITEM_ID' => $domainId, 'ACTIVATE_URL' => $status == $statusOk ? "mail_external_add.php?item={$queryParam}" : '#', 'TR_ACTIVATE' => $status == $statusOk ? tr('Activate') : tr('N/A'), 'EDIT_LINK' => '', 'DEACTIVATE_LINK' => ''));
        $tpl->parse('ACTIVATE_LINK', 'activate_link');
    } elseif (in_array($externalMail, array('domain', 'wildcard', 'filter'))) {
        $tpl->assign(array('DOMAIN' => $idnDomainName, 'STATUS' => $status == $statusOk ? tr('Activated') : translate_dmn_status($status), 'DISABLED' => $status == $statusOk ? '' : $htmlDisabled, 'ITEM_TYPE' => $type, 'ITEM_ID' => $domainId, 'ACTIVATE_LINK' => '', 'TR_EDIT' => $status == $statusOk ? tr('Edit') : tr('N/A'), 'EDIT_URL' => $status == $statusOk ? "mail_external_edit.php?item={$queryParam}" : '#', 'TR_DEACTIVATE' => $status == $statusOk ? tr('Deactivate') : tr('N/A'), 'DEACTIVATE_URL' => $status == $statusOk ? "mail_external_delete.php?item={$queryParam}" : '#'));
        $tpl->parse('EDIT_LINK', 'edit_link');
        $tpl->parse('DEACTIVATE_LINK', 'deactivate_link');
    }
}
Beispiel #8
0
/**
 * @param iMSCP_pTemplate $tpl
 * @param $dmn_id
 * @return void
 */
function gen_htaccess_entries($tpl, &$dmn_id)
{
    $query = "SELECT * FROM `htaccess` WHERE `dmn_id` = ?";
    $rs = exec_query($query, $dmn_id);
    if ($rs->recordCount() == 0) {
        $tpl->assign('PROTECTED_AREAS', '');
        set_page_message(tr('You do not have protected areas.'), 'static_info');
    } else {
        $counter = 0;
        while (!$rs->EOF) {
            $tpl->assign('CLASS', $counter % 2 == 0 ? 'content' : 'content2');
            $id = $rs->fields['id'];
            $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'];
            $tpl->assign(array('AREA_NAME' => tohtml($auth_name), 'JS_AREA_NAME' => addslashes($auth_name), 'AREA_PATH' => tohtml($path), 'PID' => $id, 'STATUS' => translate_dmn_status($status)));
            $tpl->parse('DIR_ITEM', '.dir_item');
            $rs->moveNext();
            $counter++;
        }
    }
}
Beispiel #9
0
/**
 * Generates users list.
 *
 * @param  iMSCP_pTemplate $tpl Template engine
 * @param  int $resellerId Reseller unique identifier
 * @return void
 */
function generate_users_list($tpl, $resellerId)
{
    $cfg = iMSCP_Registry::get('config');
    $rowsPerPage = $cfg['DOMAIN_ROWS_PER_PAGE'];
    if (isset($_POST['details']) && !empty($_POST['details'])) {
        $_SESSION['details'] = $_POST['details'];
    } else {
        if (!isset($_SESSION['details'])) {
            $_SESSION['details'] = 'hide';
        }
    }
    if (isset($_GET['psi']) && $_GET['psi'] == 'last') {
        if (isset($_SESSION['search_page'])) {
            $_GET['psi'] = $_SESSION['search_page'];
        } else {
            unset($_GET['psi']);
        }
    }
    // Search request generated?
    if (isset($_POST['search_for']) && !empty($_POST['search_for'])) {
        $_SESSION['search_for'] = trim(clean_input($_POST['search_for']));
        $_SESSION['search_common'] = $_POST['search_common'];
        $_SESSION['search_status'] = $_POST['search_status'];
        $startIndex = 0;
    } else {
        $startIndex = isset($_GET['psi']) ? (int) $_GET['psi'] : 0;
        if (isset($_SESSION['search_for']) && !isset($_GET['psi'])) {
            // He have not got scroll through patient records.
            unset($_SESSION['search_for']);
            unset($_SESSION['search_common']);
            unset($_SESSION['search_status']);
        }
    }
    $_SESSION['search_page'] = $startIndex;
    $searchQuery = '';
    $countQuery = '';
    if (isset($_SESSION['search_for'])) {
        gen_manage_domain_query($searchQuery, $countQuery, $resellerId, $startIndex, $rowsPerPage, $_SESSION['search_for'], $_SESSION['search_common'], $_SESSION['search_status']);
        gen_manage_domain_search_options($tpl, $_SESSION['search_for'], $_SESSION['search_common'], $_SESSION['search_status']);
    } else {
        gen_manage_domain_query($searchQuery, $countQuery, $resellerId, $startIndex, $rowsPerPage, 'n/a', 'n/a', 'n/a');
        gen_manage_domain_search_options($tpl, 'n/a', 'n/a', 'n/a');
    }
    $stmt = execute_query($countQuery);
    $rowCount = $stmt->fields['cnt'];
    $stmt = execute_query($searchQuery);
    if ($rowCount == 0) {
        if (isset($_SESSION['search_for'])) {
            $tpl->assign(array('USR_MESSAGE' => tr('No records found matching the search criteria.'), 'USERS_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '', 'TR_VIEW_DETAILS' => tr('View aliases'), 'SHOW_DETAILS' => tr('Show')));
            unset($_SESSION['search_for']);
            unset($_SESSION['search_common']);
            unset($_SESSION['search_status']);
        } else {
            $tpl->assign(array('USERS_SEARCH' => '', 'USR_MESSAGE' => tr('No customer accounts found.'), 'USERS_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_PREV_GRAY' => '', 'SCROLL_NEXT' => '', 'SCROLL_NEXT_GRAY' => '', 'TR_VIEW_DETAILS' => tr('View aliases'), 'SHOW_DETAILS' => tr('Show')));
        }
        $tpl->parse('USR_MESSAGE', 'usr_message');
    } else {
        $prevSi = $startIndex - $rowsPerPage;
        if ($startIndex == 0) {
            $tpl->assign('SCROLL_PREV', '');
        } else {
            $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prevSi));
        }
        $nextSi = $startIndex + $rowsPerPage;
        if ($nextSi + 1 > $rowCount) {
            $tpl->assign('SCROLL_NEXT', '');
        } else {
            $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $nextSi));
        }
        while ($row = $stmt->fetchRow(PDO::FETCH_ASSOC)) {
            if ($row['admin_status'] == 'ok' && $row['domain_status'] == 'ok') {
                $statusIcon = 'ok';
                $statusDomain = translate_dmn_status($row['domain_status']);
                $domainStatusTooltip = tr('Click to deactivate');
                $statusBool = true;
                $canChange = true;
            } else {
                if ($row['domain_status'] == 'disabled') {
                    $statusIcon = 'disabled';
                    $statusDomain = translate_dmn_status($row['domain_status']);
                    $domainStatusTooltip = tr('Click to activate');
                    $statusBool = false;
                    $canChange = true;
                } else {
                    if ($row['domain_status'] == 'toadd' || $row['domain_status'] == 'torestore' || $row['domain_status'] == 'tochange' || $row['domain_status'] == 'toenable' || $row['domain_status'] == 'todisable' || $row['domain_status'] == 'todelete') {
                        $statusIcon = 'reload';
                        $statusDomain = $domainStatusTooltip = translate_dmn_status($row['admin_status'] != 'ok' ? $row['admin_status'] : $row['domain_status']);
                        $statusBool = false;
                        $canChange = false;
                    } else {
                        $statusIcon = 'error';
                        $statusDomain = translate_dmn_status($row['admin_status'] != 'ok' ? $row['admin_status'] : $row['domain_status']);
                        $domainStatusTooltip = tr('An unexpected error occurred. Please contact your administrator.');
                        $statusBool = false;
                        $canChange = false;
                    }
                }
            }
            $domainId = $row['domain_id'];
            $tpl->assign(array('DOMAIN_STATUS' => $statusDomain, 'DOMAIN_STATUS_TOOLTIP' => $domainStatusTooltip, 'STATUS_ICON' => $statusIcon, 'DOMAIN_ID' => $domainId));
            if ($canChange) {
                $tpl->assign('DOMAIN_STATUS_NOCHANGE', '');
                $tpl->parse('DOMAIN_STATUS_CHANGE', 'domain_status_change');
            } else {
                $tpl->assign('DOMAIN_STATUS_CHANGE', '');
                $tpl->parse('DOMAIN_STATUS_NOCHANGE', 'domain_status_nochange');
            }
            $adminName = decode_idna($row['domain_name']);
            if ($statusBool == false) {
                // reload
                $tpl->assign('STATUS_RELOAD_TRUE', '');
                $tpl->assign('NAME', tohtml($adminName));
                $tpl->parse('STATUS_RELOAD_FALSE', 'status_reload_false');
            } else {
                $tpl->assign('STATUS_RELOAD_FALSE', '');
                $tpl->assign('NAME', $adminName);
                $tpl->parse('STATUS_RELOAD_TRUE', 'status_reload_true');
            }
            $domainCreated = $row['domain_created'];
            if ($domainCreated == 0) {
                $domainCreated = tr('N/A');
            } else {
                $domainCreated = date($cfg['DATE_FORMAT'], $domainCreated);
            }
            $tpl->assign(array('CREATION_DATE' => $domainCreated, 'ACTION' => tr('Delete'), 'USER_ID' => $row['domain_admin_id'], 'CHANGE_INTERFACE' => tr('Switch'), 'DISK_USAGE' => $row['domain_disk_limit'] ? tr('%1$s of %2$s', bytesHuman($row['domain_disk_usage']), mebibyteHuman($row['domain_disk_limit'])) : tr('%1$s of <b>unlimited</b>', bytesHuman($row['domain_disk_usage']))));
            gen_domain_details($tpl, $row['domain_id']);
            $tpl->parse('USER_ENTRY', '.user_entry');
        }
        $tpl->assign('USR_MESSAGE', '');
        $tpl->parse('USER_LIST', 'users_list');
    }
}
Beispiel #10
0
function gen_al_page(&$tpl, $reseller_id)
{
    global $sql;
    $dmn_id = $_SESSION['dmn_id'];
    $query = <<<SQL_QUERY
        select
            alias_id,
            alias_name,
            alias_status
        from
            domain_aliasses
        where
            domain_id = ?
SQL_QUERY;
    $rs = exec_query($sql, $query, array($dmn_id));
    if ($rs->RecordCount() == 0) {
        $tpl->assign('ALIAS_LIST', '');
    } else {
        $i = 0;
        while (!$rs->EOF) {
            $alias_name = decode_idna($rs->fields['alias_name']);
            $alias_status = translate_dmn_status($rs->fields['alias_status']);
            if ($i % 2 == 0) {
                $page_cont = 'content';
            } else {
                $page_cont = 'content2';
            }
            $tpl->assign(array('DOMAIN_ALIS' => $alias_name, 'STATUS' => $alias_status, 'CLASS' => $page_cont));
            $i++;
            $tpl->parse('ALIAS_ENTRY', '.alias_entry');
            $rs->MoveNext();
        }
    }
}
Beispiel #11
0
/**
 * Helper function to generate a user list
 *
 * @param iMSCP_pTemplate $tpl iMSCP_pTemplate instance
 * @return void
 */
function gen_user_list($tpl)
{
    /** @var $cfg iMSCP_Config_Handler_File */
    $cfg = iMSCP_Registry::get('config');
    $startIndex = 0;
    $rowsPerPage = $cfg['DOMAIN_ROWS_PER_PAGE'];
    if (isset($_GET['psi']) && $_GET['psi'] == 'last') {
        if (isset($_SESSION['search_page'])) {
            $_GET['psi'] = $_SESSION['search_page'];
        } else {
            unset($_GET['psi']);
        }
    }
    if (isset($_GET['psi'])) {
        $startIndex = $_GET['psi'];
    }
    // Search request generated ?
    if (isset($_POST['uaction']) && !empty($_POST['uaction'])) {
        $_SESSION['search_for'] = clean_input($_POST['search_for']);
        $_SESSION['search_common'] = $_POST['search_common'];
        $_SESSION['search_status'] = $_POST['search_status'];
        $startIndex = 0;
    } elseif (isset($_SESSION['search_for']) && !isset($_GET['psi'])) {
        // He have not got scroll through patient records
        unset($_SESSION['search_for']);
        unset($_SESSION['search_common']);
        unset($_SESSION['search_status']);
    }
    $searchQuery = $countQuery = '';
    if (isset($_SESSION['search_for'])) {
        gen_admin_domain_query($searchQuery, $countQuery, $startIndex, $rowsPerPage, $_SESSION['search_for'], $_SESSION['search_common'], $_SESSION['search_status']);
        gen_admin_domain_search_options($tpl, $_SESSION['search_for'], $_SESSION['search_common'], $_SESSION['search_status']);
        $stmt = exec_query($countQuery);
    } else {
        gen_admin_domain_query($searchQuery, $countQuery, $startIndex, $rowsPerPage, 'n/a', 'n/a', 'n/a');
        gen_admin_domain_search_options($tpl, 'n/a', 'n/a', 'n/a');
        $stmt = exec_query($countQuery);
    }
    $recordCount = $stmt->fields['cnt'];
    $stmt = execute_query($searchQuery);
    if (!$stmt->rowCount()) {
        if (isset($_SESSION['search_for'])) {
            $tpl->assign(array('USR_MESSAGE' => tr('No records found matching the search criteria.'), 'USR_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '', 'TR_VIEW_DETAILS' => tr('view aliases'), 'SHOW_DETAILS' => 'show'));
            unset($_SESSION['search_for']);
            unset($_SESSION['search_common']);
            unset($_SESSION['search_status']);
        } else {
            $tpl->assign(array('SEARCH_FORM' => '', 'USR_MESSAGE' => tr('No customer accounts found.'), 'USR_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '', 'TR_VIEW_DETAILS' => tr('view aliases'), 'SHOW_DETAILS' => 'show'));
        }
        $tpl->parse('USR_MESSAGE', 'usr_message');
    } else {
        $prevSi = $startIndex - $rowsPerPage;
        if ($startIndex == 0) {
            $tpl->assign('SCROLL_PREV', '');
        } else {
            $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prevSi));
        }
        $nextSi = $startIndex + $rowsPerPage;
        if ($nextSi + 1 > $recordCount) {
            $tpl->assign('SCROLL_NEXT', '');
        } else {
            $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $nextSi));
        }
        $tpl->assign(array('TR_USR_USERNAME' => tr('Username'), 'TR_USR_CREATED_BY' => tr('Created by'), 'TR_USR_ACTIONS' => tr('Actions'), 'TR_USER_STATUS' => tr('Status'), 'TR_DETAILS' => tr('Details')));
        while ($row = $stmt->fetchRow(PDO::FETCH_ASSOC)) {
            // user status icon
            $domainCreatedBy = $row['created_by'];
            $stmt2 = exec_query('SELECT admin_name, admin_status FROM admin WHERE admin_id = ?', $domainCreatedBy);
            if (!isset($stmt2->fields['admin_name'])) {
                $createdByName = tr('N/A');
            } else {
                $createdByName = $stmt2->fields['admin_name'];
            }
            $tpl->assign(array('USR_DELETE_SHOW' => '', 'USER_ID' => $row['admin_id'], 'DOMAIN_ID' => $row['domain_id'], 'TR_DELETE' => tr('Delete'), 'URL_DELETE_USR' => 'user_delete.php?domain_id=' . $row['domain_id'], 'TR_CHANGE_USER_INTERFACE' => tr('Switch to user interface'), 'GO_TO_USER_INTERFACE' => tr('Switch'), 'URL_CHANGE_INTERFACE' => 'change_user_interface.php?to_id=' . $row['domain_admin_id'], 'USR_USERNAME' => tohtml($row['domain_name']), 'TR_EDIT_DOMAIN' => tr('Edit domain'), 'TR_EDIT_USR' => tr('Edit user')));
            $tpl->parse('USR_DELETE_LINK', 'usr_delete_link');
            if ($row['admin_status'] == 'ok' && $row['domain_status'] == 'ok') {
                $status = 'ok';
                $statusTooltip = tr('Click to deactivate');
                $statusTxt = translate_dmn_status($row['domain_status']);
                $statusBool = true;
                $canChange = true;
            } elseif ($row['domain_status'] == 'disabled') {
                $status = 'disabled';
                $statusTooltip = tr('Click to activate');
                $statusTxt = translate_dmn_status($row['domain_status']);
                $statusBool = false;
                $canChange = true;
            } elseif ($row['domain_status'] == 'toadd' || $row['domain_status'] == 'torestore' || $row['domain_status'] == 'tochange' || $row['domain_status'] == 'toenable' || $row['domain_status'] == 'todisable' || $row['domain_status'] == 'todelete') {
                $status = 'reload';
                $statusTxt = $statusTooltip = translate_dmn_status($row['admin_status'] != 'ok' ? $row['admin_status'] : $row['domain_status']);
                $statusBool = false;
                $canChange = false;
            } else {
                $status = 'error';
                $statusTooltip = tr('An unexpected error occurred. Go to the debugger interface for more details.');
                $statusTxt = translate_dmn_status($row['admin_status'] != 'ok' ? $row['admin_status'] : $row['domain_status']);
                $statusBool = false;
                $canChange = false;
            }
            $tpl->assign(array('STATUS' => $status, 'STATUS_TOOLTIP' => $statusTooltip, 'TR_STATUS' => $statusTxt));
            if ($canChange) {
                $tpl->assign('DOMAIN_STATUS_NOCHANGE', '');
                $tpl->parse('DOMAIN_STATUS_CHANGE', 'domain_status_change');
            } else {
                $tpl->assign('DOMAIN_STATUS_CHANGE', '');
                $tpl->parse('DOMAIN_STATUS_NOCHANGE', 'domain_status_nochange');
            }
            $adminName = decode_idna($row['domain_name']);
            $domainCreated = $row['domain_created'];
            if ($domainCreated == 0) {
                $domainCreated = tr('N/A');
            } else {
                $date_formt = $cfg['DATE_FORMAT'];
                $domainCreated = date($date_formt, $domainCreated);
            }
            $domainExpires = $row['domain_expires'];
            if ($domainExpires == 0) {
                $domainExpires = tr('Not Set');
            } else {
                $date_formt = $cfg['DATE_FORMAT'];
                $domainExpires = date($date_formt, $domainExpires);
            }
            if ($statusBool == false) {
                // reload
                $tpl->assign('USR_STATUS_RELOAD_TRUE', '');
                $tpl->assign('USR_USERNAME', tohtml($adminName));
                $tpl->parse('USR_STATUS_RELOAD_FALSE', 'usr_status_reload_false');
            } else {
                $tpl->assign('USR_STATUS_RELOAD_FALSE', '');
                $tpl->assign('USR_USERNAME', tohtml($adminName));
                $tpl->parse('USR_STATUS_RELOAD_TRUE', 'usr_status_reload_true');
            }
            $tpl->assign(array('USER_CREATED_ON' => tohtml($domainCreated), 'USER_EXPIRES_ON' => $domainExpires, 'USR_CREATED_BY' => tohtml($createdByName), 'USR_OPTIONS' => '', 'URL_EDIT_USR' => 'admin_edit.php?edit_id=' . $row['domain_admin_id'], 'TR_MESSAGE_DELETE' => tojs(tr('Are you sure you want to delete %s?', '%s'))));
            gen_domain_details($tpl, $row['domain_id']);
            $tpl->parse('USR_ITEM', '.usr_item');
        }
        $tpl->parse('USR_LIST', 'usr_list');
        $tpl->assign('USR_MESSAGE', '');
    }
}
/**
 * Generates groups list.
 *
 * @param iMSCP_pTemplate $tpl Template engine instance
 * @param int $domainId Domain unique identifier
 * @return void
 */
function client_genetateGroupsList($tpl, $domainId)
{
    $query = "SELECT * FROM `htaccess_groups` WHERE `dmn_id` = ? ORDER BY `dmn_id` DESC";
    $stmt = exec_query($query, $domainId);
    if (!$stmt->rowCount()) {
        $tpl->assign(array('GROUPS_MESSAGE' => tr('No group found.'), 'GROUPS_BLOCK' => ''));
    } else {
        $tpl->assign('GROUPS_MESSAGE_BLOCK', '');
        foreach ($stmt->fetchAll() as $group) {
            list($groupDeleteTranslation, $groupDeleteJsScript) = _client_generateHtgroupAction($group['status'], $group['ugroup']);
            $tpl->assign(array('GNAME' => tohtml($group['ugroup']), 'GSTATUS' => translate_dmn_status($group['status']), 'GROUP_ID' => $group['id'], 'GROUP_DELETE' => $groupDeleteTranslation, 'GROUP_DELETE_SCRIPT' => $groupDeleteJsScript));
            if (empty($group['members'])) {
                $tpl->assign('GROUP_MEMBERS', '');
            } else {
                $query = "SELECT `uname` FROM `htaccess_users` WHERE `id` IN({$group['members']})";
                $stmt = execute_query($query);
                $tpl->assign('MEMBER', tohtml(implode(', ', $stmt->fetchAll(PDO::FETCH_COLUMN))));
                $tpl->parse('GROUP_MEMBERS', '.group_members');
            }
            $tpl->parse('GROUP_BLOCK', '.group_block');
            $tpl->assign('GROUP_MEMBERS', '');
            $stmt->moveNext();
        }
    }
}
Beispiel #13
0
/**
 * Generates Ips action.
 *
 * @access private
 * @param int $ipId Ip address unique identifier
 * @param string $status
 * @return array
 */
function _client_generateIpAction($ipId, $status)
{
    if ($status == 'ok') {
        return array(tr('Remove IP'), 'ip_delete.php?delete_id=' . $ipId);
    } elseif ($status == 'todelete') {
        return array(translate_dmn_status('todelete'), '#');
    } elseif ($status == 'toadd') {
        return array(translate_dmn_status('toadd'), '#');
    } elseif (!in_array($status, array('toadd', 'tochange', 'ok', 'todelete'))) {
        return array(tr('Unknown Error'), '#');
    } else {
        return array(tr('N/A'), '#');
    }
}
Beispiel #14
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', '');
    }
}
Beispiel #15
0
/**
 * Generates subdomains list
 *
 * @param iMSCP_pTemplate $tpl Template engine
 * @return void
 */
function generateSubdomainsList($tpl)
{
    if (!customerHasFeature('subdomains')) {
        $tpl->assign('SUBDOMAINS_BLOCK', '');
        return;
    }
    $domainId = get_user_domain_id($_SESSION['user_id']);
    // Subdomains
    $stmt1 = exec_query('
            SELECT subdomain_id, subdomain_name, subdomain_mount, subdomain_status, subdomain_url_forward, domain_name
            FROM subdomain JOIN domain ON (subdomain.domain_id = domain.domain_id)
            WHERE subdomain.domain_id = ? ORDER BY subdomain_name
        ', $domainId);
    // Domain aliases subdomains
    $stmt2 = exec_query('
            SELECT subdomain_alias_id, subdomain_alias_name, subdomain_alias_mount, subdomain_alias_url_forward,
                subdomain_alias_status, alias_name
            FROM subdomain_alias JOIN domain_aliasses ON subdomain_alias.alias_id = domain_aliasses.alias_id
            WHERE domain_id = ?
            ORDER BY subdomain_alias_name
        ', $domainId);
    if (!$stmt1->rowCount() && !$stmt2->rowCount()) {
        $tpl->assign(array('SUB_MSG' => tr('You do not have subdomains.'), 'SUB_LIST' => ''));
        return;
    }
    while ($row = $stmt1->fetchRow()) {
        $domainName = $row['domain_name'];
        $subId = $row['subdomain_id'];
        $subName = $row['subdomain_name'];
        $subStatus = $row['subdomain_status'];
        $subUrlForward = $row['subdomain_url_forward'];
        $subMountPoint = $row['subdomain_mount'];
        list($action, $actionScript, $isStatusOk, $certText, $certScript) = generateSubdomainAction($subId, $subStatus);
        list($redirectUrl, $editLink, $edit) = generateSubdomainRedirect($subId, $subStatus, $subUrlForward, 'dmn');
        $domainName = decode_idna($domainName);
        $subName = decode_idna($subName);
        $redirectUrl = decode_idna($redirectUrl);
        if ($isStatusOk) {
            $tpl->assign(array('SUB_NAME' => tohtml($subName), 'SUB_ALIAS_NAME' => tohtml($domainName), 'SUB_STATUS_RELOAD_FALSE' => ''));
            $tpl->parse('SUB_STATUS_RELOAD_TRUE', 'sub_status_reload_true');
        } else {
            $tpl->assign(array('SUB_NAME' => tohtml($subName), 'SUB_ALIAS_NAME' => tohtml($domainName), 'SUB_STATUS_RELOAD_TRUE' => ''));
            $tpl->parse('SUB_STATUS_RELOAD_FALSE', 'sub_status_reload_false');
        }
        $tpl->assign(array('SUB_MOUNT' => tohtml($subMountPoint), 'SUB_REDIRECT' => $redirectUrl, 'SUB_STATUS' => translate_dmn_status($subStatus), 'SUB_EDIT_LINK' => $editLink, 'SUB_EDIT' => $edit, 'CERT_SCRIPT' => $certScript, 'VIEW_CERT' => $certText, 'SUB_ACTION' => $action, 'SUB_ACTION_SCRIPT' => $actionScript));
        $tpl->parse('SUB_ITEM', '.sub_item');
    }
    while ($row = $stmt2->fetchRow(PDO::FETCH_ASSOC)) {
        $alsName = $row['alias_name'];
        $alssubId = $row['subdomain_alias_id'];
        $alssubName = $row['subdomain_alias_name'];
        $alssubStatus = $row['subdomain_alias_status'];
        $alssubMountPoint = $row['subdomain_alias_mount'];
        $alssubUrlForward = $row['subdomain_alias_url_forward'];
        list($action, $actionScript, $isStatusOk, $certText, $certScript) = generateSubdomainAliasAction($alssubId, $alssubStatus);
        list($redirectUrl, $editLink, $edit) = generateSubdomainRedirect($alssubId, $alssubStatus, $alssubUrlForward, 'als');
        $alsName = decode_idna($alsName);
        $name = decode_idna($alssubName);
        $redirectUrl = decode_idna($redirectUrl);
        if ($isStatusOk) {
            $tpl->assign(array('SUB_NAME' => tohtml($name), 'SUB_ALIAS_NAME' => tohtml($alsName), 'SUB_STATUS_RELOAD_FALSE' => ''));
            $tpl->parse('SUB_STATUS_RELOAD_TRUE', 'sub_status_reload_true');
        } else {
            $tpl->assign(array('SUB_NAME' => tohtml($name), 'SUB_ALIAS_NAME' => tohtml($alsName), 'SUB_STATUS_RELOAD_TRUE' => ''));
            $tpl->parse('SUB_STATUS_RELOAD_FALSE', 'sub_status_reload_false');
        }
        $tpl->assign(array('SUB_NAME' => tohtml($name), 'SUB_MOUNT' => tohtml($alssubMountPoint), 'SUB_REDIRECT' => $redirectUrl, 'SUB_STATUS' => translate_dmn_status($alssubStatus), 'SUB_EDIT_LINK' => $editLink, 'SUB_EDIT' => $edit, 'CERT_SCRIPT' => $certScript, 'VIEW_CERT' => $certText, 'SUB_ACTION' => $action, 'SUB_ACTION_SCRIPT' => $actionScript));
        $tpl->parse('SUB_ITEM', '.sub_item');
    }
    $tpl->assign('SUB_MESSAGE', '');
}
Beispiel #16
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();
        }
    }
}
Beispiel #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();
    }
}
Beispiel #18
0
/**
 * Generate Mail accounts list
 *
 * @param iMSCP_pTemplate $tpl reference to the template object
 * @param int $mainDmnId Customer main domain unique identifier
 * @return int number of subdomain mails addresses
 */
function _client_generateMailAccountsList($tpl, $mainDmnId)
{
    /** @var $cfg iMSCP_Config_Handler_File */
    $cfg = iMSCP_Registry::get('config');
    $stmt = exec_query("\n\t\t\tSELECT\n\t\t\t\t`mail_id`, `mail_pass`,\n\t\t\t \tCONCAT(LEFT(`mail_forward`, 30), IF(LENGTH(`mail_forward`) > 30, '...', '')) AS `mail_forward`,\n\t\t\t \t`mail_type`, `status`, `mail_auto_respond`, `quota`, `mail_addr`\n\t\t\tFROM\n\t\t\t\t`mail_users`\n\t\t\tWHERE\n\t\t\t\t`domain_id` = ?\n\t\t\tAND\n\t\t\t\t`mail_type` NOT LIKE '%catchall%'\n\t\t\tORDER BY\n\t\t\t\t`mail_addr` ASC, `mail_type` DESC\n\t\t", $mainDmnId);
    $rowCount = $stmt->rowCount();
    if (!$rowCount) {
        return 0;
    } else {
        $mainDmnProps = get_domain_default_props($_SESSION['user_id']);
        $mailQuotaLimit = $mainDmnProps['mail_quota'] ? bytesHuman($mainDmnProps['mail_quota']) : 0;
        $imapAvailable = function_exists('imap_open');
        if ($imapAvailable) {
            imap_timeout(IMAP_OPENTIMEOUT, 1);
            imap_timeout(IMAP_READTIMEOUT, 2);
            imap_timeout(IMAP_CLOSETIMEOUT, 4);
        }
        $imapTimeoutReached = false;
        while ($row = $stmt->fetchRow(PDO::FETCH_ASSOC)) {
            list($mailDelete, $mailDeleteScript, $mailEdit, $mailEditScript) = _client_generateUserMailAction($row['mail_id'], $row['status']);
            $mailAddr = $row['mail_addr'];
            $mailTypes = explode(',', $row['mail_type']);
            $mailType = '';
            $isMailbox = 0;
            foreach ($mailTypes as $type) {
                $mailType .= user_trans_mail_type($type);
                if (strpos($type, '_forward') !== false) {
                    $mailType .= ': ' . str_replace(',', ', ', $row['mail_forward']);
                } else {
                    $isMailbox = 1;
                }
                $mailType .= '<br />';
            }
            if ($isMailbox && $row['status'] == 'ok') {
                if ($imapAvailable) {
                    $quotaMax = $row['quota'];
                    if ($quotaMax) {
                        if (!$imapTimeoutReached && ($imapStream = @imap_open("{localhost/notls}", $mailAddr, $row['mail_pass'], OP_HALFOPEN))) {
                            $quotaUsage = imap_get_quotaroot($imapStream, 'INBOX');
                            imap_close($imapStream);
                            if (!empty($quotaUsage)) {
                                $quotaUsage = $quotaUsage['usage'] * 1024;
                            } else {
                                $quotaUsage = 0;
                            }
                            $quotaMax = bytesHuman($quotaMax);
                            $txtQuota = $mailQuotaLimit ? tr('%s / %s of %s', bytesHuman($quotaUsage), $quotaMax, $mailQuotaLimit) : sprintf('%s / %s', bytesHuman($quotaUsage), $quotaMax);
                        } else {
                            $imapTimeoutReached = true;
                            $txtQuota = tr('Info Unavailable');
                        }
                    } else {
                        $txtQuota = tr('unlimited');
                    }
                } else {
                    $txtQuota = tr('Info Unavailable');
                }
            } else {
                $txtQuota = '---';
            }
            $tpl->assign(array('MAIL_ADDR' => tohtml(decode_idna($mailAddr)), 'MAIL_TYPE' => $mailType, 'MAIL_STATUS' => translate_dmn_status($row['status']), 'MAIL_DELETE' => $mailDelete, 'MAIL_DELETE_SCRIPT' => $mailDeleteScript, 'MAIL_EDIT' => $mailEdit, 'MAIL_EDIT_SCRIPT' => $mailEditScript, 'MAIL_QUOTA_VALUE' => $txtQuota, 'DEL_ITEM' => $row['mail_id'], 'DISABLED_DEL_ITEM' => $row['status'] != 'ok' ? $cfg->HTML_DISABLED : ''));
            _client_generateUserMailAutoRespond($tpl, $row['mail_id'], $row['status'], $row['mail_auto_respond']);
            $tpl->parse('MAIL_ITEM', '.mail_item');
        }
        return $rowCount;
    }
}
function gen_detaildom_page(&$tpl, $user_id, $domain_id)
{
    global $sql;
    // Get domain data
    $query = <<<SQL_QUERY
      select
          *,
          IFNULL(domain_disk_usage, 0) as domain_disk_usage
      from
          domain
      where
          domain_id = ?;
SQL_QUERY;
    $res = exec_query($sql, $query, array($domain_id));
    $data = $res->FetchRow();
    if ($res->RecordCount() <= 0) {
        header('Location: manage_users.php');
        die;
    }
    // Get admin data
    $query = "select admin_name from admin where admin_id = ?";
    $res1 = exec_query($sql, $query, array($data['domain_admin_id']));
    $data1 = $res1->FetchRow();
    if ($res1->RecordCount() <= 0) {
        header('Location: manage_users.php');
        die;
    }
    // Get IP-info
    $query = "select * from server_ips where ip_id = ?";
    $ipres = exec_query($sql, $query, array($data['domain_ip_id']));
    $ipdat = $ipres->FetchRow();
    // Get staus name
    $dstatus = $data['domain_status'];
    global $cfg;
    if ($dstatus == $cfg['ITEM_OK_STATUS'] || $dstatus == $cfg['ITEM_DISABLED_STATUS'] || $dstatus == $cfg['ITEM_DELETE_STATUS'] || $dstatus == $cfg['ITEM_ADD_STATUS'] || $dstatus == $cfg['ITEM_RESTORE_STATUS'] || $dstatus == $cfg['ITEM_CHANGE_STATUS'] || $dstatus == $cfg['ITEM_TOENABLE_STATUS'] || $dstatus == $cfg['ITEM_TODISABLED_STATUS']) {
        $dstatus = translate_dmn_status($data['domain_status']);
    } else {
        $dstatus = "<b><font size=3 color=red>" . $data['domain_status'] . "</font></b>";
    }
    if ($data['domain_php'] == 'yes') {
        $php_stat = 'Enabled';
    } else {
        $php_stat = 'disabled';
    }
    if ($data['domain_cgi'] == 'yes') {
        $cgi_stat = 'Enabled';
    } else {
        $cgi_stat = 'disabled';
    }
    if ($data['domain_sqld_limit'] >= 0) {
        $sql_stat = 'Enabled';
    } else {
        $sql_stat = 'disabled';
    }
    // Traffic diagram
    $fdofmnth = mktime(0, 0, 0, date("m"), 1, date("Y"));
    $ldofmnth = mktime(1, 0, 0, date("m") + 1, 0, date("Y"));
    $query = <<<SQL_QUERY
        select
            IFNULL(sum(dtraff_web),0) as dtraff_web,
            IFNULL(sum(dtraff_ftp), 0) as dtraff_ftp,
            IFNULL(sum(dtraff_mail), 0) as dtraff_mail,
            IFNULL(sum(dtraff_pop),0) as dtraff_pop
        from
            domain_traffic
        where
            domain_id = ?
          and
            dtraff_time > ?
          and
            dtraff_time < ?
SQL_QUERY;
    $res7 = exec_query($sql, $query, array($data['domain_id'], $fdofmnth, $ldofmnth));
    $dtraff = $res7->FetchRow();
    $sumtraff = $dtraff['dtraff_web'] + $dtraff['dtraff_ftp'] + $dtraff['dtraff_mail'] + $dtraff['dtraff_pop'];
    $dtraffmb = sprintf("%.1f", $sumtraff / 1024 / 1024);
    $month = date("m");
    $year = date("Y");
    $query = "select * from server_ips where ip_id=?";
    $res8 = exec_query($sql, $query, array($data['domain_ip_id']));
    $ipdat = $res8->FetchRow();
    $domain_traffic_limit = $data['domain_traffic_limit'];
    $domain_all_traffic = $sumtraff;
    //$dtraff['traffic'];
    $traff = $domain_all_traffic / 1024 / 1024;
    $mtraff = sprintf("%.2f", $traff);
    if ($domain_traffic_limit == 0) {
        $pr = 0;
    } else {
        $pr = $traff / $domain_traffic_limit * 100;
        $pr = sprintf("%.2f", $pr);
    }
    $indx = (int) $pr;
    list($traffic_percent, $indx, $a) = make_usage_vals($domain_all_traffic, $domain_traffic_limit * 1024 * 1024);
    // Get disk status
    $domdu = $data['domain_disk_usage'];
    $domdl = $data['domain_disk_limit'];
    $tmp = $domdu / 1024 / 1024;
    if ($domdu == 0) {
        $dpr = 0;
    } else {
        if ($domdl == 0) {
            $dpr = 0;
        } else {
            $dpr = $tmp / $domdl * 100;
            $dpr = sprintf("%.2f", $dpr);
        }
    }
    $dindx = (int) $dpr;
    $domduh = make_hr($domdu);
    list($disk_percent, $dindx, $b) = make_usage_vals($domdu, $domdl * 1024 * 1024);
    // Get current mail count
    $query = "select count(mail_id) as mcnt from mail_users where domain_id = ?";
    $res6 = exec_query($sql, $query, array($data['domain_id']));
    $dat3 = $res6->FetchRow();
    if ($data['domain_mailacc_limit'] == 0) {
        $mail_limit = tr('unlimited');
    } else {
        if ($data['domain_mailacc_limit'] == -1) {
            $mail_limit = tr('None');
        } else {
            $mail_limit = $data['domain_mailacc_limit'];
        }
    }
    // FTP stat
    $query = "select gid from ftp_group where groupname = ?";
    $res4 = exec_query($sql, $query, array($data['domain_name']));
    $ftp_gnum = $res4->RowCount();
    if ($ftp_gnum == 0) {
        $used_ftp_acc = 0;
    } else {
        $dat1 = $res4->FetchRow();
        $query = "select count(uid) as ftp_cnt from ftp_users where gid=?";
        $res5 = exec_query($sql, $query, array($dat1['gid']));
        $dat2 = $res5->FetchRow();
        $used_ftp_acc = $dat2['ftp_cnt'];
    }
    if ($data['domain_ftpacc_limit'] == 0) {
        $ftp_limit = tr('unlimited');
    } else {
        $ftp_limit = $data['domain_ftpacc_limit'];
    }
    // Get sql database count
    $query = "select count(sqld_id) as dnum from sql_database where domain_id=?";
    $res = exec_query($sql, $query, array($data['domain_id']));
    $dat5 = $res->FetchRow();
    if ($data['domain_sqld_limit'] == 0) {
        $sql_db = tr('unlimited');
    } else {
        if ($data['domain_sqld_limit'] == -1) {
            $sql_db = tr('None');
        } else {
            $sql_db = $data['domain_sqld_limit'];
        }
    }
    // Get sql users count
    $query = "select count(u.sqlu_id) as ucnt from sql_user u,sql_database d where u.sqld_id=d.sqld_id and d.domain_id=?";
    $res = exec_query($sql, $query, array($data['domain_id']));
    $dat6 = $res->FetchRow();
    if ($data['domain_sqlu_limit'] == 0) {
        $sql_users = tr('unlimited');
    } else {
        if ($data['domain_sqlu_limit'] == -1) {
            $sql_users = tr('None');
        } else {
            $sql_users = $data['domain_sqlu_limit'];
        }
    }
    // Get sub domain
    $query = "select count(subdomain_id) as sub_num from subdomain where domain_id=?";
    $res1 = exec_query($sql, $query, array($data['domain_id']));
    $sub_num_data = $res1->FetchRow();
    if ($data['domain_subd_limit'] == 0) {
        $sub_dom = tr('unlimited');
    } else {
        if ($data['domain_subd_limit'] == -1) {
            $sub_dom = tr('None');
        } else {
            $sub_dom = $data['domain_subd_limit'];
        }
    }
    //Get domain aliases
    $query = "select count(alias_id) as alias_num from domain_aliasses where domain_id=?";
    $res1 = exec_query($sql, $query, array($data['domain_id']));
    $alias_num_data = $res1->FetchRow();
    if ($data['domain_alias_limit'] == 0) {
        $dom_alias = tr('unlimited');
    } else {
        if ($data['domain_alias_limit'] == -1) {
            $dom_alias = tr('None');
        } else {
            $dom_alias = $data['domain_alias_limit'];
        }
    }
    // Fill in the fileds
    $tpl->assign(array('VL_DOMAIN_NAME' => $data['domain_name'], 'VL_DOMAIN_IP' => $ipdat['ip_number'] . ' (' . $ipdat['ip_alias'] . ')', 'VL_STATUS' => $dstatus, 'VL_PHP_SUPP' => tr($php_stat), 'VL_CGI_SUPP' => tr($cgi_stat), 'VL_MYSQL_SUPP' => tr($sql_stat), 'VL_TRAFFIC_PERCENT' => $traffic_percent, 'VL_TRAFFIC_USED' => make_hr($domain_all_traffic), 'VL_TRAFFIC_LIMIT' => make_hr($domain_traffic_limit * 1024 * 1024), 'VL_DISK_PERCENT' => $disk_percent, 'VL_DISK_USED' => $domduh, 'VL_DISK_LIMIT' => make_hr($data['domain_disk_limit'] * 1024 * 1024), 'VL_MAIL_ACCOUNTS_USED' => $dat3['mcnt'], 'VL_MAIL_ACCOUNTS_LIIT' => $mail_limit, 'VL_FTP_ACCOUNTS_USED' => $used_ftp_acc, 'VL_FTP_ACCOUNTS_LIIT' => $ftp_limit, 'VL_SQL_DB_ACCOUNTS_USED' => $dat5['dnum'], 'VL_SQL_DB_ACCOUNTS_LIIT' => $sql_db, 'VL_SQL_USER_ACCOUNTS_USED' => $dat6['ucnt'], 'VL_SQL_USER_ACCOUNTS_LIIT' => $sql_users, 'VL_SUBDOM_ACCOUNTS_USED' => $sub_num_data['sub_num'], 'VL_SUBDOM_ACCOUNTS_LIIT' => $sub_dom, 'VL_DOMALIAS_ACCOUNTS_USED' => $alias_num_data['alias_num'], 'VL_DOMALIAS_ACCOUNTS_LIIT' => $dom_alias));
}
Beispiel #20
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param int $user_id
 * @param int $domain_id
 */
function gen_detaildom_page($tpl, $user_id, $domain_id)
{
    $sql = EasySCP_Registry::get('Db');
    $cfg = EasySCP_Registry::get('Config');
    // Get domain data
    $query = "\n\t\tSELECT\n\t\t\t*,\n\t\t\tIFNULL(`domain_disk_usage`, 0) AS domain_disk_usage\n\t\tFROM\n\t\t\t`domain`\n\t\tWHERE\n\t\t\t`domain_id` = ?\n\t";
    $res = exec_query($sql, $query, $domain_id);
    $data = $res->fetchRow();
    if ($res->recordCount() <= 0) {
        user_goto('users.php?psi=last');
    }
    // Get admin data
    $created_by = $_SESSION['user_id'];
    $query = "SELECT `admin_name` FROM `admin` WHERE `admin_id` = ? AND `created_by` = ?";
    $res1 = exec_query($sql, $query, array($data['domain_admin_id'], $created_by));
    // NXW: Unused variable so...
    // $data1 = $res1->fetchRow();
    $res1->fetchRow();
    if ($res1->recordCount() <= 0) {
        user_goto('users.php?psi=last');
    }
    // Get IP info
    $query = "SELECT * FROM `server_ips` WHERE `ip_id` = ?";
    $ipres = exec_query($sql, $query, $data['domain_ip_id']);
    $ipres->fetchRow();
    // Get staus name
    $dstatus = translate_dmn_status($data['status']);
    // Traffic diagram
    $fdofmnth = mktime(0, 0, 0, date("m"), 1, date("Y"));
    $ldofmnth = mktime(1, 0, 0, date("m") + 1, 0, date("Y"));
    $query = "SELECT\n\t\t\tIFNULL(SUM(`dtraff_web_in`), 0) AS dtraff_web_in,\n\t\t\tIFNULL(SUM(`dtraff_web_out`), 0) AS dtraff_web_out,\n\t\t\tIFNULL(SUM(`dtraff_ftp_in`), 0) AS dtraff_ftp_in,\n\t\t\tIFNULL(SUM(`dtraff_ftp_out`), 0) AS dtraff_ftp_out,\n\t\t\tIFNULL(SUM(`dtraff_mail`), 0) AS dtraff_mail,\n\t\t\tIFNULL(SUM(`dtraff_pop`),0) AS dtraff_pop\n\t\tFROM\n\t\t\t`domain_traffic`\n\t\tWHERE\n\t\t\t`domain_id` = ?\n\t\tAND\n\t\t\t`dtraff_time` > ?\n\t\tAND\n\t\t\t`dtraff_time` < ?\n\t";
    $res7 = exec_query($sql, $query, array($data['domain_id'], $fdofmnth, $ldofmnth));
    $dtraff = $res7->fetchRow();
    $sumtraff = $dtraff['dtraff_web_in'] + $dtraff['dtraff_web_out'] + $dtraff['dtraff_ftp_in'] + $dtraff['dtraff_ftp_out'] + $dtraff['dtraff_mail'] + $dtraff['dtraff_pop'];
    // NXW: Unused variables so ...
    /*
    $dtraffmb = sprintf("%.1f", ($sumtraff / 1024) / 1024);
    $month = date("m");
    $year = date("Y");
    */
    $query = "SELECT * FROM `server_ips` WHERE `ip_id` = ?";
    $res8 = exec_query($sql, $query, $data['domain_ip_id']);
    $ipdat = $res8->fetchRow();
    $domain_traffic_limit = $data['domain_traffic_limit'];
    $domain_all_traffic = $sumtraff;
    $traffic_percent = $domain_all_traffic != 0 ? sprintf("%.2f", 100 * $domain_all_traffic / ($domain_traffic_limit * 1024 * 1024)) : 0;
    // Get disk status
    $domdu = $data['domain_disk_usage'];
    $domdl = $data['domain_disk_limit'];
    $domduh = sizeit($domdu);
    $disk_percent = sprintf("%.2f", 100 * $domdu / ($domdl * 1024 * 1024));
    // Get current mail count
    $query = "SELECT COUNT(`mail_id`) AS mcnt " . "FROM `mail_users` " . "WHERE `domain_id` = ? " . "AND `mail_type` NOT RLIKE '_catchall'";
    $res6 = exec_query($sql, $query, $data['domain_id']);
    $dat3 = $res6->fetchRow();
    $mail_limit = translate_limit_value($data['domain_mailacc_limit']);
    // FTP stat
    $query = "SELECT `gid` FROM `ftp_group` WHERE `groupname` = ?";
    $res4 = exec_query($sql, $query, $data['domain_name']);
    $ftp_gnum = $res4->rowCount();
    if ($ftp_gnum == 0) {
        $used_ftp_acc = 0;
    } else {
        $dat1 = $res4->fetchRow();
        $query = "SELECT COUNT(*) AS ftp_cnt FROM `ftp_users` WHERE `gid` = ?";
        $res5 = exec_query($sql, $query, $dat1['gid']);
        $dat2 = $res5->fetchRow();
        $used_ftp_acc = $dat2['ftp_cnt'];
    }
    $ftp_limit = translate_limit_value($data['domain_ftpacc_limit']);
    // Get sql database count
    $query = "SELECT COUNT(*) AS dnum FROM `sql_database` WHERE `domain_id` = ?";
    $res = exec_query($sql, $query, $data['domain_id']);
    $dat5 = $res->fetchRow();
    $sql_db = translate_limit_value($data['domain_sqld_limit']);
    // Get sql users count
    $query = "SELECT COUNT(u.`sqlu_id`) AS ucnt FROM sql_user u, sql_database d WHERE u.`sqld_id` = d.`sqld_id` AND d.`domain_id` = ?";
    $res = exec_query($sql, $query, $data['domain_id']);
    $dat6 = $res->fetchRow();
    $sql_users = translate_limit_value($data['domain_sqlu_limit']);
    // Get subdomain
    $query = "SELECT COUNT(`subdomain_id`) AS sub_num FROM `subdomain` WHERE `domain_id` = ?";
    $res1 = exec_query($sql, $query, $domain_id);
    $sub_num_data = $res1->fetchRow();
    $query = "SELECT COUNT(`subdomain_alias_id`) AS sub_num FROM `subdomain_alias` WHERE `alias_id` IN (SELECT `alias_id` FROM `domain_aliasses` WHERE `domain_id` = ?)";
    $res1 = exec_query($sql, $query, $domain_id);
    $alssub_num_data = $res1->fetchRow();
    $sub_dom = translate_limit_value($data['domain_subd_limit']);
    // Get domain aliases
    $query = "SELECT COUNT(*) AS alias_num FROM `domain_aliasses` WHERE `domain_id` = ?";
    $res1 = exec_query($sql, $query, $domain_id);
    $alias_num_data = $res1->fetchRow();
    // Check if Backup support is available for this user
    switch ($data['allowbackup']) {
        case "full":
            $tpl->assign(array('VL_BACKUP_SUPPORT' => tr('Full')));
            break;
        case "sql":
            $tpl->assign(array('VL_BACKUP_SUPPORT' => tr('SQL')));
            break;
        case "dmn":
            $tpl->assign(array('VL_BACKUP_SUPPORT' => tr('Domain')));
            break;
        default:
            $tpl->assign(array('VL_BACKUP_SUPPORT' => tr('No')));
    }
    $dom_alias = translate_limit_value($data['domain_alias_limit']);
    // Fill in the fields
    $tpl->assign(array('DOMAIN_ID' => $data['domain_id'], 'VL_DOMAIN_NAME' => tohtml(decode_idna($data['domain_name'])), 'VL_DOMAIN_IP' => tohtml($ipdat['ip_number'] . ' (' . $ipdat['ip_alias'] . ')'), 'VL_STATUS' => $dstatus, 'VL_PHP_SUPP' => $data['domain_php'] == 'yes' ? tr('Enabled') : tr('Disabled'), 'VL_CGI_SUPP' => $data['domain_cgi'] == 'yes' ? tr('Enabled') : tr('Disabled'), 'VL_DNS_SUPP' => $data['domain_dns'] == 'yes' ? tr('Enabled') : tr('Disabled'), 'VL_MYSQL_SUPP' => $data['domain_sqld_limit'] >= 0 ? tr('Enabled') : tr('Disabled'), 'VL_TRAFFIC_PERCENT' => $traffic_percent, 'VL_TRAFFIC_USED' => sizeit($domain_all_traffic), 'VL_TRAFFIC_LIMIT' => sizeit($domain_traffic_limit, 'MB'), 'VL_DISK_PERCENT' => $disk_percent, 'VL_DISK_USED' => $domduh, 'VL_DISK_LIMIT' => sizeit($data['domain_disk_limit'], 'MB'), 'VL_MAIL_ACCOUNTS_USED' => $dat3['mcnt'], 'VL_MAIL_ACCOUNTS_LIIT' => $mail_limit, 'VL_FTP_ACCOUNTS_USED' => $used_ftp_acc, 'VL_FTP_ACCOUNTS_LIIT' => $ftp_limit, 'VL_SQL_DB_ACCOUNTS_USED' => $dat5['dnum'], 'VL_SQL_DB_ACCOUNTS_LIIT' => $sql_db, 'VL_SQL_USER_ACCOUNTS_USED' => $dat6['ucnt'], 'VL_SQL_USER_ACCOUNTS_LIIT' => $sql_users, 'VL_SUBDOM_ACCOUNTS_USED' => $sub_num_data['sub_num'] + $alssub_num_data['sub_num'], 'VL_SUBDOM_ACCOUNTS_LIIT' => $sub_dom, 'VL_DOMALIAS_ACCOUNTS_USED' => $alias_num_data['alias_num'], 'VL_DOMALIAS_ACCOUNTS_LIIT' => $dom_alias));
}
Beispiel #21
0
/**
 * Get table data
 *
 * @return array
 */
function reseller_getDatatable()
{
    $columns = array('alias_name', 'alias_mount', 'url_forward', 'admin_name', 'alias_status');
    $nbColumns = count($columns);
    /* Paging */
    $limit = '';
    if (isset($_GET['iDisplayStart']) && isset($_GET['iDisplayLength']) && $_GET['iDisplayLength'] != '-1') {
        $limit = 'LIMIT ' . intval($_GET['iDisplayStart']) . ', ' . intval($_GET['iDisplayLength']);
    }
    /* Ordering */
    $order = '';
    if (isset($_GET['iSortCol_0'])) {
        $order = 'ORDER BY ';
        if (isset($_GET['iSortingCols'])) {
            $iSortingCols = intval($_GET['iSortingCols']);
            for ($i = 0; $i < $iSortingCols; $i++) {
                if (isset($_GET['iSortCol_' . $i]) && isset($_GET['bSortable_' . intval($_GET['iSortCol_' . $i])]) && $_GET['bSortable_' . intval($_GET['iSortCol_' . $i])] == 'true' && isset($_GET['sSortDir_' . $i])) {
                    $order .= $columns[intval($_GET['iSortCol_' . $i])] . ' ' . $_GET['sSortDir_' . $i] . ', ';
                }
            }
        }
        $order = substr_replace($order, '', -2);
        if ($order == 'ORDER BY') {
            $order = '';
        }
    }
    /* Filtering */
    $where = 'WHERE created_by = ' . quoteValue($_SESSION['user_id'], PDO::PARAM_INT);
    if (isset($_GET['sSearch']) && $_GET['sSearch'] != '') {
        $where .= ' AND (';
        for ($i = 0; $i < $nbColumns; $i++) {
            $where .= "{$columns[$i]} LIKE " . quoteValue("%{$_GET['sSearch']}%") . ' OR ';
        }
        $where = substr_replace($where, '', -3);
        $where .= ')';
    }
    /* Individual column filtering */
    for ($i = 0; $i < $nbColumns; $i++) {
        if (isset($_GET["bSearchable_{$i}"]) && $_GET["bSearchable_{$i}"] == 'true' && isset($_GET["sSearch_{$i}"]) && $_GET["sSearch_{$i}"] != '') {
            $where .= "AND {$columns[$i]} LIKE " . quoteValue("%{$_GET["sSearch_{$i}"]}%");
        }
    }
    /* Get data to display */
    $rResult = execute_query("\n\t\t\tSELECT\n\t\t\t\tSQL_CALC_FOUND_ROWS alias_id, " . implode(', ', $columns) . "\n\t\t\tFROM\n\t\t\t\tdomain_aliasses\n\t\t\tINNER JOIN\n\t\t\t\tdomain USING(domain_id)\n\t\t\tINNER JOIN\n\t\t\t\tadmin ON(admin_id = domain_admin_id)\n\t\t\t{$where}\n\t\t\t{$order}\n\t\t\t{$limit}\n\t\t");
    /* Total records after filtering (without limit) */
    $stmt = execute_query('SELECT FOUND_ROWS()');
    $iTotalDisplayRecords = $stmt->fetchRow(PDO::FETCH_NUM);
    $iTotalDisplayRecords = $iTotalDisplayRecords[0];
    /* Total record before any filtering */
    $stmt = exec_query("\n\t\t\tSELECT\n\t\t\t\tCOUNT(alias_id)\n\t\t\tFROM\n\t\t\t\tdomain_aliasses\n\t\t\tINNER JOIN\n\t\t\t\tdomain USING(domain_id)\n\t\t\tINNER JOIN\n\t\t\t\tadmin ON(admin_id = domain_admin_id)\n\t\t\tWHERE\n\t\t\t\tcreated_by = ?\n\t\t", $_SESSION['user_id']);
    $iTotalRecords = $stmt->fetchRow(PDO::FETCH_NUM);
    $iTotalRecords = $iTotalRecords[0];
    /* Output */
    $output = array('sEcho' => intval($_GET['sEcho']), 'iTotalDisplayRecords' => $iTotalDisplayRecords, 'iTotalRecords' => $iTotalRecords, 'aaData' => array());
    $trDelete = tr('Delete');
    $trEdit = tr('Edit');
    $trActivate = tr('Activate');
    while ($data = $rResult->fetchRow(PDO::FETCH_ASSOC)) {
        $row = array();
        $aliasName = decode_idna($data['alias_name']);
        for ($i = 0; $i < $nbColumns; $i++) {
            if ($columns[$i] == 'alias_name') {
                if ($data['alias_status'] == 'ok') {
                    $row[$columns[$i]] = "<a href=\"http://www.{$aliasName}\" target=\"_blank\" class=\"icon i_domain_icon\">" . $aliasName . '</a>';
                } else {
                    $row[$columns[$i]] = '<span class="icon i_domain_icon">' . decode_idna($data[$columns[$i]]) . '</span>';
                }
            } elseif ($columns[$i] == 'admin_name') {
                $row[$columns[$i]] = tohtml(decode_idna($data[$columns[$i]]));
            } elseif ($columns[$i] == 'alias_status') {
                $row[$columns[$i]] = translate_dmn_status($data[$columns[$i]]);
            } else {
                $row[$columns[$i]] = tohtml($data[$columns[$i]]);
            }
        }
        $aliasId = $data['alias_id'];
        switch ($data['alias_status']) {
            case 'ok':
                $actions = "<a href=\"alias_edit.php?id={$aliasId}\" class=\"icon i_edit\" " . "title=\"{$trEdit}\">{$trEdit}</a>";
                $actions .= "\n<a href=\"alias_delete.php?id={$aliasId}\" onclick=\"return delete_alias('{$aliasName}')\" " . "class=\"icon i_close\" title=\"{$trDelete}\">{$trDelete}</a>";
                break;
            case 'ordered':
                $actions = "<a href=\"alias_order.php?action=activate&act_id={$aliasId}\" class=\"icon i_open\" " . "title=\"{$trActivate}\">{$trActivate}</a>";
                $actions .= "\n<a href=\"alias_order.php?action=delete&del_id={$aliasId}\" " . "onclick=\"return delete_alias_order('{$aliasName}')\" class=\"icon i_close\" " . "title=\"{$trDelete}\">{$trDelete}</a>";
                break;
            default:
                $actions = tr('n\\a');
        }
        $row['actions'] = $actions;
        $output['aaData'][] = $row;
    }
    return $output;
}
Beispiel #22
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param string $action
 * @param int $dmn_id
 * @param string $dmn_name
 * @param int $mail_id
 * @param string $mail_acc
 * @param string $mail_status
 * @param string $ca_type
 */
function gen_catchall_item($tpl, $action, $dmn_id, $dmn_name, $mail_id, $mail_acc, $mail_status, $ca_type)
{
    $show_dmn_name = decode_idna($dmn_name);
    if ($action === 'create') {
        $tpl->append(array('CATCHALL_DOMAIN' => tohtml($show_dmn_name), 'CATCHALL_ACC' => tr('None'), 'CATCHALL_STATUS' => tr('N/A'), 'CATCHALL_ACTION' => tr('Create catch all'), 'CATCHALL_ACTION_SCRIPT' => "mail_catchall_add.php?id={$dmn_id};{$ca_type}"));
    } else {
        list($catchall_action, $catchall_action_script) = gen_user_catchall_action($mail_id, $mail_status);
        $show_dmn_name = decode_idna($dmn_name);
        $show_mail_acc = decode_idna($mail_acc);
        $tpl->append(array('CATCHALL_DOMAIN' => tohtml($show_dmn_name), 'CATCHALL_ACC' => tohtml($show_mail_acc), 'CATCHALL_STATUS' => translate_dmn_status($mail_status), 'CATCHALL_ACTION' => $catchall_action, 'CATCHALL_ACTION_SCRIPT' => $catchall_action_script));
    }
}
Beispiel #23
0
/**
 * Generate page
 *
 * @param $tpl iMSCP_pTemplate
 * @param iMSCP_Plugin_Manager $pluginManager
 * @param int $userId
 * @return void
 */
function ownddns_generateAccountsList($tpl, $pluginManager, $userId)
{
    /** @var $cfg iMSCP_Config_Handler_File */
    $cfg = iMSCP_Registry::get('config');
    if (($plugin = $pluginManager->loadPlugin('OwnDDNS', false, false)) !== null) {
        $pluginConfig = $plugin->getConfig();
    } else {
        set_page_message(tr("Can't load plugin configuration!"), 'error');
        redirectTo('ownddns.php');
    }
    $baseServerVhostPrefix = $cfg->BASE_SERVER_VHOST_PREFIX == 'https://' ? 'http(s)://' : $cfg->BASE_SERVER_VHOST_PREFIX;
    if ($pluginConfig['use_base64_encoding'] === TRUE) {
        $udateURL = $baseServerVhostPrefix . $cfg->BASE_SERVER_VHOST . '/ownddns.php?action=update&data=<b64>AccountName;AccessKey;FQDN</b64>';
        set_page_message(tr('Base64 encoding is activated. Your router must send the data base64 encrypted!<br />Update-URL: <strong>%s</strong>', $udateURL), 'info');
    } else {
        $udateURL = $baseServerVhostPrefix . $cfg->BASE_SERVER_VHOST . '/ownddns.php?action=update&data=AccountName;AccessKey;FQDN';
        set_page_message(tr('Base64 encoding is deactivated. <br />Update-URL: <strong>%s</strong>', $udateURL), 'info');
    }
    $rowsPerPage = $cfg->DOMAIN_ROWS_PER_PAGE;
    if (isset($_GET['psi']) && $_GET['psi'] == 'last') {
        unset($_GET['psi']);
    }
    $startIndex = isset($_GET['psi']) ? (int) $_GET['psi'] : 0;
    $countQuery = "\n\t\tSELECT COUNT(`admin_id`) AS `cnt` \n\t\tFROM \n\t\t\t`ownddns_accounts`\n\t\tWHERE\n\t\t\t`admin_id` = ?\n\t";
    $stmt = exec_query($countQuery, $userId);
    $recordsCount = $stmt->fields['cnt'];
    $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`ownddns_accounts`\n\t\tWHERE\n\t\t\t`admin_id` = ?\n\t\tORDER BY\n\t\t\t`ownddns_account_name` ASC\n\t";
    $stmt = exec_query($query, $userId);
    if ($stmt->rowCount()) {
        $prevSi = $startIndex - $rowsPerPage;
        if ($startIndex == 0) {
            $tpl->assign('SCROLL_PREV', '');
        } else {
            $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prevSi));
        }
        $nextSi = $startIndex + $rowsPerPage;
        if ($nextSi + 1 > $recordsCount) {
            $tpl->assign('SCROLL_NEXT', '');
        } else {
            $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $nextSi));
        }
        while ($data = $stmt->fetchRow()) {
            if ($data['ownddns_account_status'] == $cfg->ITEM_OK_STATUS) {
                $statusIcon = 'ok';
            } elseif ($data['ownddns_account_status'] == $cfg->ITEM_DISABLED_STATUS) {
                $statusIcon = 'disabled';
            } elseif ($data['ownddns_account_status'] == $cfg->ITEM_TOADD_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TOCHANGE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TODELETE_STATUS || ($data['ownddns_account_status'] == $cfg->ITEM_TOADD_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TORESTORE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TOCHANGE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TOENABLE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TODISABLE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TODELETE_STATUS)) {
                $statusIcon = 'reload';
            } else {
                $statusIcon = 'error';
            }
            $tpl->assign(array('OWNDDNS_ACCOUNT_NAME' => $data['ownddns_account_name'], 'OWNDDNS_ACCOUNT_FQDN' => $data['ownddns_account_fqdn'], 'OWNDDNS_ACCOUNT_KEY' => $data['ownddns_key'], 'OWNDDNS_ACCOUNT_ID' => $data['ownddns_account_id'], 'OWNDDNS_LAST_IP' => $data['ownddns_last_ip'] != '' ? $data['ownddns_last_ip'] : 'N/A', 'OWNDDNS_LAST_UPDATE' => $data['ownddns_last_update'] != '0000-00-00 00:00:00' ? $data['ownddns_last_update'] : 'N/A', 'OWNDDNS_ACCOUNT_STATUS' => translate_dmn_status($data['ownddns_account_status']), 'STATUS_ICON' => $statusIcon));
            $tpl->parse('OWNDDNS_ACCOUNT_ITEM', '.ownddns_account_item');
        }
        $tpl->assign('OWNDDNS_NO_ACCOUNT_ITEM', '');
        $tpl->parse('OWNDDNS_ACCOUNT_LIST', 'ownddns_account_list');
    } else {
        $tpl->assign(array('OWNDDNS_ACCOUNT_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_PREV_GRAY' => '', 'SCROLL_NEXT' => '', 'SCROLL_NEXT_GRAY' => ''));
    }
    $tpl->assign(array('OWNDDNS_EDIT_ACCOUNT' => '', 'MAX_ACCOUNT_NAME_LENGHT' => $pluginConfig['max_accounts_lenght']));
}
Beispiel #24
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();
    }
}
function generate_als_list(&$tpl, $reseller_id, &$als_err)
{
    global $sql, $cfg;
    $have_aliases = '_no_';
    $start_index = 0;
    $rows_per_page = $cfg['DOMAIN_ROWS_PER_PAGE'];
    $current_psi = 0;
    $search_for = '';
    $search_common = '';
    if (isset($_GET['psi'])) {
        $start_index = $_GET['psi'];
        $current_psi = $_GET['psi'];
    }
    if (isset($_POST['uaction']) && $_POST['uaction'] !== '') {
        $_SESSION['search_for'] = trim($_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' => $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($_SESSION['search_common']) && $_SESSION['search_common'] == 'alias_name') {
            $query = <<<SQL_QUERY

        select

\t\t    t1.*, t2.domain_id, t2.domain_name, t2.domain_created_id

\t\tfrom

\t\t    domain_aliasses as t1,
\t\t\tdomain as t2

\t\twhere

\t\t\talias_name rlike '{$search_for}'

\t\tand

\t\t\tt2.domain_created_id = {$reseller_id}

\t\tand

\t\t\tt1.domain_id = t2.domain_id

\t\torder by

\t\t\tt1.alias_id desc

\t\tlimit

\t\t\t{$start_index}, {$rows_per_page}


SQL_QUERY;
            // count query
            $count_query = <<<SQL_QUERY

                select

                    count(alias_id) as cnt

                from

\t\t   \tdomain_aliasses as t1,
\t\t\tdomain as t2

\t\twhere

\t\t\tt2.domain_created_id = {$reseller_id}

\t\tand

\t\t\talias_name rlike '{$search_for}'

\t\tand

\t\t\tt1.domain_id = t2.domain_id


SQL_QUERY;
        } else {
            $query = <<<SQL_QUERY

        select

\t\t    t1.*, t2.domain_id, t2.domain_name, t2.domain_created_id

\t\tfrom

\t\t    domain_aliasses as t1,
\t\t\tdomain as t2

\t\twhere

\t\t\tt2.domain_name rlike '{$search_for}'

\t\tand

\t\t\tt1.domain_id = t2.domain_id

\t\tand

\t\t\tt2.domain_created_id = {$reseller_id}

\t\torder by

\t\t\tt1.alias_id desc

\t\tlimit

\t\t\t{$start_index}, {$rows_per_page}


SQL_QUERY;
            // count query
            $count_query = <<<SQL_QUERY

                select

                    count(alias_id) as cnt

                from

\t\t    domain_aliasses as t1,
\t\t\tdomain as t2

\t\twhere

\t\t\tt2.domain_created_id = {$reseller_id}

\t\tand

\t\t\tt2.domain_name rlike '{$search_for}'

\t\tand

\t\t\tt1.domain_id = t2.domain_id

SQL_QUERY;
        }
    } else {
        // count query
        $count_query = <<<SQL_QUERY
                select
                    count(alias_id) as cnt
                from
                    domain_aliasses as t1,
                    domain as t2
                where
                    t1.domain_id = t2.domain_id
                  and
                    t2.domain_created_id = ?
SQL_QUERY;
    }
    // lets count
    $rs = exec_query($sql, $count_query, array($reseller_id));
    $records_count = $rs->fields['cnt'];
    $query = <<<SQL_QUERY
        select
             t1.*, t2.domain_id, t2.domain_name, t2.domain_created_id
        from
            domain_aliasses as t1,
            domain as t2
        where
            t1.domain_id = t2.domain_id
          and
            t2.domain_created_id = ?
        order by
            t1.alias_id desc
        limit
            {$start_index}, {$rows_per_page}
SQL_QUERY;
    // Get all alias records
    $rs = exec_query($sql, $query, array($reseller_id));
    if ($records_count == 0) {
        $tpl->assign(array('TABLE_LIST' => '', 'USERS_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => ''));
        if (isset($_SESSION['search_for'])) {
            $als_err = tr('Not found user records matching the search criteria!');
        } 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));
        }
    }
    $i = 1;
    while (!$rs->EOF) {
        $als_id = $rs->fields['alias_id'];
        $domain_id = $rs->fields['domain_id'];
        $als_name = $rs->fields['alias_name'];
        $als_mount_point = $rs->fields['alias_mount'];
        $als_status = $rs->fields['alias_status'];
        $als_ip_id = $rs->fields['alias_ip_id'];
        $als_fwd = $rs->fields['url_forward'];
        $als_fwd = $als_fwd == 'no' ? tr('disabled') : tr('enabled');
        $domain_name = decode_idna($rs->fields['domain_name']);
        if ($als_mount_point == '') {
            $als_mount_point = "/";
        }
        $query = "select ip_number, ip_domain from server_ips where ip_id = ?";
        $alsip_r = exec_query($sql, $query, array($als_ip_id));
        $alsip_d = $alsip_r->FetchRow();
        $als_ip = $alsip_d['ip_number'];
        $als_ip_name = $alsip_d['ip_domain'];
        if ($i % 2 == 0) {
            $page_cont = 'content';
        } else {
            $page_cont = 'content2';
        }
        if ($als_status === 'ok') {
            $delete_link = "delete_domainalias.php?del_id=" . $als_id;
            $edit_link = "edit_alias.php?edit_id=" . $als_id;
            $action_text = tr('delete');
        } else {
            $delete_link = "#";
            $edit_link = "#";
            $action_text = tr('N/A');
        }
        $als_status = translate_dmn_status($als_status);
        $als_name = decode_idna($als_name);
        if (isset($_SESSION['search_common']) && $_SESSION['search_common'] === 'account_name') {
            $domain_name_selected = "";
            $account_name_selected = "selected";
        } else {
            $domain_name_selected = "selected";
            $account_name_selected = "";
        }
        $tpl->assign(array('NAME' => $als_name, 'ALIAS_IP' => "{$als_ip} ({$als_ip_name})", 'REAL_DOMAIN' => $domain_name, 'REAL_DOMAIN_MOUNT' => $als_mount_point, 'FORWARD' => $als_fwd, 'STATUS' => $als_status, 'ID' => $als_id, 'DELETE' => $action_text, 'CONTENT' => $page_cont, 'DELETE_LINK' => $delete_link, 'EDIT_LINK' => $edit_link, 'M_DOMAIN_NAME_SELECTED' => $domain_name_selected, 'M_ACCOUN_NAME_SELECTED' => $account_name_selected));
        $i++;
        $tpl->parse('TABLE_ITEM', '.table_item');
        $rs->MoveNext();
    }
}
Beispiel #26
0
function gen_page_dmn_mail_list(&$tpl, &$sql, $dmn_id, $dmn_name)
{
    $dmn_query = <<<SQL_QUERY

        select

            mail_id, mail_acc, mail_type, status, mail_auto_respond

        from

            mail_users

        where

            domain_id = '{$dmn_id}'

          and

            sub_id = 0
\t\t\t
\t\tand 
\t\t\t
\t\t\t\t(mail_type  = 'normal_mail'
\t\t\tor
\t\t\t\tmail_type  = 'normal_forward')

        order by

            mail_type desc,

            mail_id

SQL_QUERY;
    $rs = execute_query($sql, $dmn_query);
    if ($rs->RecordCount() == 0) {
        return 0;
    } else {
        while (!$rs->EOF) {
            list($mail_action, $mail_action_script, $mail_edit_script) = gen_user_mail_action($rs->fields['mail_id'], $rs->fields['status']);
            $mail_acc = decode_idna($rs->fields['mail_acc']);
            $show_dmn_name = decode_idna($dmn_name);
            $tpl->assign(array('MAIL_ACC' => $mail_acc . "@" . $show_dmn_name, 'MAIL_TYPE' => user_trans_mail_type($rs->fields['mail_type']), 'MAIL_STATUS' => translate_dmn_status($rs->fields['status']), 'MAIL_ACTION' => $mail_action, 'MAIL_ACTION_SCRIPT' => $mail_action_script, 'MAIL_EDIT_SCRIPT' => $mail_edit_script));
            gen_user_mail_auto_respond($tpl, $rs->fields['mail_id'], $rs->fields['mail_type'], $rs->fields['status'], $rs->fields['mail_auto_respond']);
            $tpl->parse('MAIL_ITEM', '.mail_item');
            $rs->MoveNext();
        }
        return $rs->RecordCount();
    }
}
Beispiel #27
0
function ownddns_generateActivatedCustomers($tpl, $resellerId)
{
    /** @var $cfg iMSCP_Config_Handler_File */
    $cfg = iMSCP_Registry::get('config');
    $rowsPerPage = $cfg->DOMAIN_ROWS_PER_PAGE;
    if (isset($_GET['psi']) && $_GET['psi'] == 'last') {
        unset($_GET['psi']);
    }
    $startIndex = isset($_GET['psi']) ? (int) $_GET['psi'] : 0;
    $countQuery = "\n\t\tSELECT COUNT(`t1`.`admin_id`) AS `cnt` \n\t\tFROM \n\t\t\t`admin` AS `t1`\n\t\tLEFT JOIN\n\t\t\t`ownddns` AS `t2` ON(`t2`.`admin_id` = `t1`.`admin_id`)\n\t\tWHERE\n\t\t\t`t1`.`created_by` = ?\n\t\tAND\n\t\t\t`t1`.`admin_id` IN (SELECT `admin_id` FROM `ownddns`)\n\t";
    $stmt = exec_query($countQuery, $resellerId);
    $recordsCount = $stmt->fields['cnt'];
    $query = "\n\t\tSELECT\n\t\t\t`t2`.*\n\t\tFROM\n\t\t\t`admin` AS `t1`\n\t\tLEFT JOIN\n\t\t\t`ownddns` AS `t2` ON(`t2`.`admin_id` = `t1`.`admin_id`)\n\t\tWHERE\n\t\t\t`t1`.`created_by` = ?\n\t\tAND\n\t\t\t`t1`.`admin_id` IN (SELECT `admin_id` FROM `ownddns`)\n\t\tORDER BY\n\t\t\t`t2`.`admin_name` ASC\n\t\tLIMIT\n\t\t\t{$startIndex}, {$rowsPerPage}\n\t";
    $stmt = exec_query($query, $resellerId);
    if ($recordsCount > 0) {
        $prevSi = $startIndex - $rowsPerPage;
        if ($startIndex == 0) {
            $tpl->assign('SCROLL_PREV', '');
        } else {
            $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prevSi));
        }
        $nextSi = $startIndex + $rowsPerPage;
        if ($nextSi + 1 > $recordsCount) {
            $tpl->assign('SCROLL_NEXT', '');
        } else {
            $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $nextSi));
        }
        while ($data = $stmt->fetchRow()) {
            if ($data['ownddns_status'] == $cfg->ITEM_OK_STATUS) {
                $statusIcon = 'ok';
            } elseif ($data['ownddns_status'] == $cfg->ITEM_DISABLED_STATUS) {
                $statusIcon = 'disabled';
            } elseif ($data['ownddns_status'] == $cfg->ITEM_TOADD_STATUS || $data['ownddns_status'] == $cfg->ITEM_TOCHANGE_STATUS || $data['ownddns_status'] == $cfg->ITEM_TODELETE_STATUS || ($data['ownddns_status'] == $cfg->ITEM_TOADD_STATUS || $data['ownddns_status'] == $cfg->ITEM_TORESTORE_STATUS || $data['ownddns_status'] == $cfg->ITEM_TOCHANGE_STATUS || $data['ownddns_status'] == $cfg->ITEM_TOENABLE_STATUS || $data['ownddns_status'] == $cfg->ITEM_TODISABLE_STATUS || $data['ownddns_status'] == $cfg->ITEM_TODELETE_STATUS)) {
                $statusIcon = 'reload';
            } else {
                $statusIcon = 'error';
            }
            $tpl->assign(array('OWNDDNS_CUSTOMER_NAME' => decode_idna($data['admin_name']), 'OWNDDNS_STATUS' => translate_dmn_status($data['ownddns_status']), 'OWNDDNS_ACCOUNT_LIMIT' => get_ownddnsAccountLimit($data['admin_id']), 'OWNDDNS_ADMIN_ID' => $data['admin_id'], 'STATUS_ICON' => $statusIcon));
            $tpl->parse('OWNDDNS_CUSTOMER_ITEM', '.ownddns_customer_item');
        }
        $tpl->assign('OWNDDNS_NO_CUSTOMER_ITEM', '');
    } else {
        $tpl->assign(array('OWNDDNS_CUSTOMER_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_PREV_GRAY' => '', 'SCROLL_NEXT' => '', 'SCROLL_NEXT_GRAY' => ''));
    }
    $tpl->assign('OWNDDNS_EDIT', '');
}
Beispiel #28
0
/**
 * Generate page
 *
 * @throws iMSCP_Exception
 * @throws iMSCP_Exception_Database
 * @param iMSCP_pTemplate $tpl Template engine instance
 * @param int $domainId Domain entity unique identifier
 * @param string $domainType Domain entity type
 * @return void
 */
function client_generatePage($tpl, $domainId, $domainType)
{
    $domainName = _client_getDomainName($domainId, $domainType);
    if ($domainName === false) {
        showBadRequestErrorPage();
    }
    $stmt = exec_query('SELECT * FROM ssl_certs WHERE domain_id = ? AND domain_type = ?', array($domainId, $domainType));
    if ($stmt->rowCount()) {
        $row = $stmt->fetchRow(PDO::FETCH_ASSOC);
        $dynTitle = customerHasFeature('ssl') && $row['status'] == 'ok' ? tr('Edit SSL certificate') : tr('Show SSL certificate');
        $certId = $row['cert_id'];
        $privateKey = tohtml($row['private_key']);
        $certificate = tohtml($row['certificate']);
        $caBundle = tohtml($row['ca_bundle']);
        $trAction = tr('Update');
        $status = $row['status'];
        $tpl->assign('STATUS', translate_dmn_status($status));
    } else {
        if (customerHasFeature('ssl')) {
            $dynTitle = tr('Add SSL certificate');
            $trAction = tr('Add');
            $certId = '0';
            $privateKey = '';
            $certificate = '';
            $caBundle = '';
            $tpl->assign('SSL_CERTIFICATE_STATUS', '');
        } else {
            set_page_message('SSL feature is currently disabled.', 'static_warning');
            redirectTo('domains_manage.php');
            return;
        }
    }
    if (customerHasFeature('ssl') && isset($_POST['cert_id']) && isset($_POST['private_key']) && isset($_POST['certificate']) && isset($_POST['ca_bundle'])) {
        $certId = $_POST['cert_id'];
        $privateKey = $_POST['private_key'];
        $certificate = $_POST['certificate'];
        $caBundle = $_POST['ca_bundle'];
    }
    $tpl->assign(array('TR_DYNAMIC_TITLE' => $dynTitle, 'DOMAIN_NAME' => tohtml(encode_idna($domainName)), 'KEY_CERT' => tohtml(trim($privateKey)), 'CERTIFICATE' => tohtml(trim($certificate)), 'CA_BUNDLE' => tohtml(trim($caBundle)), 'CERT_ID' => tohtml(trim($certId)), 'TR_ACTION' => $trAction));
    if (!customerHasFeature('ssl') || isset($status) && in_array($status, array('toadd', 'tochange', 'todelete'))) {
        $tpl->assign('SSL_CERTIFICATE_ACTIONS', '');
        if (!customerHasFeature('ssl')) {
            set_page_message(tr('SSL feature is not available. You can only view your certificate.'), 'static_warning');
        }
    }
}
function gen_user_als_list(&$tpl, &$sql, $user_id)
{
    $domain_id = get_user_domain_id($sql, $user_id);
    $query = <<<SQL_QUERY
        select
            alias_id, alias_name, alias_status, alias_mount, alias_ip_id, url_forward
        from
            domain_aliasses
        where
            domain_id = ?
        order by
            alias_name
SQL_QUERY;
    $rs = exec_query($sql, $query, array($domain_id));
    if ($rs->RecordCount() == 0) {
        $tpl->assign(array('ALS_MSG' => tr('Alias list is empty!'), 'ALS_LIST' => ''));
        $tpl->parse('ALS_MESSAGE', 'als_message');
    } else {
        $counter = 0;
        while (!$rs->EOF) {
            if ($counter % 2 == 0) {
                $tpl->assign('ITEM_CLASS', 'content');
            } else {
                $tpl->assign('ITEM_CLASS', 'content2');
            }
            list($als_action, $als_action_script) = gen_user_als_action($rs->fields['alias_id'], $rs->fields['alias_status']);
            list($als_forward, $als_forward_script) = gen_user_als_forward($rs->fields['alias_id'], $rs->fields['alias_status'], $rs->fields['url_forward']);
            $IDN = new idna_convert();
            $alias_name = $IDN->decode($rs->fields['alias_name']);
            $alias_name = utf8_decode($alias_name);
            $tpl->assign(array('ALS_NAME' => $alias_name, 'ALS_MOUNT' => $rs->fields['alias_mount'], 'ALS_STATUS' => translate_dmn_status($rs->fields['alias_status']), 'ALS_FORWARD' => $als_forward, 'ALS_FWD_SCRIPT' => $als_forward_script, 'ALS_ACTION' => $als_action, 'ALS_ACTION_SCRIPT' => $als_action_script));
            $tpl->parse('ALS_ITEM', '.als_item');
            $rs->MoveNext();
            $counter++;
        }
        $tpl->parse('ALS_LIST', 'als_list');
        $tpl->assign('ALS_MESSAGE', '');
    }
}
Beispiel #30
0
/**
 * Generate page
 *
 * @param TemplateEngine $tpl
 * @return void
 */
function opendkim_generatePage($tpl)
{
    _opendkim_generateCustomerList($tpl, $_SESSION['user_id']);
    $cfg = Registry::get('config');
    $rowsPerPage = $cfg['DOMAIN_ROWS_PER_PAGE'];
    if (isset($_GET['psi']) && $_GET['psi'] == 'last') {
        unset($_GET['psi']);
    }
    $startIndex = isset($_GET['psi']) ? (int) $_GET['psi'] : 0;
    $stmt = exec_query('
			SELECT
				COUNT(admin_id) AS cnt
			FROM
				admin
			INNER JOIN
				opendkim USING(admin_id)
			WHERE
				created_by = ?
			AND
				alias_id IS NULL
		', array($_SESSION['user_id']));
    $row = $stmt->fetchRow(PDO::FETCH_ASSOC);
    $rowCount = $row['cnt'];
    if ($rowCount) {
        $stmt = exec_query("\n\t\t\t\tSELECT\n\t\t\t\t\tadmin_name, admin_id\n\t\t\t\tFROM\n\t\t\t\t\tadmin\n\t\t\t\tINNER JOIN\n\t\t\t\t\topendkim USING(admin_id)\n\t\t\t\tWHERE\n\t\t\t\t\tcreated_by = ?\n\t\t\t\tAND\n\t\t\t\t\talias_id IS NULL\n\t\t\t\tORDER BY\n\t\t\t\t\tadmin_id ASC\n\t\t\t\tLIMIT\n\t\t\t\t\t{$startIndex}, {$rowsPerPage}\n\t\t\t", array($_SESSION['user_id']));
        while ($row = $stmt->fetchRow()) {
            $stmt2 = exec_query('
					SELECT
						opendkim_id, domain_name, opendkim_status, domain_dns, domain_text
					FROM
						opendkim
					LEFT JOIN domain_dns ON(
							domain_dns.domain_id = opendkim.domain_id
						AND
							domain_dns.alias_id = IFNULL(opendkim.alias_id, 0)
						AND
							owned_by = ?
					)
					WHERE
						admin_id = ?
				', array('OpenDKIM_Plugin', $row['admin_id']));
            if ($stmt2->rowCount()) {
                while ($row2 = $stmt2->fetchRow()) {
                    if ($row2['opendkim_status'] == 'ok') {
                        $statusIcon = 'ok';
                    } elseif ($row2['opendkim_status'] == 'disabled') {
                        $statusIcon = 'disabled';
                    } elseif (in_array($row2['opendkim_status'], array('toadd', 'tochange', 'todelete', 'torestore', 'tochange', 'toenable', 'todisable', 'todelete'))) {
                        $statusIcon = 'reload';
                    } else {
                        $statusIcon = 'error';
                    }
                    if ($row2['domain_text']) {
                        if (strpos($row2['domain_dns'], ' ') !== false) {
                            $dnsName = explode(' ', $row2['domain_dns']);
                            $dnsName = $dnsName[0];
                        } else {
                            $dnsName = $row2['domain_dns'];
                        }
                    } else {
                        $dnsName = '';
                    }
                    $tpl->assign(array('KEY_STATUS' => translate_dmn_status($row2['opendkim_status']), 'STATUS_ICON' => $statusIcon, 'DOMAIN_NAME' => tohtml(decode_idna($row2['domain_name'])), 'DOMAIN_KEY' => $row2['domain_text'] ? tohtml($row2['domain_text']) : tr('Generation in progress.'), 'DNS_NAME' => $dnsName ? tohtml($dnsName) : tr('n/a'), 'OPENDKIM_ID' => tohtml($row2['opendkim_id'])));
                    $tpl->parse('KEY_ITEM', '.key_item');
                }
            }
            $tpl->assign(array('TR_CUSTOMER' => tr('OpenDKIM entries for customer: %s', decode_idna($row['admin_name'])), 'TR_DEACTIVATE' => tr('Deactivate OpenDKIM'), 'CUSTOMER_ID' => tohtml($row['admin_id'])));
            $tpl->parse('CUSTOMER_ITEM', '.customer_item');
            $tpl->assign('KEY_ITEM', '');
        }
        $prevSi = $startIndex - $rowsPerPage;
        if ($startIndex == 0) {
            $tpl->assign('SCROLL_PREV', '');
        } else {
            $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prevSi));
        }
        $nextSi = $startIndex + $rowsPerPage;
        if ($nextSi + 1 > $rowCount) {
            $tpl->assign('SCROLL_NEXT', '');
        } else {
            $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $nextSi));
        }
    } else {
        $tpl->assign('CUSTOMER_LIST', '');
        set_page_message(tr('No customer with OpenDKIM support has been found.'), 'static_info');
    }
}