1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-17 12:10:45 +02:00

Update WireHooks to allow for (and ignore) an empty argument string "()" after hook definition (first argument) in addHook() methods.

This commit is contained in:
Ryan Cramer
2019-02-26 10:22:47 -05:00
parent 1b53ed15a9
commit 9af4df040e

View File

@@ -546,7 +546,13 @@ class WireHooks {
} }
$argOpen = strpos($method, '('); $argOpen = strpos($method, '(');
if($argOpen && strpos($method, ')') > $argOpen+1) { if($argOpen) {
// arguments to match may be specified in method name
$argClose = strpos($method, ')');
if($argClose === $argOpen+1) {
// method just has a "()" which can be discarded
$method = rtrim($method, '() ');
} else if($argClose > $argOpen+1) {
// extract argument selector match string(s), arg 0: Something::something(selector_string) // extract argument selector match string(s), arg 0: Something::something(selector_string)
// or: Something::something(1:selector_string, 3:selector_string) matches arg 1 and 3. // or: Something::something(1:selector_string, 3:selector_string) matches arg 1 and 3.
list($method, $argMatch) = explode('(', $method, 2); list($method, $argMatch) = explode('(', $method, 2);
@@ -576,6 +582,7 @@ class WireHooks {
} }
if(count($argMatch)) $options['argMatch'] = $argMatch; if(count($argMatch)) $options['argMatch'] = $argMatch;
} }
}
$localHooks = $object->getLocalHooks(); $localHooks = $object->getLocalHooks();