diff --git a/admin_domains.php b/admin_domains.php index 8bec3e96..41b5e983 100644 --- a/admin_domains.php +++ b/admin_domains.php @@ -96,6 +96,22 @@ if ($page == 'domains' } } $row['ipandport'] = substr($row['ipandport'], 0, -1); + $row['termination_date'] = str_replace("0000-00-00", "", $row['termination_date']); + + if($row['termination_date'] != "") + { + $cdate = strtotime($row['termination_date'] . " 23:59:59"); + $today = time(); + + if($cdate < $today) + { + $row['termination_css'] = 'domain-expired'; + } + else + { + $row['termination_css'] = 'domain-canceled'; + } + } if (!isset($domain_array[$row['domain']])) { $domain_array[$row['domain']] = $row; @@ -362,6 +378,9 @@ if ($page == 'domains' $registration_date = trim($_POST['registration_date']); $registration_date = validate($registration_date, 'registration_date', '/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/', '', array('0000-00-00', '0', '')); + $termination_date = trim($_POST['termination_date']); + $termination_date = validate($termination_date, 'termination_date', '/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/', '', array('0000-00-00', '0', '')); + if ($userinfo['change_serversettings'] == '1') { $caneditdomain = isset($_POST['caneditdomain']) ? intval($_POST['caneditdomain']) : 0; @@ -714,6 +733,7 @@ if ($page == 'domains' 'mod_fcgid_maxrequests' => $mod_fcgid_maxrequests, 'specialsettings' => $specialsettings, 'registration_date' => $registration_date, + 'termination_date' => $termination_date, 'issubof' => $issubof, 'letsencrypt' => $letsencrypt ); @@ -761,6 +781,7 @@ if ($page == 'domains' 'ssl_redirect' => $ssl_redirect, 'add_date' => time(), 'registration_date' => $registration_date, + 'termination_date' => $termination_date, 'phpsettingid' => $phpsettingid, 'mod_fcgid_starter' => $mod_fcgid_starter, 'mod_fcgid_maxrequests' => $mod_fcgid_maxrequests, @@ -793,6 +814,7 @@ if ($page == 'domains' `ssl_redirect` = :ssl_redirect, `add_date` = :add_date, `registration_date` = :registration_date, + `termination_date` => :termination_date, `phpsettingid` = :phpsettingid, `mod_fcgid_starter` = :mod_fcgid_starter, `mod_fcgid_maxrequests` = :mod_fcgid_maxrequests, @@ -1154,6 +1176,8 @@ if ($page == 'domains' $caneditdomain = isset($_POST['caneditdomain']) ? intval($_POST['caneditdomain']) : 0; $registration_date = trim($_POST['registration_date']); $registration_date = validate($registration_date, 'registration_date', '/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/', '', array('0000-00-00', '0', '')); + $termination_date = trim($_POST['termination_date']); + $termination_date = validate($termination_date, 'termination_date', '/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/', '', array('0000-00-00', '0', '')); $isemaildomain = 0; if (isset($_POST['isemaildomain'])) { @@ -1466,7 +1490,7 @@ if ($page == 'domains' 'mod_fcgid_maxrequests' => $mod_fcgid_maxrequests, 'specialsettings' => $specialsettings, 'registration_date' => $registration_date, - 'issubof' => $issubof, + 'termination_date' => $termination_date, 'issubof' => $issubof, 'speciallogfile' => $speciallogfile, 'speciallogverified' => $speciallogverified, 'ipandport' => serialize($ipandports), @@ -1641,6 +1665,7 @@ if ($page == 'domains' $update_data['mod_fcgid_maxrequests'] = $mod_fcgid_maxrequests; $update_data['specialsettings'] = $specialsettings; $update_data['registration_date'] = $registration_date; + $update_data['termination_date'] = $termination_date; $update_data['ismainbutsubto'] = $issubof; $update_data['letsencrypt'] = $letsencrypt; $update_data['id'] = $id; @@ -1668,6 +1693,7 @@ if ($page == 'domains' `mod_fcgid_maxrequests` = :mod_fcgid_maxrequests, `specialsettings` = :specialsettings, `registration_date` = :registration_date, + `termination_date` = :termination_date, `ismainbutsubto` = :ismainbutsubto, `letsencrypt` = :letsencrypt WHERE `id` = :id diff --git a/customer_domains.php b/customer_domains.php index c8ec610b..10e9b3af 100644 --- a/customer_domains.php +++ b/customer_domains.php @@ -36,7 +36,7 @@ if ($page == 'overview') { 'd.domain' => $lng['domains']['domainname'] ); $paging = new paging($userinfo, TABLE_PANEL_DOMAINS, $fields); - $domains_stmt = Database::prepare("SELECT `d`.`id`, `d`.`customerid`, `d`.`domain`, `d`.`documentroot`, `d`.`isemaildomain`, `d`.`caneditdomain`, `d`.`iswildcarddomain`, `d`.`parentdomainid`, `d`.`letsencrypt`, `ad`.`id` AS `aliasdomainid`, `ad`.`domain` AS `aliasdomain`, `da`.`id` AS `domainaliasid`, `da`.`domain` AS `domainalias` FROM `" . TABLE_PANEL_DOMAINS . "` `d` + $domains_stmt = Database::prepare("SELECT `d`.`id`, `d`.`customerid`, `d`.`domain`, `d`.`documentroot`, `d`.`isemaildomain`, `d`.`caneditdomain`, `d`.`iswildcarddomain`, `d`.`parentdomainid`, `d`.`letsencrypt`, `d`.`termination_date`, `ad`.`id` AS `aliasdomainid`, `ad`.`domain` AS `aliasdomain`, `da`.`id` AS `domainaliasid`, `da`.`domain` AS `domainalias` FROM `" . TABLE_PANEL_DOMAINS . "` `d` LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `ad` ON `d`.`aliasdomain`=`ad`.`id` LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `da` ON `da`.`aliasdomain`=`d`.`id` WHERE `d`.`customerid`= :customerid @@ -86,6 +86,22 @@ if ($page == 'overview') { } } } + + $row['termination_date'] = str_replace("0000-00-00", "", $row['termination_date']); + if($row['termination_date'] != "") + { + $cdate = strtotime($row['termination_date'] . " 23:59:59"); + $today = time(); + + if($cdate < $today) + { + $row['termination_css'] = 'domain-expired'; + } + else + { + $row['termination_css'] = 'domain-canceled'; + } + } $domains_count++; $domain_array[$row['domain']] = $row; diff --git a/install/froxlor.sql b/install/froxlor.sql index 29c66917..a735cbf3 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -245,6 +245,7 @@ CREATE TABLE `panel_domains` ( `bindserial` varchar(10) NOT NULL default '2000010100', `add_date` int( 11 ) NOT NULL default '0', `registration_date` date NOT NULL, + `termination_date` date NOT NULL, `phpsettingid` INT( 11 ) UNSIGNED NOT NULL DEFAULT '1', `mod_fcgid_starter` int(4) default '-1', `mod_fcgid_maxrequests` int(4) default '-1', diff --git a/install/updates/froxlor/0.9/update_0.9.inc.php b/install/updates/froxlor/0.9/update_0.9.inc.php index 47e722f8..5f5e209a 100644 --- a/install/updates/froxlor/0.9/update_0.9.inc.php +++ b/install/updates/froxlor/0.9/update_0.9.inc.php @@ -3061,3 +3061,11 @@ if (isFroxlorVersion('0.9.35-dev1')) { updateToVersion('0.9.35-dev2'); } +if (isFroxlorVersion('0.9.35-dev2')) { + + showUpdateStep("Updating from 0.9.35-dev2 to 0.9.35-dev3"); + Database::query("ALTER TABLE `".TABLE_PANEL_DOMAINS."` ADD `termination_date` date NOT NULL AFTER `registration_date`"); + lastStepStatus(0); + + updateToVersion('0.9.35-dev3'); +} diff --git a/lib/formfields/admin/domains/formfield.domains_add.php b/lib/formfields/admin/domains/formfield.domains_add.php index f39c9754..e7d71f14 100644 --- a/lib/formfields/admin/domains/formfield.domains_add.php +++ b/lib/formfields/admin/domains/formfield.domains_add.php @@ -73,6 +73,13 @@ return array( 'desc' => $lng['panel']['dateformat'], 'type' => 'text', 'size' => 10 + ), + 'termination_date' => array( + 'label' => $lng['domains']['termination_date'], + 'desc' => $lng['panel']['dateformat'], + 'type' => 'text', + 'value' => $result['termination_date'], + 'size' => 10 ) ) ), diff --git a/lib/formfields/admin/domains/formfield.domains_edit.php b/lib/formfields/admin/domains/formfield.domains_edit.php index 2c68f208..566c294a 100644 --- a/lib/formfields/admin/domains/formfield.domains_edit.php +++ b/lib/formfields/admin/domains/formfield.domains_edit.php @@ -83,6 +83,13 @@ return array( 'type' => 'text', 'value' => $result['registration_date'], 'size' => 10 + ), + 'termination_date' => array( + 'label' => $lng['domains']['termination_date'], + 'desc' => $lng['panel']['dateformat'], + 'type' => 'text', + 'value' => $result['termination_date'], + 'size' => 10 ) ) ), diff --git a/lib/version.inc.php b/lib/version.inc.php index 7bf5b39d..73bb3194 100644 --- a/lib/version.inc.php +++ b/lib/version.inc.php @@ -16,7 +16,7 @@ */ // Main version variable -$version = '0.9.35-dev2'; +$version = '0.9.35-dev3'; // Database version (unused, old stuff from SysCP) $dbversion = '2'; diff --git a/lng/english.lng.php b/lng/english.lng.php index a778e4ca..9cea4f9d 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -1955,3 +1955,7 @@ $lng['error']['autoupdate_8'] = 'The archive could not be extraxted :('; $lng['error']['autoupdate_9'] = 'The MD5 sum of the downloaded file is not correct. Please try to update again.'; $lng['admin']['server_php'] = 'PHP'; + +// Added for Termination-date +$lng['domains']['termination_date'] = 'Date of termination'; +$lng['domains']['termination_date_overview'] = 'canceled until '; \ No newline at end of file diff --git a/lng/german.lng.php b/lng/german.lng.php index fffad0b8..2a11e763 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1596,3 +1596,6 @@ $lng['serversettings']['letsencryptcountrycode']['description'] = "2 - stelliger $lng['serversettings']['letsencryptstate']['title'] = "Let's Encrypt Bundesland"; $lng['serversettings']['letsencryptstate']['description'] = "Bundesland, welches benutzt wird um Let's Encrypt - Zertifikate zu bestellen.
ATTENTION:Let's Encrypt befindet sich noch im Test"; +// Added for Termination-date +$lng['domains']['termination_date'] = 'Kündigungsdatum'; +$lng['domains']['termination_date_overview'] = 'gekündigt zum '; \ No newline at end of file diff --git a/templates/Sparkle/admin/domains/domains_domain.tpl b/templates/Sparkle/admin/domains/domains_domain.tpl index 732908ca..b228fdc9 100644 --- a/templates/Sparkle/admin/domains/domains_domain.tpl +++ b/templates/Sparkle/admin/domains/domains_domain.tpl @@ -1,8 +1,19 @@ - + + + + + + + + {$row['domain']}  ({$lng['admin']['stdsubdomain']}) + +
({$lng['domains']['termination_date_overview']} {$row['termination_date']})
+
+ {$row['ipandport']} {$row['customername']}  diff --git a/templates/Sparkle/assets/css/main.css b/templates/Sparkle/assets/css/main.css index 371ae1ce..7e532474 100644 --- a/templates/Sparkle/assets/css/main.css +++ b/templates/Sparkle/assets/css/main.css @@ -1493,3 +1493,13 @@ fieldset.file { padding: 5px; margin-bottom: 10px; } + +.domain-canceled { + /* Color copied from .warningcontainer */ + background-color: #fffecc; +} + +.domain-expired { + /* Color copied from .errorcontainer */ + background-color: rgb(242, 222, 222); +} \ No newline at end of file diff --git a/templates/Sparkle/customer/domains/domains_domain.tpl b/templates/Sparkle/customer/domains/domains_domain.tpl index a85e74e0..78574c2c 100644 --- a/templates/Sparkle/customer/domains/domains_domain.tpl +++ b/templates/Sparkle/customer/domains/domains_domain.tpl @@ -1,5 +1,14 @@ - - {$row['domain']} + + + + + + + {$row['domain']} + +
({$lng['domains']['termination_date_overview']} {$row['termination_date']})
+
+ {$row['documentroot']} {$lng['domains']['aliasdomain']} {$row['aliasdomain']}