mirror of
https://github.com/webmin/webmin.git
synced 2026-03-20 16:50:24 +00:00
Add form to install a new PHP package
This commit is contained in:
@@ -228,5 +228,7 @@ pkgs_ecannot=You are not allowed to manage PHP packages!
|
||||
pkgs_ecannot2=Software packages cannot be managed on this system
|
||||
pkgs_nousers=No domains
|
||||
pkgs_ucount=$1 domains
|
||||
pkgs_newver=PHP package to install:
|
||||
pkgs_install=Install Now
|
||||
|
||||
__norefs=1
|
||||
|
||||
@@ -8,6 +8,7 @@ $access{'global'} || &error($text{'pkgs_ecannot'});
|
||||
&ui_print_header(undef, $text{'pkgs_title'}, "");
|
||||
|
||||
my @pkgs = &list_php_base_packages();
|
||||
my %got;
|
||||
if (@pkgs) {
|
||||
my %vmap;
|
||||
my $hasusers = 0;
|
||||
@@ -44,6 +45,7 @@ if (@pkgs) {
|
||||
$pkg->{'phpver'},
|
||||
$hasusers ? ( $pkg->{'shortver'}, $users ) : ( ),
|
||||
], \@tds, "d", $pkg->{'name'});
|
||||
$got{$pkg->{'name'}}++;
|
||||
}
|
||||
print &ui_columns_end();
|
||||
print &ui_form_end([ [ undef, $text{'pkgs_delete'} ] ]);
|
||||
@@ -52,4 +54,21 @@ else {
|
||||
print "<b>$text{'pkgs_none'}</b> <p>\n";
|
||||
}
|
||||
|
||||
if (&foreign_installed("package-updates")) {
|
||||
# Show form to install a new version
|
||||
@newpkgs = grep { !$got{$_->{'name'}} } &list_available_php_packages();
|
||||
print &ui_hr();
|
||||
print &ui_form_start(
|
||||
&get_webprefix()."/package-updates/update.cgi", "post");
|
||||
print "<b>$text{'pkgs_newver'}</b>\n";
|
||||
print &ui_select("u", undef,
|
||||
[ map { [ $_->{'name'},
|
||||
$_->{'name'}." (".$_->{'version'}.")" ] } @newpkgs ]);
|
||||
print &ui_hidden(
|
||||
"redir", &get_webprefix()."/$module_name/list_pkgs.cgi");
|
||||
print &ui_hidden("redirdesc", $text{'pkgs_title'});
|
||||
print &ui_hidden("mode", "new");
|
||||
print &ui_form_end([ [ undef, $text{'pkgs_install'} ] ]);
|
||||
}
|
||||
|
||||
&ui_print_footer("", $text{'index_return'});
|
||||
|
||||
@@ -867,7 +867,8 @@ return @poss;
|
||||
}
|
||||
|
||||
# list_php_base_packages()
|
||||
# Returns a list of hash refs, one per PHP version installed, with the following keys
|
||||
# Returns a list of hash refs, one per PHP version installed, with the
|
||||
# following keys :
|
||||
# name - Package name
|
||||
# system - Package system
|
||||
# ver - Package version
|
||||
@@ -910,5 +911,32 @@ for(my $i=0; $i<$n; $i++) {
|
||||
return sort { &compare_version_numbers($a->{'ver'}, $b->{'ver'}) } @rv;
|
||||
}
|
||||
|
||||
# list_available_php_packages()
|
||||
# Returns a list of hash refs, one per PHP version available, with the
|
||||
# following keys :
|
||||
sub list_available_php_packages
|
||||
{
|
||||
&foreign_require("package-updates");
|
||||
my @rv;
|
||||
foreach my $pkg (&package_updates::list_available()) {
|
||||
my $name = $pkg->{'name'};
|
||||
next if ($name !~ /^php(\d*)$/);
|
||||
my $suffix = $1;
|
||||
my $phpver = $pkg->{'version'};
|
||||
$phpver =~ s/\-.*$//;
|
||||
my $shortver = $phpver;
|
||||
$shortver =~ s/^(\d+\.\d+).*$/$1/;
|
||||
if ($shortver =~ /^5\./) {
|
||||
$shortver = "5";
|
||||
}
|
||||
push(@rv, { 'name' => $pkg->{'name'},
|
||||
'version' => $pkg->{'version'},
|
||||
'shortver' => $shortver,
|
||||
'phpver' => $phpver,
|
||||
});
|
||||
}
|
||||
return sort { &compare_version_numbers($a->{'ver'}, $b->{'ver'}) } @rv;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user