4SEF hooks
Below is a list of all 4SEF hooks which allows you to modify or extend its behavior programmatically.
Summary
Actions
Group: Content
forsef_content_prepared
Content action
Action to let plugins obtain the finalized content for the current request
@param string $context The context of the content being passed to the plugin. @param mixed $row An object with a "text" property @param mixed $params Additional parameters. See {@see PlgContentContent()}. @param integer $page Optional page number. Unused. Defaults to zero.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 257
Group: Events
forsef_onAfterDispatch
Events action
Hook to run the registered onAfterDispatch handlers.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 296
forsef_onAfterDispatchComplete
Events action
Hook to run the registered onAfterDispatchComplete handlers.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 329
forsef_onAfterInitialise
Events action
Hook to run the registered onAfterInitialise handlers.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 111
forsef_onAfterRender
Events action
Hook to run the registered onAfterRoute handlers.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 420
forsef_onAfterRenderComplete
Events action
Hook to run the registered onAfterRoute handlers.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 476
forsef_onAfterRespond
Events action
Hook to run the registered onAfterRespond handlers.
Warning: body may be gzipped at this time.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 521
forsef_onAfterRoute
Events action
Hook to run the registered onAfterRoute handlers.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 186
forsef_onBeforeCompileHead
Events action
Hook to run the registered onBeforeCompileHead handlers.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 393
forsef_onBeforeRender
Events action
Hook to run the registered onBeforeRender handlers.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 356
Group: Plugins
forsef_on_load_plugins
Plugins action
Run an action allowing 3rd-party plugins providers to load
their plugins.
@param \Exception $error
@return void
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/helper/plugins.php
@line 83
Group: Sef
forsef_url_customized
Sef action
Run hook after a URL has been customized to allow 3rd-party actions.
@param array $urlPair @param string $originalBasePath @param array $customizedSefs @param string $originalSef @param string $extraPathLeadingSlash @param boolean $customizeDuplicates
@return void
@since 1.0.0 @since 4.6.0 Added $originalSef parameter @since 4.8.0 Added $customizeDuplicates parameter
in /plugins/system/forsef/vendor/weeblr/forsef/data/urlpair.php
@line 604
Filters
Group: Admin
forsef_admin_ui_constants
Admin filter
Filter custom CSS for admin.
@param array $uiConstants List of constants related to the specific platform visual display.
@return array
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/view/admin.php
@line 71
forsef_categories_list
Admin filter
Filter the list of categories on the site, for user display in the admin.
@param array $categories List of objects each describing a category.
@return array
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/api/controller/categories.php
@line 175
forsef_custom_admin_css
Admin filter
Filter custom CSS for admin.
@param string $defaultStyles The raw css to be inserted as style tag in the page.
@return string
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/view/admin.php
@line 90
forsef_custom_admin_js
Admin filter
Filter custom JS for admin.
@param string $js The javascript to be inserted into the page with a script tag.
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/view/admin.php
@line 199
forsef_extensions_list
Admin filter
Filter the list of extensions installed on the site, for user display in the admin.
@param array $components List of objects each describing an extension.
@return array
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/api/controller/extensions.php
@line 92
Group: Build
forsef_before_store_url
Build filter
Filter the built URL pair (sef + nonSef) object just before it's stored to the database. Pagination and suffix has been attached
but dynamic variables are not present as they are not stored to DB. This currently includes:
- /feed/rss and /feed/atom suffixes
- print suffix
@param Data\Urlpair $urlPair @param Uri\Uri $uriToBuild @param Uri\Uri $platformUri
@return void
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/builder.php
@line 368
forsef_feeds_safe_mode
Build filter
Filters whether RSS feeds URLS should be built in a safer
way, with format and type passed as query vars instead of
part of the path.
This may be required in some cases, for instance when manually
customizing a category URL to append a prefix to it.
@param bool $safeMode
@return bool
@since 4.6.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/builder.php
@line 611
forsef_non_sef_vars_to_reappend
Build filter
Filter the list of non-SEF vars that should be re-appended to the built URL.
@param array $platformQuery @param URI\Uri $uriToBuild @param URI\Uri $platformUri
@return string
@since 1.2.4
in /plugins/system/forsef/vendor/weeblr/forsef/model/urlbuilder.php
@line 177
forsef_normalize_non_sef
Build filter
Filters the list of non-sef variables associated with a SEF URL. Some global and plugin-based
modifications to the variables list has already been done, but the full set of original variables
are provided as a reference, as some may need to be put back in under some circumstances.
@param array $vars @param array $originalVars
@return void
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/helper/nonsef.php
@line 206
forsef_should_leave_non_sef
Build filter
Filters whether the URL being built should be left non-sef.
@param bool $shouldLeaveNonSef @param Uri $uri
@return bool
@since 1.0.6
in /plugins/system/forsef/vendor/weeblr/forsef/model/builder.php
@line 750
Group: Bundle
forsef_admin_js_bundle_url
Bundle filter
Filter main JS bundle URL.
@param string $url The url of the js bundle to be linked from the page.
@return string
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/view/admin.php
@line 108
forsef_custom_admin_js
Bundle filter
Filter list of css files to be inserted after main bundle.
Each record added to the lsit must be:
[
'url' => '', mandatory
'options' => [], | []
'attr' => [], | []
]
@param array $cssDefs An array of array[url, options, attr], each defining a link to a css file.
@return string
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/view/admin.php
@line 333
Group: Config
forsef_config
Config filter
Filter configuration right after creating it.
@param array $config @param string $scope
@return void
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/config.php
@line 83
forsef_config_loaded
Config filter
Filter configuration right after loading it from the database.
@param array $config @param string $scope
@return void
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/config.php
@line 158
Group: Content
forsef_onContentPrepare
Content filter
Hook to run the registered onContentPrepare handlers.
@param bool $modified Whether the content was modified. @param string $context The context of the content being passed to the plugin. @param mixed & $row An object with a "text" property @param mixed & $params Additional parameters. See {@see PlgContentContent()}. @param integer $page Optional page number. Unused. Defaults to zero.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 223
forsef_pagination_chrome_path
Content filter
Filter path to pagination chromePath file.
@param string $rules Path to an (optional) pagination chrome file.
@return string
@since 1.0.3
in /plugins/system/forsef/platform/overrides/pagination/j4/Pagination.php
@line 350
Group: Events
forsef_onPrivacyCollectAdminCapabilities
Events filter
Hook to run the registered onAfterInitialise handlers.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 133
Group: Import
forsef_sh404sef_import_before_store_config
Import filter
Filter the result of importing sh404SEF configuration, before it is stored to 4SEF database.
Returning an empty value will prevent that config object to be saved at all.
@param Config $configObject @param string $configName
@return Config
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/extensions/sh404sef.php
@line 180
forsef_sh404sef_import_before_store_url
Import filter
Filter the result of importing an sh404SEF URL pair, before it is stored to 4SEF database.
@param Data\Urlpair $urlPair @param array $source
@return Data\Urlpair
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/extensions/sh404sef.php
@line 682
Group: Output
forsef_onAfterRenderComplete_body
Output filter
Filter the body of the CMS response at onAfterRender.
@param string $body Body of the current request.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 489
forsef_onAfterRender_body
Output filter
Filter the body of the CMS response at onAfterRender.
@param string $body Body of the current request.
@since 1.0.0
in /plugins/system/forsef/forsef.php
@line 433
Group: Parse
forsef_parsed_vars
Parse filter
Filter parsed variables for the incoming request - or any subsequent call to
Joomla router parsing function.
@param array $vars @param Uri\Uri $uri
@return array
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/parser.php
@line 638
forsef_redirect_to_correct_case
Parse filter
Filter whether 4SEF should redirect a request for a URL with a different letter case to
the main one created and recorded in the SEF URLs list.
For instance, if /blog/some-PAGE is requested, and /blog/some-page is
the proper URL, 4SEF will redirect visits to /blog/some-PAGE to /blog/some-page
@param bool $redirectToCorrectCaseEnabled @param string $requestedSef @param string $storedSef
@return bool
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/parser.php
@line 398
forsef_redirect_to_correct_trailing_slash
Parse filter
Filter whether 4SEF should redirect a request for a URL non-existing URL
to the same URL with or without a trailing slash if there exists one.
For instance, if /blog/some-page is requested, and does not exists but /blog/some-page/ does exist,
4SEF will redirect visits to /blog/some-page to /blog/some-page/
@param bool $redirectToCorrectSlashEnabled @param string $requestedSef
@return bool
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/parser.php
@line 451
forsef_request_path_to_parse
Parse filter
Filter the path 4SEF will try to parse, obtained from the original current URI object.
@param string $originalPath
@return string
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/model/parser.php
@line 144
Group: Request
forsef_request_info
Request filter
Filter the list of dynamic variables used in content replacement.
@param array $expandedVariables Array of variable names/variable values to use in expansions.
@return array
@since 1.0.0
in /plugins/system/forsef/vendor/weeblr/forsef/data/requestinfo.php
@line 155