Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
b47f92d8
Commit
b47f92d8
authored
Nov 18, 2009
by
mkanat%bugzilla.org
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 525426: Hook: object-before_set
Patch by Max Kanat-Alexander <mkanat@bugzilla.org> r=dkl, a=mkanat
parent
03168362
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
64 additions
and
0 deletions
+64
-0
Hook.pm
Bugzilla/Hook.pm
+26
-0
Object.pm
Bugzilla/Object.pm
+4
-0
object-before_set.pl
extensions/example/code/object-before_set.pl
+34
-0
No files found.
Bugzilla/Hook.pm
View file @
b47f92d8
...
...
@@ -620,6 +620,32 @@ A hashref. The set of named parameters passed to C<create>.
=back
=head2 object-before_set
Called during L<Bugzilla::Object/set>, before any actual work is done.
You can use this to perform actions before a value is changed for
specific fields on certain types of objects.
Params:
=over
=item C<object>
The object that C<set> was called on. 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<field>
The name of the field being updated in the object.
=item C<value>
The value being set on the object.
=back
=head2 object-end_of_create_validators
Called at the end of L<Bugzilla::Object/run_create_validators>. You can
...
...
Bugzilla/Object.pm
View file @
b47f92d8
...
...
@@ -279,6 +279,10 @@ sub set {
superclass
=>
__PACKAGE__
,
function
=>
'Bugzilla::Object->set'
});
Bugzilla::Hook::
process
(
'object-before_set'
,
{
object
=>
$self
,
field
=>
$field
,
value
=>
$value
});
my
%
validators
=
(
%
{
$self
->
VALIDATORS
},
%
{
$self
->
UPDATE_VALIDATORS
});
if
(
exists
$validators
{
$field
})
{
my
$validator
=
$validators
{
$field
};
...
...
extensions/example/code/object-before_set.pl
0 → 100644
View file @
b47f92d8
# -*- 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
,
$field
,
$value
)
=
@$args
{
qw(object field value)
};
# Note that this is a made-up class, for this example.
if
(
$object
->
isa
(
'Bugzilla::ExampleObject'
))
{
warn
"The field $field is changing from "
.
$object
->
{
$field
}
.
" to $value!"
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment