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:05] 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 85: | Line 90: | ||
The applicable user info is passed in, and the return value is ignored. | The applicable user info is passed in, and the return value is ignored. | ||
+ | |||
+ | ==== errorhandle ==== | ||
+ | |||
+ | 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: | ||
+ | |||
+ | [ERROR|DEBUG] [TAG1[ TAG2...]]: Message | ||
+ | |||
+ | It can have any number of " | ||
+ | |||
+ | There are 2 addons included with the software that make use of this, one displays them on the page based on what " | ||
+ | |||
+ | ==== app_bottom ==== | ||
+ | |||
+ | This is another core event that is its own category. | ||