diff --git a/admin_phpsettings.php b/admin_phpsettings.php
index f4b2df20..77e79395 100644
--- a/admin_phpsettings.php
+++ b/admin_phpsettings.php
@@ -30,7 +30,9 @@ if ($page == 'overview') {
if ($action == '') {
try {
- $json_result = PhpSettings::getLocal($userinfo)->listing();
+ $json_result = PhpSettings::getLocal($userinfo, array(
+ 'with_subdomains' => true
+ ))->listing();
} catch (Exception $e) {
dynamic_error($e->getMessage());
}
@@ -44,10 +46,14 @@ if ($page == 'overview') {
$row['description'] = "" . $row['description'] . "";
}
$domains = "";
+ $subdomains_count = $row['subdomains_count'];
foreach ($row['domains'] as $configdomain) {
$domains .= $configdomain . "
";
}
$count++;
+ if ($subdomains_count == 0 && empty($domains)) {
+ $domains = $lng['admin']['phpsettings']['notused'];
+ }
eval("\$tablecontent.=\"" . getTemplate("phpconfig/overview_overview") . "\";");
}
}
diff --git a/lib/classes/api/commands/class.PhpSettings.php b/lib/classes/api/commands/class.PhpSettings.php
index e93487b7..8d06ca90 100644
--- a/lib/classes/api/commands/class.PhpSettings.php
+++ b/lib/classes/api/commands/class.PhpSettings.php
@@ -21,6 +21,9 @@ class PhpSettings extends ApiCommand implements ResourceEntity
/**
* lists all php-setting entries
*
+ * @param bool $with_subdomains
+ * optional, also include subdomains to the list domains that use the config, default 0 (false)
+ *
* @access admin
* @throws Exception
* @return array count|list
@@ -30,6 +33,8 @@ class PhpSettings extends ApiCommand implements ResourceEntity
if ($this->isAdmin()) {
$this->logger()->logAction(ADM_ACTION, LOG_NOTICE, "[API] list php-configs");
+ $with_subdomains = $this->getBoolParam('with_subdomains', true, false);
+
$result = Database::query("
SELECT c.*, fd.description as fpmdesc
FROM `" . TABLE_PANEL_PHPCONFIGS . "` c
@@ -44,8 +49,11 @@ class PhpSettings extends ApiCommand implements ResourceEntity
);
$query = "SELECT * FROM `" . TABLE_PANEL_DOMAINS . "`
- WHERE `phpsettingid` = :id
- AND `parentdomainid` = '0'";
+ WHERE `phpsettingid` = :id";
+
+ if (!$with_subdomains) {
+ $query .= " AND `parentdomainid` = '0'";
+ }
if ((int) $this->getUserDetail('domains_see_all') == 0) {
$query .= " AND `adminid` = :adminid";
@@ -66,12 +74,17 @@ class PhpSettings extends ApiCommand implements ResourceEntity
}
$domains = array();
+ $subdomains_count = 0;
$domainresult_stmt = Database::prepare($query);
Database::pexecute($domainresult_stmt, $query_params, true, true);
if (Database::num_rows() > 0) {
while ($row2 = $domainresult_stmt->fetch(PDO::FETCH_ASSOC)) {
- $domains[] = $row2['domain'];
+ if ($row2['parentdomainid'] != 0) {
+ $subdomains_count++;
+ } else {
+ $domains[] = $row2['domain'];
+ }
}
}
@@ -80,16 +93,13 @@ class PhpSettings extends ApiCommand implements ResourceEntity
$domains[] = Settings::Get('system.hostname');
}
- if (empty($domains)) {
- $domains[] = $this->lng['admin']['phpsettings']['notused'];
- }
-
// check whether this is our default config
if ((Settings::Get('system.mod_fcgid') == '1' && Settings::Get('system.mod_fcgid_defaultini') == $row['id']) || (Settings::Get('phpfpm.enabled') == '1' && Settings::Get('phpfpm.defaultini') == $row['id'])) {
$row['is_default'] = true;
}
$row['domains'] = $domains;
+ $row['subdomains_count'] = $subdomains_count;
$phpconfigs[] = $row;
}
diff --git a/templates/Sparkle/admin/phpconfig/overview_overview.tpl b/templates/Sparkle/admin/phpconfig/overview_overview.tpl
index 0ccc9f58..2376cb22 100644
--- a/templates/Sparkle/admin/phpconfig/overview_overview.tpl
+++ b/templates/Sparkle/admin/phpconfig/overview_overview.tpl
@@ -1,6 +1,6 @@