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 20:52] 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 the core event' | + | An addon will be **automatically subscribed** to a core event, if 3 things happen: |
+ | * in **info.php**, | ||
+ | | ||
+ | * 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 16: | Line 21: | ||
**Breaking that call down:** | **Breaking that call down:** | ||
- | * trigger**Display**: | + | * trigger**Display**: |
* **event_name**: | * **event_name**: | ||
Line 33: | Line 38: | ||
| Notification | | Notification | ||
| Filter | | Filter | ||
- | | Overload | + | | Overload |
| Return a String | | Return a String | ||
| Return an Array | geoAddon:: | | Return an Array | geoAddon:: | ||
Line 51: | 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 ==== | ||
- | Used to take over a particular task and skip the built-in functionality that would normally be done by the base code. | + | Used to take over a particular task and skip the built-in functionality that would normally be done by the base code. Events will be prepended with **overload_**, |
==== notify ==== | ==== notify ==== | ||
- | This event type is to notify the addon of a certain //event//, to allow the addon to do things at a specific point. | + | This event type is to notify the addon of a certain //event//, to allow the addon to do things at a specific point. |
==== email ==== | ==== email ==== | ||
Line 70: | Line 77: | ||
==== auth ==== | ==== auth ==== | ||
- | Authorization core events. | + | Authorization core events. |
==== session ==== | ==== session ==== | ||
- | 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 ==== | ||
- | These are for stuff dealing with things happening to a user, like registering a new user, editing a user's info, etc. This is in addition to, not instead of. | + | These are for stuff dealing with things happening to a user, like registering a new user, editing a user's info, etc. This is in addition to, not instead of. Events will be prepended with **user_**. |
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. | ||