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(); } } }
/** * 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']))); }
/** * @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(); } } }
/** * 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', ''); } } }
/** * 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'); } }
/** * 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'); } }
/** * @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++; } } }
/** * 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'); } }
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(); } } }
/** * 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(); } } }
/** * 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'), '#'); } }
/** * @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', ''); } }
/** * 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', ''); }
/** * 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(); } } }
/** * 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(); } }
/** * 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)); }
/** * @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)); }
/** * 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; }
/** * @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)); } }
/** * 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'])); }
/** * Generate domain alias list * * @todo Use prepared statements (min. with placeholders like ":search_for") * @param EasySCP_TemplateEngine $tpl * @param int $reseller_id * @param string $als_err */ function generate_als_list($tpl, $reseller_id, &$als_err) { $sql = EasySCP_Registry::get('Db'); $cfg = EasySCP_Registry::get('Config'); list(, , , , , , $uals_current) = generate_reseller_user_props($reseller_id); list(, , , , , $rals_max) = get_reseller_default_props($sql, $reseller_id); if ($uals_current >= $rals_max && $rals_max != "0") { $tpl->assign('ALS_ADD_BUTTON', ''); } $start_index = 0; $rows_per_page = $cfg->DOMAIN_ROWS_PER_PAGE; $current_psi = 0; $_SESSION['search_for'] = ''; $search_common = ''; $search_for = ''; if (isset($_GET['psi'])) { $start_index = $_GET['psi']; $current_psi = $_GET['psi']; } if (isset($_POST['uaction']) && !empty($_POST['uaction'])) { $_SESSION['search_for'] = trim(clean_input($_POST['search_for'])); $_SESSION['search_common'] = $_POST['search_common']; $search_for = $_SESSION['search_for']; $search_common = $_SESSION['search_common']; } else { if (isset($_SESSION['search_for']) && !isset($_GET['psi'])) { unset($_SESSION['search_for']); unset($_SESSION['search_common']); } } $tpl->assign(array('PSI' => $current_psi, 'SEARCH_FOR' => tohtml($search_for), 'TR_SEARCH' => tr('Search'), 'M_ALIAS_NAME' => tr('Alias name'), 'M_ACCOUNT_NAME' => tr('Account name'))); if (isset($_SESSION['search_for']) && $_SESSION['search_for'] != '') { if (isset($search_common) && $search_common == 'alias_name') { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.*,\n\t\t\t\t\tt2.`domain_id`,\n\t\t\t\t\tt2.`domain_name`,\n\t\t\t\t\tt2.`domain_created_id`\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\t`alias_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`alias_name` ASC\n\t\t\t\tLIMIT\n\t\t\t\t\t{$start_index}, {$rows_per_page}\n\t\t\t"; // count query $count_query = "\n\t\t\t\tSELECT\n\t\t\t\t\tCOUNT(`alias_id`) AS cnt\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tAND\n\t\t\t\t\t`alias_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t"; } else { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.*,\n\t\t\t\t\tt2.`domain_id`,\n\t\t\t\t\tt2.`domain_name`,\n\t\t\t\t\tt2.`domain_created_id`\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt2.`domain_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`alias_name` ASC\n\t\t\t\tLIMIT\n\t\t\t\t\t{$start_index}, {$rows_per_page}\n\t\t\t"; // count query $count_query = "\n\t\t\t\tSELECT\n\t\t\t\t\tCOUNT(`alias_id`) AS cnt\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t"; } } else { $query = "\n\t\t\tSELECT\n\t\t\t\tt1.*,\n\t\t\t\tt2.`domain_id`,\n\t\t\t\tt2.`domain_name`,\n\t\t\t\tt2.`domain_created_id`\n\t\t\tFROM\n\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t`domain` AS t2\n\t\t\tWHERE\n\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\tAND\n\t\t\t\tt2.`domain_created_id` = ?\n\t\t\tORDER BY\n\t\t\t\tt1.`alias_name` ASC\n\t\t\tLIMIT\n\t\t\t\t{$start_index}, {$rows_per_page}\n\t\t"; // count query $count_query = "\n\t\t\tSELECT\n\t\t\t\tCOUNT(`alias_id`) AS cnt\n\t\t\tFROM\n\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t`domain` AS t2\n\t\t\tWHERE\n\t\t\t\tt1.`domain_id` = t2.domain_id\n\t\t\tAND\n\t\t\t\tt2.`domain_created_id` = ?\n\t\t"; } // let's count $rs = exec_query($sql, $count_query, $reseller_id); $records_count = $rs->fields['cnt']; // Get all alias records $rs = exec_query($sql, $query, $reseller_id); if ($records_count == 0) { if (isset($_SESSION['search_for']) && $_SESSION['search_for'] != '') { $tpl->assign(array('TABLE_LIST' => '', 'USERS_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '', 'M_DOMAIN_NAME_SELECTED' => '', 'M_ACCOUN_NAME_SELECTED' => '')); } else { $tpl->assign(array('TABLE_LIST' => '', 'TABLE_HEADER' => '', 'USERS_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '')); } if (isset($_SESSION['search_for'])) { $als_err = tr('Not found user records matching the search criteria!'); } else { if (isset($_SESSION['almax'])) { if ($_SESSION['almax'] === '_yes_') { $als_err = tr('Domain alias limit reached!'); } else { $als_err = tr('You have no alias records.'); } unset($_SESSION['almax']); } else { $als_err = tr('You have no alias records.'); } } return; } else { $prev_si = $start_index - $rows_per_page; if ($start_index == 0) { $tpl->assign('SCROLL_PREV', ''); } else { $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prev_si)); } $next_si = $start_index + $rows_per_page; if ($next_si + 1 > $records_count) { $tpl->assign('SCROLL_NEXT', ''); } else { $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $next_si)); } } if (isset($_SESSION['search_common']) && $_SESSION['search_common'] === 'account_name') { $domain_name_selected = ''; $account_name_selected = $cfg->HTML_SELECTED; } else { $domain_name_selected = $cfg->HTML_SELECTED; $account_name_selected = ''; } $tpl->assign(array('M_DOMAIN_NAME_SELECTED' => $domain_name_selected, 'M_ACCOUN_NAME_SELECTED' => $account_name_selected)); while (!$rs->EOF) { $als_id = $rs->fields['alias_id']; $als_name = $rs->fields['alias_name']; $als_mount_point = $rs->fields['alias_mount'] != '' ? $rs->fields['alias_mount'] : '/'; $als_status = $rs->fields['status']; $als_ip_id = $rs->fields['alias_ip_id']; $als_fwd = $rs->fields['url_forward']; $show_als_fwd = $als_fwd == 'no' ? "-" : $als_fwd; $domain_name = decode_idna($rs->fields['domain_name']); $query = "SELECT `ip_number`, `ip_domain` FROM `server_ips` WHERE `ip_id` = ?"; $alsip_r = exec_query($sql, $query, $als_ip_id); $alsip_d = $alsip_r->fetchRow(); $als_ip = $alsip_d['ip_number']; $als_ip_name = $alsip_d['ip_domain']; if ($als_status === $cfg->ITEM_OK_STATUS) { $delete_link = "alias_delete.php?del_id=" . $als_id; $edit_link = "alias_edit.php?edit_id=" . $als_id; $action_text = tr("Delete"); $edit_text = tr("Edit"); } else { if ($als_status === $cfg->ITEM_ORDERED_STATUS) { $delete_link = "alias_order.php?action=delete&del_id=" . $als_id; $edit_link = "alias_order.php?action=activate&act_id=" . $als_id; $action_text = tr("Delete order"); $edit_text = tr("Activate"); } else { $delete_link = "#"; $edit_link = "#"; $action_text = tr('N/A'); $edit_text = tr('N/A'); } } $als_status = translate_dmn_status($als_status); $als_name = decode_idna($als_name); $show_als_fwd = decode_idna($show_als_fwd); $tpl->append(array('NAME' => tohtml($als_name), 'ALIAS_IP' => tohtml("{$als_ip} ({$als_ip_name})"), 'REAL_DOMAIN' => tohtml($domain_name), 'REAL_DOMAIN_MOUNT' => tohtml($als_mount_point), 'FORWARD' => tohtml($show_als_fwd), 'STATUS' => $als_status, 'ID' => $als_id, 'DELETE' => $action_text, 'DELETE_LINK' => $delete_link, 'EDIT_LINK' => $edit_link, 'EDIT' => $edit_text)); $rs->moveNext(); } }
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(); } }
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(); } }
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', ''); }
/** * 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', ''); } }
/** * 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'); } }