');
$this->tagClose('div', 3);
}
protected function getProvider(int $provider)
{
$select = $this->dbConnect()->prepare("SELECT `name` FROM `providers` WHERE `id` = ? LIMIT 1;");
$select->execute([$provider]);
$row = $select->fetch(PDO::FETCH_ASSOC);
if (!empty($row)) {//Yes
return $row['name'];
} else {//NO
return null;
}
}
protected function getLocation(int $location)
{
$select = $this->dbConnect()->prepare("SELECT `name` FROM `locations` WHERE `id` = ? LIMIT 1;");
$select->execute([$location]);
$row = $select->fetch(PDO::FETCH_ASSOC);
if (!empty($row)) {//Yes
return $row['name'];
} else {//NO
return null;
}
}
public function serverDetails(string $id)
{
$select = $this->dbConnect()->prepare("SELECT id, hostname, location, provider, ipv4, ipv6, `cpu`, cpu_type, cpu_freq, ram, ram_type, swap, swap_type, `disk`, disk_type, bandwidth, bandwidth_type, gb5_single, gb5_multi, gb5_id, aes_ni, amd_v, is_dedicated, is_cpu_dedicated, was_special, os, still_have, DATE_FORMAT(`owned_since`, '%M %Y') as owned_since FROM `servers` WHERE `id` = ? LIMIT 1;");
$select->execute([$id]);
$data = $select->fetchAll(PDO::FETCH_ASSOC)[0];
return json_encode($data);
}
public function serverData(string $id)
{
$select = $this->dbConnect()->prepare("SELECT `has_yabs` FROM `servers` WHERE `id` = ? LIMIT 1;");
$select->execute([$id]);
$row = $select->fetch();
if ($row['has_yabs'] == 1) {
$select = $this->dbConnect()->prepare("
SELECT servers.id as server_id,hostname,ipv4,ipv6,`cpu`,cpu_type,cpu_freq,ram,ram_type,swap,swap_type,`disk`,disk_type,bandwidth,bandwidth_type,gb5_single,gb5_multi,gb5_id,aes_ni,amd_v,
is_dedicated,is_cpu_dedicated,was_special,os,ssh_port,still_have,tags,virt,has_yabs,ns1,ns2,DATE_FORMAT(`owned_since`, '%M %Y') as owned_since, `owned_since` as owned_since_raw, `4k`,`4k_type`,`64k`,`64k_type`,`512k`,`512k_type`,`1m`,`1m_type`,
loc.name as location,send,send_type,recieve,recieve_type,price,currency,term,as_usd,per_month,next_dd,pr.name as provider
FROM servers INNER JOIN disk_speed ds on servers.id = ds.server_id
INNER JOIN speed_tests st on servers.id = st.server_id INNER JOIN locations loc on servers.location = loc.id
INNER JOIN providers pr on servers.provider = pr.id INNER JOIN pricing on servers.id = pricing.server_id WHERE servers.id = ? LIMIT 1;");
$select->execute([$id]);
$data = $select->fetchAll(PDO::FETCH_ASSOC)[0];
$sel_st = $this->dbConnect()->prepare("SELECT `location`, `send`, `send_type`, `recieve`, `recieve_type` FROM `speed_tests` WHERE `server_id` = ? ORDER BY `datetime` DESC LIMIT 8;");
$sel_st->execute([$id]);
$speed_tests = $sel_st->fetchAll(PDO::FETCH_ASSOC);
$final = array_merge($speed_tests, $data);
return json_encode($final);
} else {
$select = $this->dbConnect()->prepare("
SELECT servers.id as server_id,hostname,ipv4,ipv6,`cpu`,cpu_type,cpu_freq,ram,ram_type,swap,swap_type,`disk`,disk_type,
bandwidth,bandwidth_type,gb5_single,gb5_multi,gb5_id,aes_ni,amd_v,is_dedicated,is_cpu_dedicated,was_special,os,ssh_port,still_have,tags,virt,has_yabs,ns1,ns2,
DATE_FORMAT(`owned_since`, '%M %Y') as owned_since,loc.name as location,price,currency,term,as_usd,per_month,next_dd,pr.name as provider
FROM servers INNER JOIN locations loc on servers.location = loc.id
INNER JOIN providers pr on servers.provider = pr.id INNER JOIN pricing on servers.id = pricing.server_id WHERE servers.id = ? LIMIT 1;");
$select->execute([$id]);
$data = $select->fetchAll(PDO::FETCH_ASSOC)[0];
return json_encode($data);
}
}
public function sharedHostingData(string $id)
{
$select = $this->dbConnect()->prepare("
SELECT shared_hosting.id as server_id, domain, domains_limit, emails, disk, disk_type, disk_as_gb, ftp, db, bandwidth, provider, location, was_special,
still_have, type, `owned_since` as owned_since_raw, DATE_FORMAT(`owned_since`, '%M %Y') as owned_since,loc.name as location,price,currency,term,as_usd,per_month,next_dd,pr.name as provider
FROM shared_hosting INNER JOIN locations loc on shared_hosting.location = loc.id
INNER JOIN providers pr on shared_hosting.provider = pr.id INNER JOIN pricing on shared_hosting.id = pricing.server_id WHERE shared_hosting.id = ? LIMIT 1;");
$select->execute([$id]);
$data = $select->fetchAll(PDO::FETCH_ASSOC)[0];
return json_encode($data);
}
public function domainData(string $id)
{
$select = $this->dbConnect()->prepare("
SELECT domains.id as server_id, domain, attached_to, ns1, ns2, still_have, `owned_since` as owned_since_raw, DATE_FORMAT(`owned_since`, '%M %Y') as owned_since,price,currency,term,as_usd,per_month,next_dd,pr.name as provider
FROM domains INNER JOIN providers pr on domains.provider = pr.id INNER JOIN pricing on domains.id = pricing.server_id WHERE domains.id = ? LIMIT 1;");
$select->execute([$id]);
$data = $select->fetchAll(PDO::FETCH_ASSOC)[0];
return json_encode($data);
}
protected function serverCards()
{
if (self::SRV_SORT_TYPE == 'HOSTNAME_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `servers` ORDER BY `hostname` DESC;");
} elseif (self::SRV_SORT_TYPE == 'HOSTNAME_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `servers` ORDER BY `hostname`;");
} elseif (self::SRV_SORT_TYPE == 'OWNED_SINCE_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `servers` ORDER BY `owned_since` DESC;");
} elseif (self::SRV_SORT_TYPE == 'OWNED_SINCE_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `servers` ORDER BY `owned_since`;");
} elseif (self::SRV_SORT_TYPE == 'PRICE_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `servers` INNER JOIN `pricing` ON servers.id = pricing.server_id ORDER BY `as_usd` DESC;");
} elseif (self::SRV_SORT_TYPE == 'PRICE_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `servers` INNER JOIN `pricing` ON servers.id = pricing.server_id ORDER BY `as_usd`;");
} elseif (self::SRV_SORT_TYPE == 'DUE_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `servers` INNER JOIN `pricing` ON servers.id = pricing.server_id ORDER BY `next_dd` DESC;");
} elseif (self::SRV_SORT_TYPE == 'DUE_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `servers` INNER JOIN `pricing` ON servers.id = pricing.server_id ORDER BY `next_dd`;");
} else {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `servers`;");
}
$select->execute();
$count = $select->rowCount();
if ($count > 0) {
$this->HTMLPhrase('h4', 'card-section-header', 'Servers
' . $count . '');
}
$this->tagOpen('div', 'row');
while ($row = $select->fetch(PDO::FETCH_ASSOC)) {
$this->vpsCard($row['id']);
}
$this->tagClose('div');
}
protected function sharedHostingCards()
{
if (self::SH_SORT_TYPE == 'DOMAIN_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `shared_hosting` ORDER BY `domain` DESC;");
} elseif (self::SH_SORT_TYPE == 'DOMAIN_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `shared_hosting` ORDER BY `domain`;");
} elseif (self::SH_SORT_TYPE == 'OWNED_SINCE_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `shared_hosting` ORDER BY `owned_since` DESC;");
} elseif (self::SH_SORT_TYPE == 'OWNED_SINCE_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `shared_hosting` ORDER BY `owned_since`;");
} elseif (self::SH_SORT_TYPE == 'PRICE_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `shared_hosting` INNER JOIN `pricing` ON shared_hosting.id = pricing.server_id ORDER BY `as_usd` DESC;");
} elseif (self::SH_SORT_TYPE == 'PRICE_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `shared_hosting` INNER JOIN `pricing` ON shared_hosting.id = pricing.server_id ORDER BY `as_usd`;");
} elseif (self::SH_SORT_TYPE == 'DUE_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `shared_hosting` INNER JOIN `pricing` ON shared_hosting.id = pricing.server_id ORDER BY `next_dd` DESC;");
} elseif (self::SH_SORT_TYPE == 'DUE_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `shared_hosting` INNER JOIN `pricing` ON shared_hosting.id = pricing.server_id ORDER BY `next_dd`;");
} else {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `shared_hosting`;");
}
$select->execute();
$count = $select->rowCount();
if ($count > 0) {
$this->HTMLPhrase('h4', 'card-section-header', 'Shared hosting
' . $count . '');
}
$this->tagOpen('div', 'row');
while ($row = $select->fetch(PDO::FETCH_ASSOC)) {
$this->SharedHostingCard($row['id']);
}
$this->tagClose('div');
}
protected function domainCards()
{
if (self::DC_SORT_TYPE == 'DOMAIN_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `domains` ORDER BY `domain` DESC;");
} elseif (self::DC_SORT_TYPE == 'DOMAIN_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `domains` ORDER BY `domain`;");
} elseif (self::DC_SORT_TYPE == 'OWNED_SINCE_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `domains` ORDER BY `owned_since` DESC;");
} elseif (self::DC_SORT_TYPE == 'OWNED_SINCE_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `domains` ORDER BY `owned_since`;");
} elseif (self::DC_SORT_TYPE == 'PRICE_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `domains` INNER JOIN `pricing` ON domains.id = pricing.server_id ORDER BY `as_usd` DESC;");
} elseif (self::DC_SORT_TYPE == 'PRICE_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `domains` INNER JOIN `pricing` ON domains.id = pricing.server_id ORDER BY `as_usd`;");
} elseif (self::DC_SORT_TYPE == 'DUE_DESC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `domains` INNER JOIN `pricing` ON domains.id = pricing.server_id ORDER BY `next_dd` DESC;");
} elseif (self::DC_SORT_TYPE == 'DUE_ASC') {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `domains` INNER JOIN `pricing` ON domains.id = pricing.server_id ORDER BY `next_dd`;");
} else {
$select = $this->dbConnect()->prepare("SELECT `id` FROM `domains`;");
}
$select->execute();
$count = $select->rowCount();
if ($count > 0) {
$this->HTMLPhrase('h4', 'card-section-header', 'Domains
' . $count . '');
}
$this->tagOpen('div', 'row');
while ($row = $select->fetch(PDO::FETCH_ASSOC)) {
$this->domainCard($row['id']);
}
$this->tagClose('div');
}
protected function vpsCard(string $id)
{
$select = $this->dbConnect()->prepare("
SELECT servers.id,servers.hostname,servers.`cpu`,servers.cpu_freq,servers.ram,servers.ram_type,servers.`disk`,
servers.disk_type,servers.os,servers.virt,servers.was_special,locations.name as location,providers.name as provider,pricing.price,pricing.currency,pricing.term,pricing.next_dd
FROM servers INNER JOIN locations on servers.location = locations.id INNER JOIN providers on servers.provider = providers.id
INNER JOIN pricing on servers.id = pricing.server_id WHERE servers.id = ? LIMIT 1;");
$select->execute([$id]);
$data = $select->fetchAll(PDO::FETCH_ASSOC)[0];
($data['was_special'] == 1) ? $special = ' special-card' : $special = '';
(is_null($data['next_dd'])) ? $dd_class = 'no-dd' : $dd_class = 'dd-text';
$this->colOpen('col-12 col-sm-6 col-md-4 col-xl-3');
$this->tagOpen("div", "card obj-card$special");
$this->tagOpen('div', 'card-header');
$this->rowColOpen('row text-center', 'col-12 col-xl-10');
$this->HTMLphrase('h4', 'hostname-header', $data['hostname']);
$this->tagClose('div');
$this->colOpen('col-12 col-xl-2 os-col');
$this->outputString($this->osIntToIcon($data['os']));
$this->tagClose('div', 3);
$this->tagOpen('div', 'card-body');
$this->HTMLphrase('h6', 'price', '$' . $data['price'] . ' ' . $data['currency'] . ' ' . $this->paymentTerm($data['term']));
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('h6', 'provider', $data['provider']);
$this->tagClose('div', 2);
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('h6', 'location', $data['location']);
$this->tagClose('div', 2);
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('p', $dd_class, "Due in {$this->processDueDate($data['id'], $data['term'], $data['next_dd'])} days");
$this->tagClose('div', 2);
$this->rowColOpen('row cpu-row', 'col-6');
$this->outputString('
');
$this->HTMLphrase('p', 'value', '' . $data['cpu'] . '
@' . $this->mhzToGhz($data['cpu_freq']) . '
Ghz');
$this->tagClose('div');
$this->colOpen('col-6');
$this->outputString('
');
$this->HTMLphrase('p', 'value', '
' . $data['virt'] . '');
$this->tagClose('div', 2);
$this->rowColOpen('row mem-disk-row', 'col-6');
$this->outputString('
');
$this->HTMLphrase('p', 'value', '' . $data['ram'] . '
' . $data['ram_type'] . '');
$this->tagClose('div');
$this->colOpen('col-6');
$this->outputString('
');
$this->HTMLphrase('p', 'value', '' . $data['disk'] . '
' . $data['disk_type'] . '');
$this->tagClose('div', 2);
$this->rowColOpen('row text-center', 'col-6');
$this->outputString('
More');
$this->tagClose('div');
$this->colOpen('col-6');
$this->outputString('
Edit');
$this->tagClose('div', 5);
}
protected function SharedHostingCard(string $id)
{
$select = $this->dbConnect()->prepare("
SELECT shared_hosting.id,shared_hosting.domain,shared_hosting.disk_as_gb,shared_hosting.type,shared_hosting.was_special,locations.name as location,providers.name as provider,pricing.price,pricing.currency,pricing.term,pricing.next_dd
FROM shared_hosting INNER JOIN locations on shared_hosting.location = locations.id INNER JOIN providers on shared_hosting.provider = providers.id
INNER JOIN pricing on shared_hosting.id = pricing.server_id WHERE shared_hosting.id = ? LIMIT 1;");
$select->execute([$id]);
$data = $select->fetchAll(PDO::FETCH_ASSOC)[0];
($data['was_special'] == 1) ? $special = ' special-card' : $special = '';
(is_null($data['next_dd'])) ? $dd_class = 'no-dd' : $dd_class = 'dd-text';
$this->colOpen('col-12 col-sm-6 col-md-4 col-xl-3');
$this->tagOpen("div", "card obj-card$special");
$this->tagOpen('div', 'card-header');
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('h4', 'hostname-header', $data['domain']);;
$this->tagClose('div', 3);
$this->tagOpen('div', 'card-body');
$this->HTMLphrase('h6', 'price', '$' . $data['price'] . ' ' . $data['currency'] . ' ' . $this->paymentTerm($data['term']));
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('h6', 'provider', $data['provider']);
$this->tagClose('div', 2);
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('h6', 'location', $data['location']);
$this->tagClose('div', 2);
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('p', $dd_class, "Due in {$this->processDueDate($data['id'], $data['term'], $data['next_dd'])} days");
$this->tagClose('div', 2);
$this->rowColOpen('row mem-disk-row', 'col-6');
$this->outputString('
');
$this->HTMLphrase('p', 'value', '
' . $data['type'] . '');
$this->tagClose('div');
$this->colOpen('col-6');
$this->outputString('
');
$this->HTMLphrase('p', 'value', '
' . $data['disk_as_gb'] . 'GB');
$this->tagClose('div', 2);
$this->rowColOpen('row text-center', 'col-6');
$this->outputString('More');
$this->tagClose('div');
$this->colOpen('col-6');
$this->outputString('Edit');
$this->tagClose('div', 5);
}
protected function domainCard(string $id)
{
$select = $this->dbConnect()->prepare("
SELECT domains.id,domains.domain,domains.attached_to,providers.name as provider, pricing.price,pricing.currency,pricing.term,pricing.next_dd
FROM domains INNER JOIN providers on domains.provider = providers.id
INNER JOIN pricing on domains.id = pricing.server_id WHERE domains.id = ? LIMIT 1;");
$select->execute([$id]);
$data = $select->fetchAll(PDO::FETCH_ASSOC)[0];
(is_null($data['next_dd'])) ? $dd_class = 'no-dd' : $dd_class = 'dd-text';
$this->colOpen('col-12 col-sm-6 col-md-4 col-xl-3');
$this->tagOpen("div", "card obj-card");
$this->tagOpen('div', 'card-header');
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('h4', 'hostname-header', $data['domain']);
$this->tagClose('div', 3);
$this->tagOpen('div', 'card-body');
$this->HTMLphrase('h6', 'price', '$' . $data['price'] . ' ' . $data['currency'] . ' ' . $this->paymentTerm($data['term']));
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('h6', 'provider', $data['provider']);
$this->tagClose('div', 2);
$this->rowColOpen('row text-center', 'col-12');
$this->HTMLphrase('p', $dd_class, "Due in {$this->processDueDate($data['id'], $data['term'], $data['next_dd'])} days");
$this->tagClose('div', 2);
$this->rowColOpen('row text-center', 'col-6');
$this->outputString('More');
$this->tagClose('div');
$this->colOpen('col-6');
$this->outputString('Edit');
$this->tagClose('div', 5);
}
public function editServerModal()
{
$this->outputString('');
$this->outputString('
');
$this->tagOpen('div', 'modal-content');
$this->tagOpen('div', 'modal-header');
$this->outputString('');
$this->outputString('