Hooks and Filters of the Application
The list presented in this section contains descriptions of core application hooks.
Modules
- 
{module name}.init- a hook called after module initialization- 
Module $object- module object
 
- 
- 
cron.settings.module.{module name}- filter for the list of module cron tasks- 
array $tasks- list of module tasks
- 
Module $object- module object
 
- 
- 
sendmail.templates.module.{module name}- filter for the list of module email templates- 
array $templates- list of module templates
- 
Module $object- module object
 
- 
- 
site.settings.system.extra.{module name}- filter for the list of module system settings- 
array $settings- additional system settings
- 
Module $object- module object
 
- 
- 
publicator.settings.{module name}- filter for the settings of thePublicatorcomponent initialized in the module- 
array $settings- component settings
- 
\bff\db\Publicator $object- component object
 
- 
- 
locale.tables.{module name}- filter for the list of localizable tables and fields of the module- 
array $list- list
- 
Model $object- module model object
 
- 
Plugins
- 
plugins.init.{plugin name}- a hook called after plugin initialization, before calling thestartmethod- 
Plugin $object- plugin object
 
- 
- 
plugins.start.{plugin name}- a hook called after plugin start- 
Plugin $object- plugin object
 
- 
- 
cron.settings.plugin.{plugin name}- filter for the list of plugin cron tasks- 
array $tasks- list of plugin tasks
- 
Plugin $object- plugin object
 
- 
- 
sendmail.templates.plugin.{plugin name}- filter for the list of plugin email templates- 
array $templates- list of plugin templates
- 
Plugin $object- plugin object
 
- 
Templates
- 
view.module.{module name}.{template name}- filter for post-processing module PHP templates- 
string $content- generated HTML template
- 
array $data- data passed to the template
- 
array $extra:'filePath'- path to the included file,'fileName'- file name with extension,'relPath'- relative path,'theme'- whether the theme file is included
 
- 
- 
view.module.{module name}.{template name}.data- hook for preprocessing module PHP template data- 
array $view:'data'- data passed by reference,'filePath'- path to the included file,'fileName'- file name with extension,'relPath'- relative path,'theme'- whether the theme file is included
 
- 
- 
view.plugin.{plugin name}.{template name}- filter for post-processing plugin PHP templates- 
string $content- generated HTML template
- 
array $data- data passed to the template
- 
array $extra:'filePath'- path to the included file,'fileName'- file name with extension,'relPath'- relative path,'theme'- whether the theme file is included
 
- 
- 
view.plugin.{plugin name}.{template name}.data- hook for preprocessing plugin PHP template data- 
array $view:'data'- data passed by reference,'filePath'- path to the included file,'theme'- whether the theme file is included
 
- 
- 
view.tpl.{template name}- filter for post-processing PHP templates in the /tpl/ directory- 
string $content- generated HTML template
- 
array $data- data passed to the template
- 
array $extra:'filePath'- path to the included file,'fileName'- file name with extension,'relPath'- relative path,'theme'- whether the theme file is included
 
- 
- 
view.tpl.{template name}.data- hook for preprocessing data of PHP templates in the /tpl/ directory- 
array $view:'data'- data passed by reference,'filePath'- path to the included file,'fileName'- file name with extension,'relPath'- relative path,'theme'- whether the theme file is included
 
- 
Routing
- 
routes- filter for the project routes list- 
array $list- list of routes
- 
array $options- additional options
 
- 
- 
{module name}.routes- filter for the list of module routes- 
array $list- list of routes
- 
array $options- additional options
 
- 
- 
{module name}.url- filter for generating module links, implemented in theurl()static method of the module- 
string $url- generated URL of the link
- 
array $data- link parameters:key- key,opts- additional parameters,dynamic- dynamic link,base- base URL
 
- 
Admin Panel
- 
admin.menu.tabs- filter for the list that determines the order of main menu sections- 
array $tabs- list of menu item names
 
- 
- 
admin.menu.header.counters- filter for the list of header items with counters- 
array $list- list
 
- 
- 
admin.menu.header.user- filter for the list of menu items in the user dropdown in the top right corner- 
array $list- list
 
- 
- 
admin.menu.build- hook called after the completion of building the admin panel menu list- 
Menu $object- menu object
 
- 
JavaScript
- 
js.extra- hook for inserting additional frontend JavaScript files
- 
admin.js.extra- hook for inserting additional JavaScript files in the admin panel
- 
js.includes- filter for the list of included JavaScript files- 
array $list- list of files
 
- 
- 
admin.js.includes- filter for the list of included JavaScript files in the admin panel- 
array $list- list of files
 
- 
- 
js.includes.core- filter for the list of core JavaScript libraries- 
array $list- list of settings
 
