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 @@ {$row['description']} - {$domains} + {$domains}+ {$subdomains_count} {$lng['customer']['subdomains']} {$row['fpmdesc']}