projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of vc.linet-services.de:public/lx-office-erp
[kivitendo-erp.git]
/
SL
/
Controller
/
Base.pm
diff --git
a/SL/Controller/Base.pm
b/SL/Controller/Base.pm
index
f99b1e7
..
1188ffe
100644
(file)
--- a/
SL/Controller/Base.pm
+++ b/
SL/Controller/Base.pm
@@
-160,10
+160,10
@@
sub _run_hooks {
|| ($hook->{except} && $hook->{except}->{$action});
if (ref($hook->{code}) eq 'CODE') {
|| ($hook->{except} && $hook->{except}->{$action});
if (ref($hook->{code}) eq 'CODE') {
- $hook->{code}->($self);
+ $hook->{code}->($self
, $action
);
} else {
my $sub = $hook->{code};
} else {
my $sub = $hook->{code};
- $self->$sub;
+ $self->$sub
($action)
;
}
}
}
}
}
}
@@
-204,7
+204,9
@@
sub _run_action {
}
sub _controller_name {
}
sub _controller_name {
- return (split(/::/, ref($_[0])))[-1];
+ my $class = ref($_[0]) || $_[0];
+ $class =~ s/^SL::Controller:://;
+ return $class;
}
sub _dispatch {
}
sub _dispatch {
@@
-328,6
+330,10
@@
hooks themselves are run as instance methods.
Hooks are run in the order they're added.
Hooks are run in the order they're added.
+The hooks receive a single parameter: the name of the action that is
+about to be called (for C<before> hooks) / was called (for C<after>
+hooks).
+
The return value of the hooks is discarded.
Hooks can be defined to run for all actions, for only specific actions
The return value of the hooks is discarded.
Hooks can be defined to run for all actions, for only specific actions