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
b29c8663
Commit
b29c8663
authored
Nov 18, 2009
by
mkanat%bugzilla.org
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 521373: Hook: object-before_create
parent
437b14a0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
59 additions
and
0 deletions
+59
-0
Hook.pm
Bugzilla/Hook.pm
+20
-0
Object.pm
Bugzilla/Object.pm
+6
-0
object-before_create.pl
extensions/example/code/object-before_create.pl
+33
-0
No files found.
Bugzilla/Hook.pm
View file @
b29c8663
...
@@ -585,6 +585,26 @@ Params:
...
@@ -585,6 +585,26 @@ Params:
=back
=back
=head2 object-before_create
This happens at the beginning of L<Bugzilla::Object/create>.
Params:
=over
=item C<class>
The name of the class that C<create> was called on. You can check this
like C<< if ($class->isa('Some::Class')) >> in your code, to perform specific
tasks before C<create> for only certain classes.
=item C<params>
A hashref. The set of named parameters passed to C<create>.
=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>,
...
...
Bugzilla/Object.pm
View file @
b29c8663
...
@@ -24,6 +24,7 @@ use strict;
...
@@ -24,6 +24,7 @@ use strict;
package
Bugzilla::
Object
;
package
Bugzilla::
Object
;
use
Bugzilla::
Constants
;
use
Bugzilla::
Constants
;
use
Bugzilla::
Hook
;
use
Bugzilla::
Util
;
use
Bugzilla::
Util
;
use
Bugzilla::
Error
;
use
Bugzilla::
Error
;
...
@@ -399,6 +400,11 @@ sub _check_field {
...
@@ -399,6 +400,11 @@ sub _check_field {
sub
check_required_create_fields
{
sub
check_required_create_fields
{
my
(
$class
,
$params
)
=
@_
;
my
(
$class
,
$params
)
=
@_
;
# This hook happens here so that even subclasses that don't call
# SUPER::create are still affected by the hook.
Bugzilla::Hook::
process
(
'object-before_create'
,
{
class
=>
$class
,
params
=>
$params
});
foreach
my
$field
(
$class
->
REQUIRED_CREATE_FIELDS
)
{
foreach
my
$field
(
$class
->
REQUIRED_CREATE_FIELDS
)
{
ThrowCodeError
(
'param_required'
,
ThrowCodeError
(
'param_required'
,
{
function
=>
"${class}->create"
,
param
=>
$field
})
{
function
=>
"${class}->create"
,
param
=>
$field
})
...
...
extensions/example/code/object-before_create.pl
0 → 100644
View file @
b29c8663
# -*- 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
;
use
Bugzilla
;
my
$args
=
Bugzilla
->
hook_args
;
my
$class
=
$args
->
{
'class'
};
my
$params
=
$args
->
{
'params'
};
# Note that this is a made-up class, for this example.
if
(
$class
->
isa
(
'Bugzilla::ExampleObject'
))
{
warn
"About to create an ExampleObject!"
;
warn
"Got the following parameters: "
.
join
(
', '
,
keys
(
%
$params
));
}
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