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
eea9be3a
Commit
eea9be3a
authored
Nov 23, 2009
by
mkanat%bugzilla.org
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 528062: Hook: Object-end_of_update
Patch by Max Kanat-Alexander <mkanat@bugzilla.org> (module owner) a=mkanat
parent
71a42cb2
Hide 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-end_of_update.pl
extensions/example/code/object-end_of_update.pl
+34
-0
No files found.
Bugzilla/Hook.pm
View file @
eea9be3a
...
...
@@ -693,6 +693,32 @@ A hashref. The set of named parameters passed to C<set_all>.
=back
=head2 object-end_of_update
Called during L<Bugzilla::Object/update>, after changes are made
to the database, but while still inside a transaction.
Params:
=over
=item C<object>
The object that C<update> 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<old_object>
The object as it was before it was updated.
=item C<changes>
The fields that have been changed, in the same format that
L<Bugzilla::Object/update> returns.
=back
=head2 page-before_template
This is a simple way to add your own pages to Bugzilla. This hooks C<page.cgi>,
...
...
Bugzilla/Object.pm
View file @
eea9be3a
...
...
@@ -348,6 +348,10 @@ sub update {
$dbh
->
do
(
"UPDATE $table SET $columns WHERE $id_field = ?"
,
undef
,
@values
,
$self
->
id
)
if
@values
;
Bugzilla::
Hook
(
'object-end_of_update'
,
{
object
=>
$self
,
old_object
=>
$old_self
,
changes
=>
\%
changes
});
$dbh
->
bz_commit_transaction
();
if
(
wantarray
)
{
...
...
extensions/example/code/object-end_of_update.pl
0 → 100644
View file @
eea9be3a
# -*- 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
,
$old_object
,
$changes
)
=
@$args
{
qw(object old_object changes)
};
# Note that this is a made-up class, for this example.
if
(
$object
->
isa
(
'Bugzilla::ExampleObject'
))
{
if
(
defined
$changes
->
{
'name'
})
{
my
(
$old
,
$new
)
=
@
{
$changes
->
{
'name'
}
};
print
"The name field changed from $old to $new!"
;
}
}
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