From fde1b02880b3be4397212f6d0e517e7c975d0cf4 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Sun, 6 Apr 2025 17:21:16 -0700 Subject: [PATCH] Factor out function to get domains list --- phpini/list_pkgs.cgi | 33 ++++++++++++--------------------- phpini/phpini-lib.pl | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/phpini/list_pkgs.cgi b/phpini/list_pkgs.cgi index 703ba8d90..db161d469 100644 --- a/phpini/list_pkgs.cgi +++ b/phpini/list_pkgs.cgi @@ -10,40 +10,31 @@ $access{'global'} || &error($text{'pkgs_ecannot'}); my @pkgs = &list_php_base_packages(); my %got; if (@pkgs) { - my %vmap; - my $hasusers = 0; - if (&foreign_check("virtual-server")) { - # Get the domain to PHP version map - &foreign_require("virtual-server"); - foreach my $d (&virtual_server::list_domains()) { - my $v = $d->{'php_fpm_version'} || - $d->{'php_version'}; - if ($v) { - $vmap{$v} ||= [ ]; - push(@{$vmap{$v}}, $d); - } - $hasusers = 1; - } - } + my $vmap = &get_virtualmin_php_map(); my @tds = ( "width=5" ); print &ui_form_start("delete_pkgs.cgi", "post"); print &ui_columns_start([ "", $text{'pkgs_name'}, $text{'pkgs_ver'}, $text{'pkgs_phpver'}, - $hasusers ? ( + $vmap ? ( $text{'pkgs_shortver'}, $text{'pkgs_users'} ) : ( ), ], \@tds); foreach my $pkg (@pkgs) { - my $ulist = $vmap{$pkg->{'shortver'}}; - my $users = !$ulist || !@$ulist ? $text{'pkgs_nousers'} : - @$ulist > 5 ? &text('pkgs_ucount',scalar(@$ulist)) : - join(", ", map { "$_->{'dom'}" } @$ulist); + my $users; + if ($vmap) { + my $ulist = $vmap->{$pkg->{'shortver'}}; + $users = !$ulist || !@$ulist ? $text{'pkgs_nousers'} : + @$ulist > 5 ? &text('pkgs_ucount', + scalar(@$ulist)) : + join(", ", map { "$_->{'dom'}" } + @$ulist); + } print &ui_checked_columns_row([ $pkg->{'name'}, $pkg->{'ver'}, $pkg->{'phpver'}, - $hasusers ? ( $pkg->{'shortver'}, $users ) : ( ), + $vmap ? ( $pkg->{'shortver'}, $users ) : ( ), ], \@tds, "d", $pkg->{'name'}); $got{$pkg->{'name'}}++; } diff --git a/phpini/phpini-lib.pl b/phpini/phpini-lib.pl index 9942e911e..a9b012717 100755 --- a/phpini/phpini-lib.pl +++ b/phpini/phpini-lib.pl @@ -938,5 +938,24 @@ foreach my $pkg (&package_updates::list_available()) { return sort { &compare_version_numbers($a->{'ver'}, $b->{'ver'}) } @rv; } +# get_virtualmin_php_map() +# Return a hash mapping PHP versions like 5 or 7.2 to a list of domains, or +# undef if Virtualmin isn't installed +sub get_virtualmin_php_map +{ +my %vmap; +&foreign_check("virtual-server") || return undef; +&foreign_require("virtual-server"); +foreach my $d (&virtual_server::list_domains()) { + my $v = $d->{'php_fpm_version'} || + $d->{'php_version'}; + if ($v) { + $vmap{$v} ||= [ ]; + push(@{$vmap{$v}}, $d); + } + } +return \%vmap; +} + 1;