aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/hook/event_store_event.bb11
-rw-r--r--doc/hooklist.bb3
-rw-r--r--include/event.php7
3 files changed, 21 insertions, 0 deletions
diff --git a/doc/hook/event_store_event.bb b/doc/hook/event_store_event.bb
new file mode 100644
index 000000000..7015a8322
--- /dev/null
+++ b/doc/hook/event_store_event.bb
@@ -0,0 +1,11 @@
+[h2]event_store_event[/h2]
+
+Called from event_store_event() when an event record is being stored.
+
+Hook info is an array
+
+'event' => the passed event details, ready for storage
+'existing_event' => If the event already exists, a copy of the original event record from the database
+'cancel' => false - set to true to cancel the operation.
+
+
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
index 66ff1cf71..858a7d021 100644
--- a/doc/hooklist.bb
+++ b/doc/hooklist.bb
@@ -184,6 +184,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/event_created]event_created[/zrl]
called when an event record is created
+[zrl=[baseurl]/help/hook/event_store_event]event_store_event[/zrl]
+ called when an event record is created or updated
+
[zrl=[baseurl]/help/hook/event_updated]event_updated[/zrl]
called when an event record is modified
diff --git a/include/event.php b/include/event.php
index 3d650cd14..407736a23 100644
--- a/include/event.php
+++ b/include/event.php
@@ -343,6 +343,13 @@ function event_store_event($arr) {
}
}
+ $hook_info = [ 'event' => $arr, 'existing_event' => $existing_event, 'cancel' => false ];
+ call_hooks('event_store_event',$hook_info);
+ if($hook_info['cancel'])
+ return false;
+
+ $arr = $hook_info['event'];
+ $existing_event = $hook_info['existing_event'];
if($existing_event) {