Creating an event handler in Blesta consists of merely filling in a stubbed callback method, or returning an array of callbacks from a plugin's getEvents() method. Blesta offers a number of events that are automatically triggered when needed. The default handlers for these events may be found in the /installdir/components/events/default/ directory. You can paste your event handler code directly into any of the default handler methods, or more preferably, create a plugin to handle the event.

Events

Any plugin can register an event handler. To see how, check out the Plugin Events section of this manual.

EventTriggered WhenDefault Event HandlerParametersReturnsSince
Appcontroller.preActionA URI is requestedEventsAppControllerCallback::preAction()voidvoid3.0
Appcontroller.structureA URI is requested without AJAXEventsAppControllerCallback::structure()
  • controller - The controller being requested
  • action - The action being requested
  • portal - The portal in use ('admin' or 'client')

array

Key/value pairs to be set as variables in the structure view. Special keys include:

  • head - An array of markup to set in the <head> tag
  • body_start - An array of markup to set just after the <body> tag
  • body_end - An array of markup to set just before the </body> tag
3.3
Clients.createA client is createdEventsClientsCallback::create()
  • client - An object representing the client that was created.
void3.1
Emails.sendAn email template is sentEventsEmailsCallback::send()
  • action - The action that specifies the email group being sent
  • options - An array of options passed to Emails::send(), which may include:
    • to_client_id - The ID of the client the message was sent to
    • from_staff_id - The ID of the staff member the message was sent from
    • from - The from address override
    • from_name - The from name override
    • reply_to - The reply to address override
  • tags - A key/value pair of replacement tags for the email.

array

Key/value pairs to merge with tags.

3.1
Emails.sendCustomA non-template based email is sentEventsEmailsCallback::sendCustom()
  • options - An array of options passed to Emails::send(), which may include:
    • to_client_id - The ID of the client the message was sent to
    • from_staff_id - The ID of the staff member the message was sent from
    • reply_to - The reply to address override
  • tags - A key/value pair of replacement tags for the email.

array

Key/value pairs to merge with tags.

3.1
Invoices.addAn invoice is createdEventsInvoicesCallback::add()
  • invoice_id - The ID of the invoice created
void3.1
Invoices.editAn invoice is updatedEventsInvoicesCallback::edit()
  • invoice_id - The ID of the invoice updated
void3.1
Invoices.setClosedAn invoice is closedEventsInvoicesCallback::setClosed()
  • invoice_id - The ID of the invoice closed
void3.1
Services.addA service is addedEventsServicesCallback::add()
  • service_id - The ID of the service added
  • vars - An array of input data which may include:
    • parent_service_id - The ID of the service this service is a child of
    • package_group_id - The ID of the package group this service was added from
    • pricing_id - The package pricing schedule ID for this service
    • client_id - The ID of the client this service belongs to
    • module_row - The module row to add the service under
    • coupon_id - The ID of the coupon used for this service
    • qty - The quanity consumed by this service
    • override_price - The price to set for this service, overriding the package pricing value for the selected term
    • override_currency - The currency to set for this service, overriding the package pricing value for the selected term
    • status - The status of this service
    • date_added - The date this service is added
    • date_renews - The date the service renews
    • date_last_renewed - The date the service last renewed
    • date_suspended - The date the service was last suspended
    • date_canceled - The date the service was last canceled
    • use_module - Whether or not to use the module for this request
    • prorate - Whether or not to prorate price changes
    • configoptions - An array of key/value pairs of package options where the key is the package option ID and the value is the option value
    • (any other service field data passed to the module)
void3.4
Services.editA service is editedEventsServicesCallback::edit()
  • service_id - The ID of the service edited
  • vars - An array of input data which may include:
    • parent_service_id - The ID of the service this service is a child of
    • package_group_id - The ID of the package group this service was added from
    • pricing_id - The package pricing schedule ID for this service
    • client_id - The ID of the client this service belongs to
    • module_row - The module row to add the service under
    • coupon_id - The ID of the coupon used for this service
    • qty - The quanity consumed by this service
    • override_price - The price to set for this service, overriding the package pricing value for the selected term
    • override_currency - The currency to set for this service, overriding the package pricing value for the selected term
    • status - The status of this service
    • date_added - The date this service is added
    • date_renews - The date the service renews
    • date_last_renewed - The date the service last renewed
    • date_suspended - The date the service was last suspended
    • date_canceled - The date the service was last canceled
    • use_module - Whether or not to use the module for this request
    • prorate - Whether or not to prorate price changes
    • configoptions - An array of key/value pairs of package options where the key is the package option ID and the value is the option value
    • (any other service field data passed to the module)
void3.4
Services.cancelA service is scheduled to be canceled, or is canceledEventsServicesCallback::cancel()
  • service_id - The ID of the service canceled
  • vars - An array of input data which may include:
    • date_canceled - The date this service is scheduled to be canceled
    • status - The status of the service (i.e. 'canceled')
    • use_module - Whether or not to use the module for this request
void3.5
Transactions.addA transaction is createdEventsTransactionsCallback::add()
  • transaction_id - The ID of the transaction created
void3.1
Transactions.editA transaction is updatedEventsTransactionsCallback::edit()
  • transaction_id - The ID of the transaction updated
void3.1
Users.loginA user logs inEventsUsersCallback::login()
  • user_id - The ID of the user that successfully logged in
void3.1
Users.logoutA user logs outEventsUsersCallback::logout()
  • user_id - The ID of the user attempting to log out
void3.1
Navigation.getSearchOptionsStaff search options are displayedEventsNavigationCallback::getSearchOptions()
  • options - A key/value pair of search options where each key is the URI to redirect search queries to and the value is the name of the search option. When implemented, the event handler should modify the options parameter using EventObject::setParams().
  • base_uri - The base URI for the currently logged in user.
void3.0

Working with Events

Each event handler that is invoked when the event is triggered is passed an EventObject. You can modify the parameters or return value of this object and the modified event will be passed along to each subsequent handler, and finally returned to the trigger.

To fetch parameters from the EventObject invoke the getParams() method. Similarly, to set parameters use the setParams() method.

To set the return value from the EventObject invoke the setReturnVal() method. Similarly, to fetch the return value use the getReturnVal() method.

The ID of the coupon used for this service