summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/Hook.pm11
-rwxr-xr-xBugzilla/WebService/Bugzilla.pm25
2 files changed, 22 insertions, 14 deletions
diff --git a/Bugzilla/Hook.pm b/Bugzilla/Hook.pm
index 7c47b3f3f..0cf566db1 100644
--- a/Bugzilla/Hook.pm
+++ b/Bugzilla/Hook.pm
@@ -69,7 +69,7 @@ sub enabled_plugins {
next if -e "$extension/disabled";
# Allow extensions to load their own libraries.
local @INC = ("$extension/lib", @INC);
- $enabled{$extname} = do("$extension/version.pl");
+ $enabled{$extname} = do("$extension/info.pl");
ThrowCodeError('extension_invalid',
{ errstr => $@, name => 'version',
extension => $extension }) if $@;
@@ -125,9 +125,12 @@ hook to do anything, you have to modify these variables.
=head2 Versioning Extensions
-Every extension must have a file in its root called F<version.pl>.
-This file should return a version number when called with C<do>.
-This represents the current version of this extension.
+Every extension must have a file in its root called F<info.pl>.
+This file must return a hash when called with C<do>.
+The hash must contain a 'version' key with the current version of the
+extension. Extension authors can also add any extra infomration to this hash if
+required, by adding a new key beginning with x_ which will not be used the
+core Bugzilla code.
=head1 SUBROUTINES
diff --git a/Bugzilla/WebService/Bugzilla.pm b/Bugzilla/WebService/Bugzilla.pm
index dde9cfd4b..7b58af254 100755
--- a/Bugzilla/WebService/Bugzilla.pm
+++ b/Bugzilla/WebService/Bugzilla.pm
@@ -36,12 +36,16 @@ sub version {
return { version => type('string')->value(BUGZILLA_VERSION) };
}
-sub plugins {
- my $plugins = Bugzilla::Hook::enabled_plugins();
- foreach my $name (keys %$plugins) {
- $plugins->{$name} = type('string')->value($plugins->{$name});
+sub extensions {
+ my $extensions = Bugzilla::Hook::enabled_plugins();
+ foreach my $name (keys %$extensions) {
+ my $info = $extensions->{$name};
+ foreach my $data (keys %$info)
+ {
+ $extensions->{$name}->{$data} = type('string')->value($info->{$data});
+ }
}
- return { plugins => $plugins };
+ return { extensions => $extensions };
}
sub timezone {
@@ -89,22 +93,23 @@ string.
=back
-=item C<plugins> B<EXPERIMENTAL>
+=item C<extensions> B<EXPERIMENTAL>
=over
=item B<Description>
-Gets information about the plugins that are currently installed and enabled
+Gets information about the extensions that are currently installed and enabled
in this Bugzilla.
=item B<Params> (none)
=item B<Returns>
-A hash with a single item, C<plugins>. This points to a hash. I<That> hash
-contains the names of plugins as keys, and the versions of the plugin as
-values.
+A hash with a single item, C<extesions>. This points to a hash. I<That> hash
+contains the names of extensions as keys, and information about the extension
+as values. One of the values that must be returned is the 'version' of the
+extension
=back