@@ -, +, @@ plugins for example 18.11.01.001 --- Koha/Plugins/Base.pm | 43 +++++++++++++++++++ .../prog/en/modules/plugins/plugins-home.tt | 4 +- plugins/plugins-home.pl | 1 - 3 files changed, 45 insertions(+), 3 deletions(-) --- a/Koha/Plugins/Base.pm +++ a/Koha/Plugins/Base.pm @@ -382,6 +382,49 @@ sub disable { return $self; } +=head2 is_for_newer_koha + +Returns 1 if plugin is for newer Koha version, otherwise returns 0 + +=cut + +sub is_for_newer_koha { + my ($self) = @_; + my $actual_version = Koha::version; + my $min_version = $self->get_metadata->{minimum_version}; + return 0 unless $min_version; + return ( _version_to_number($actual_version) < _version_to_number($min_version) ) ? 1 : 0; +} + +=head2 is_for_older_koha + +Returns 1 if plugin is for older Koha version, otherwise returns 0 + +=cut + +sub is_for_older_koha { + my ($self) = @_; + my $actual_version = Koha::version; + my $max_version = $self->get_metadata->{maximum_version}; + return 0 unless $max_version; + return ( _version_to_number($actual_version) > _version_to_number($max_version) ) ? 1 : 0; +} + +=head2 _version_to_number + +Utility method to convert a Koha version into a float number. +For example 21.05.00.006 into 21.0500006 + +=cut + +sub _version_to_number { + my $koha_version = shift; + return 0 unless defined($koha_version); + # Version in metadata may be 18.11, 20.05.02, 21.05.00.006 ... + $koha_version =~ s/^([^\.]*\.[^\.]*)\.?([^\.]*)\.?([^\.]*)$/$1$2$3/; + return $koha_version; +} + 1; __END__ --- a/koha-tmpl/intranet-tmpl/prog/en/modules/plugins/plugins-home.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/plugins/plugins-home.tt @@ -153,13 +153,13 @@ [% plugin.metadata.description | html %] - [% IF ( plugin.metadata.minimum_version && koha_version < plugin.metadata.minimum_version ) %] + [% IF ( plugin.is_for_newer_koha ) %]
Warning: This plugin was written for a newer version of Koha. Use at your own risk.
[% END %] - [% IF ( plugin.metadata.maximum_version && koha_version > plugin.metadata.maximum_version ) %] + [% IF ( plugin.is_for_older_koha ) %]
Warning: This plugin was written for an older version of Koha. Use at your own risk.
--- a/plugins/plugins-home.pl +++ a/plugins/plugins-home.pl @@ -46,7 +46,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( if ($plugins_enabled) { $template->param( - koha_version => C4::Context->preference("Version"), method => $method, ); --