Skip to content

4SEF hooks

Below is a list of all 4SEF hooks which allows you to modify or extend its behavior programmatically.

Summary

4SEF currently offers 12 actions in 4 groups.
4SEF currently offers 26 filters in 10 groups.

Actions

4SEF currently offers 12 actions in 4 groups.

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

4SEF currently offers 26 filters in 10 groups.

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