This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
developers:addons:core_events [2009/01/05 21:16] jonyo |
developers:addons:core_events [2014/09/25 16:55] (current) |
||
---|---|---|---|
Line 2: | Line 2: | ||
A core event is a way for an addon to interact with the base software to change or add something, without needing to make any changes to the base code at all. | A core event is a way for an addon to interact with the base software to change or add something, without needing to make any changes to the base code at all. | ||
+ | |||
+ | Note that core events are synonymous with //software hooks// with respect to the Geo software((All Core Events are software hooks, but not all software hooks are core events. | ||
===== How it Works ===== | ===== How it Works ===== | ||
- | Core events use [[http:// | + | Core events use [[http:// |
- | An addon will be **automatically subscribed** to a core event, if 2 things happen: | + | An addon will be **automatically subscribed** to a core event, if 3 things happen: |
* in **info.php**, | * in **info.php**, | ||
- | * in the util.php file, the addon' | + | * in the util.php file, the addon' |
+ | * in the admin panel, at [[admin_menu/ | ||
In the base code, to //trigger a core event//, it will look something like this: | In the base code, to //trigger a core event//, it will look something like this: | ||
Line 18: | Line 21: | ||
**Breaking that call down:** | **Breaking that call down:** | ||
- | * trigger**Display**: | + | * trigger**Display**: |
* **event_name**: | * **event_name**: | ||
Line 35: | Line 38: | ||
| Notification | | Notification | ||
| Filter | | Filter | ||
- | | Overload | + | | Overload |
| Return a String | | Return a String | ||
| Return an Array | geoAddon:: | | Return an Array | geoAddon:: | ||
Line 53: | Line 56: | ||
A lot of the filter events are used to filter the results of a particular function, in those cases the name of the event is usually **filter_[CLASS NAME]_[FUNCTION NAME]**. | A lot of the filter events are used to filter the results of a particular function, in those cases the name of the event is usually **filter_[CLASS NAME]_[FUNCTION NAME]**. | ||
+ | |||
+ | There is a special case where what is being filtered is another data type (like an array), this special case behavior was added in 4.1.0. | ||
==== overload ==== | ==== overload ==== | ||
Line 78: | Line 83: | ||
These core events are to deal with the user session or session data. In all events so far, it is done in addition to, not instead of, the built in stuff. | These core events are to deal with the user session or session data. In all events so far, it is done in addition to, not instead of, the built in stuff. | ||
- | These are what the Bridge addon uses to do it' | + | These are what the Bridge addon uses to do its thing for syncing up login/ |
==== user ==== | ==== user ==== | ||
Line 88: | Line 93: | ||
==== errorhandle ==== | ==== errorhandle ==== | ||
- | This is a special case, this is the name of a core event that is it' | + | This is a special case, this is the name of a core event that is its own category. |
In the software, we use trigger_error() as a debugging message tool, the message syntax will match: | In the software, we use trigger_error() as a debugging message tool, the message syntax will match: | ||
Line 100: | Line 105: | ||
==== app_bottom ==== | ==== app_bottom ==== | ||
- | This is another core event that is it' | + | This is another core event that is its own category. |