- 
- 
js.app.lang- filter for the list of localization phrases passed to theappJavaScript object (frontend)- 
array $list- list of phrases
 
- 
CSS
- 
css.extra- hook for inserting additional frontend CSS files
- 
admin.css.extra- hook for inserting additional CSS files in the admin panel
- 
css.includes- filter for the list of included CSS files- 
array $list- list of files
 
- 
- 
admin.css.includes- filter for the list of included CSS files in the admin panel- 
array $list- list of files
 
- 
Payment Systems
- 
bills.pay.systems.data- filter for the list of payment system data used in the core- 
array $list- list of data
 
- 
- 
bills.pay.systems.user- filter for the list of available payment methods displayed to the user- 
array $list- list of payment systems
- 
array $extra- additional data: balanceUse - whether payment from balance is available
 
- 
- 
bills.pay.submit- hook for handling the submit event of the account top-up form- 
float $amount- amount specified by the user
- 
string $paySystem- payment system key
- 
array $pay- amount to pay: [amount => amount, currency => currency ID]
 
- 
- 
bills.pay.form- filter for the account payment form sent to the payment system provider- 
string $form- HTML form
- 
int $paySystem- payment system ID
- 
array $data- additional invoice data
 
- 
- 
bills.pay.process- hook for handling the request from the payment system- 
string $paySystem- key of the payment system performing the request or the method name
 
- 
- 
bills.pay.success- hook for handling the successful payment page
- 
bills.pay.fail- hook for handling the payment error page
- 
bills.pay.result- hook for handling the result method (required for some payment systems)
- 
bills.status.list- filter for the list of account statuses- 
array $list- list of available statuses
 
- 
Email Sending
- 
mail.send.template- filter for email template data before sending- 
array $data- template data:- 
'subject'- email subject,
- 
'body'- email body,
- 
'is_html'- whether the email template is HTML,
- 
'wrapper_id'- ID of the "Mail / Email Templates" template,
- 
'to'- recipient's email,
- 
'from'- sender's email (default value is the system settingmail.noreply),
- 
'fromName'- sender's name (default value is the system settingmail.fromname),
- 
'vars'- data to be substituted into the template{macro} => 'value',
- 
'lang'- key of the template language (default language)
 
- 
- 
string $templateName- template name
 
- 
- 
mail.sended- hook triggered immediately after sending an email- 
array $data- sending data:'to','subject','body','from','fromName','result'- sending result,'time'- sending time
- 
Mail $object- mail component object
 
- 
SEO
- 
seo.meta.render- filter for the list of meta data displayed in the<head>block- 
array $view- list of meta data
 
- 
- 
seo.meta.text.prepare- filter for substituting SEO macros in text- 
string|array $text- SEO text or list of texts
- 
array $data- additional parameters:'replace'- link to the replacement listfrom => to,'macrosData'- link to the data to be substituted instead of macros
 
- 
- 
seo.templates.{module/plugin name}- filter for SEO template settings of a module/plugin- 
array $templates- list of template settings
- 
Module|Plugin $object- module/plugin object
 
- 
- 
site.cron.sitemapXML- filter for the data passed to Sitemap.xml- 
array $data- data in the format of a callback list
 
- 
Core Components
- 
input.email.temporary- filter for additional checking of the existence of an email address in the forbidden (temporary) address list (isEmailTemporary)- 
bool $isTemporary- marked by the system as temporary (true) or not (false)
- 
string $email- email address
 
- 
- 
input.phone.validate- filter for additional validation of a phone number (isPhoneNumber)- 
string $phoneNumber- phone number
 
- 
- 
input.text.validate- filter for additional validation of text of typeTYPE_TEXT- 
string $text- text
 
- 
- 
input.searchstring.validate- filter for additional validation of a search string (cleanSearchString)- 
string $string- search string
 
- 
- 
utils.func.translit- filter for additional transliteration of text- 
string $text- text to be transliterated
 
- 
- 
utils.func.translit.convert- filter for the list of transliterated characters- 
array $list- list'character'=>'transliteration'
 
- 
- 
utils.videoparser.providers.list- filter for the list of supported video link providers- 
array $list- list of provider settings
 
- 
Additional
- 
app.init- hook called after application initialization
- 
dev.writable.check.list- filter for the list of directories and files requiring write permissions check- 
array $list- list
 
- 
- 
geo.ip.location.region- filter providing the ability to connect another IP-based region detection provider- 
bool|array $data- region data orfalse
- 
string $ipAddress- user's IP address
- 
string $provider- provider key specified in the system settinggeo.ip.location.provider
 
- 
- 
errors.http.error- hook for HTTP error pages (404, ...)- 
int $errorCode- error key: 404, ...
- 
array $data- error data:title- title,message- description
- 
string $template- default template name
 
-