Commit 71a42cb2 authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 521413: Hook: object-end_of_set_all

Patch by Max Kanat-Alexander <mkanat@bugzilla.org> (module owner) a=mkanat
parent 86a245f0
...@@ -671,6 +671,28 @@ validated by the C<VALIDATORS> specified for the object. ...@@ -671,6 +671,28 @@ validated by the C<VALIDATORS> specified for the object.
=back =back
=head2 object-end_of_set_all
This happens at the end of L<Bugzilla::Object/set_all>. This is a
good place to call custom set_ functions on objects, or to make changes
to an object before C<update()> is called.
Params:
=over
=item C<object>
The L<Bugzilla::Object> which is being updated. You will probably want to
do something like C<< if ($object->isa('Some::Class')) >> in your code to
limit your changes to only certain subclasses of Bugzilla::Object.
=item C<params>
A hashref. The set of named parameters passed to C<set_all>.
=back
=head2 page-before_template =head2 page-before_template
This is a simple way to add your own pages to Bugzilla. This hooks C<page.cgi>, This is a simple way to add your own pages to Bugzilla. This hooks C<page.cgi>,
......
...@@ -303,6 +303,8 @@ sub set_all { ...@@ -303,6 +303,8 @@ sub set_all {
my $method = "set_$key"; my $method = "set_$key";
$self->$method($params->{$key}); $self->$method($params->{$key});
} }
Bugzilla::Hook::process('object-end_of_set_all', { object => $self,
params => $params });
} }
sub update { sub update {
......
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Example Plugin.
#
# The Initial Developer of the Original Code is ITA Software
# Portions created by the Initial Developer are Copyright (C) 2009
# the Initial Developer. All Rights Reserved.
#
# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
use strict;
use warnings;
my $args = Bugzilla->hook_args;
my $object = $args->{'class'};
my $params = $args->{'params'};
# Note that this is a made-up class, for this example.
if ($object->isa('Bugzilla::ExampleObject')) {
if ($params->{example_field} == 1) {
$object->{example_field} = 1;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment