4SEO hooks
You can modify or extend 4SEO behavior programmatically by using one or more of the hooks listed below. Hooks let you modify internal PHP structures or results computed by 4SEO to better accomodate your website specific requirements.
They are events that are triggered at various moments by 4SEO, providing code you write with internal information and possibly letting you modify this information.
Hooks are not altered when 4SEO is updated
All the customization you do using hooks will survive 4SEO updates. The hooks definition themselves will not change or be removed, unless the corresponding feature is modified or removed from 4SEO of course.
When using hooks with 4SEO, the following apply:
- we cannot provide any form of support to the customization you make. You are on your own and the below documentation is the extent of information we'll provide to you.
- you'll need suitable programming knowledge and understanding of Joomla internals to be able to write your own hooks handler
- you mayb have to study 4SEO code to learn if what you want to do is possible and how to do it. Again, we won't help your there, at least as part of regular support.
Usage
If you added any hook handler, make sure to absolutely always mention that whenever you open a support ticket. Your custom hooks can alter the way 4SEO works, and may have consequences. We need to be aware of the existence of your hooks at all times.
Types
There are 2 types of hooks: filters
and actions
. Both are events that are triggered at different moment and to which you can respond.
The difference between them is:
- filters: you receive some data, and you can return modified data. 4SEO will subsequently use your modified data
- action: you receive some data, but you cannot modify it. Or rather, you can modify it but 4SEO will not use the result anyway
How to
As hooks are basically events, you must register your custom handler with 4SEO for any hook you want to use. 4SEO will then call your handler when the hook is run.
The most convenient way to register your hooks handler and include your custom code is to use 4SEO functions file. The function file is unique and lives at:
/libraries/weeblr/forseo_functions.php
Create the file if it does not exist yet. You can put all your custom code in that file, or just use it to interface with 4SEO and include more PHP code from wherever you want.
The 4SEO function file must always start with:
<?php
/**
* 4SEO hooks file
*
* You can use 2 variables to access 4SEO content:
*
* $factory: access variables
* $hooks: add handlers
*/
// no direct access
defined('WBLIB_EXEC') || die;
If this preamble is missing, just copy/paste it at the top of the file.
After that, you can add your hook handler and your custom code. Here is a typical example, which lets us customize the OpenGraph metadata 4SEO outputs on a page:
$hooks->add(
'forseo_ogp_data',
function ($ogpData, $requestInfo) {
$newImageData = [
'og:image' => 'https://www.example.com/images/og-image.jpg',
'og:image:width' => 1253,
'og:image:height' => 752,
];
$ogpData['og:image'][] = $newImageData;
return $ogpData;
}
);
The $hooks
variable shown in the example is always available to you inside the functions files, 4SEO creates it for you.
Inside the functions file, you are inside of Joomla, meaning you can use Joomla API as you would in other contexts. You can for instance use the Joomla Factory
class to access the application object. Make sure to add the proper namespace use
statements if you do so.
API
Summary
Actions
Group: Content
forseo_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/forseo/forseo.php
@line 434
Group: Crawl
forseo_on_crawl_complete
Crawl action
Run actions when a full crawl has just completed.
@param array $crawl
@return void
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/crawler.php
@line 621
Group: Error
forseo_on_404_error
Error action
Run hook with the 404 error to allow actions by other parties.
@param \Exception $error
@return void
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/error.php
@line 150
forseo_on_error
Error action
Run hook with the error to allow actions by other parties.
@param \Exception $error
@return void
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/error.php
@line 174
Group: Events
forseo_onAfterDispatch
Events action
Hook to run the registered onAfterDispatch handlers.
@since 1.0.0
in /plugins/system/forseo/forseo.php
@line 473
forseo_onAfterDispatchComplete
Events action
Hook to run the registered onAfterDispatchComplete handlers.
@since 1.0.0
in /plugins/system/forseo/forseo.php
@line 506
forseo_onAfterInitialise
Events action
Hook to run the registered onAfterInitialise handlers.
@since 1.0.0
in /plugins/system/forseo/forseo.php
@line 161
forseo_onAfterRender
Events action
Hook to run the registered onAfterRoute handlers.
@since 1.0.0
in /plugins/system/forseo/forseo.php
@line 640
forseo_onAfterRenderComplete
Events action
Hook to run the registered onAfterRoute handlers.
@since 1.0.0
in /plugins/system/forseo/forseo.php
@line 696
forseo_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/forseo/forseo.php
@line 741
forseo_onAfterRoute
Events action
Hook to run the registered onAfterRoute handlers.
@since 1.0.0
in /plugins/system/forseo/forseo.php
@line 306
forseo_onBeforeCompileHead
Events action
Hook to run the registered onBeforeCompileHead handlers.
@since 1.0.0
in /plugins/system/forseo/forseo.php
@line 580
forseo_onBeforeCompileHeadComplete
Events action
Hook to run the registered onBeforeCompileHeadComplete handlers.
@since 1.5.1
in /plugins/system/forseo/forseo.php
@line 613
forseo_onBeforeRender
Events action
Hook to run the registered onBeforeRender handlers.
@since 1.0.0
in /plugins/system/forseo/forseo.php
@line 533
Group: Integrations
forseo_integrations_service_disconnected
Integrations action
Trigger post-disconnection actions per service.
@param string $service
@return bool
@since 3.0.3
in /plugins/system/forseo/vendor/weeblr/forseo/model/oauth.php
@line 118
Filters
Group: Admin
forseo_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/forseo/vendor/weeblr/forseo/view/admin.php
@line 72
forseo_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/forseo/vendor/weeblr/forseo/api/controller/categories.php
@line 175
forseo_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/forseo/vendor/weeblr/forseo/view/admin.php
@line 91
forseo_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/forseo/vendor/weeblr/forseo/view/admin.php
@line 269
forseo_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/forseo/vendor/weeblr/forseo/api/controller/extensions.php
@line 155
forseo_filter_extensions_list
Admin filter
Filter the list of extensions that should be filtered out of components lists displayed to users.
@param array $components Names of components using com_xxx format.
@return array
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/api/controller/extensions.php
@line 130
Group: Analytics
forseo_analytics_snippets
Analytics filter
Filter the raw data used when outputting analytics snippet, for each configured
provider on the current page.
@param array $data Raw data to be used in snippets, per provider.
@return array
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/injector/analytics.php
@line 108
Group: Bundle
forseo_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/forseo/vendor/weeblr/forseo/view/admin.php
@line 111
forseo_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/forseo/vendor/weeblr/forseo/view/admin.php
@line 414
Group: Content
forseo_current_request_category
Content filter
Filter the content category for current request belongs to.
@param object $category The category object as already established by wbLib.
@return object
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/ruleslegacy.php
@line 470
forseo_expandable_variables
Content filter
Filter the list of dynamic variables used in content replacement.
@param array $expandedVariables Array of variable names/variable values to use in expansions. @param Data\page $pageData Data object with current request details.
@return array
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/injector/variables.php
@line 112
forseo_filter_clean_tags_after_meta_rule_exec
Content filter
Filter whether {4seo_*} tags should be removed from the result of the
execution of metadata rules. If left to false, the default, this allows using user-defined tags
in meta rules output, which can then be replaced with a replacer rule.
If set to true, this ensures no such tags is left in the final result.
@param bool $cleanTagsAfterMetaRuleExec
@return bool
@since 4.4.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/rules.php
@line 271
forseo_filter_run_replacers
Content filter
Filter whether the content replacers should run on this page.
@param bool $shouldRunReplacers @param string $location content | component | anywhere | modules @param Input $input
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/rules.php
@line 1202
forseo_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/forseo/forseo.php
@line 400
forseo_run_on_content_prepare_last
Content filter
Decide whether to run the onContentPrepareComplete handler
after all content plugins handlers have been run. Only has
any effect on Joomla 4. Joomla 3 does not have the required
priority system.
@param bool $runLast
@since 4.5.0
in /plugins/system/forseo/forseo.php
@line 337
Group: Crawler
forseo_collect_zero_status_urls
Crawler filter
Sometimes we get a 0 status, as some error occured somewhere in the process,
and we have no been able to identify where and why. This causes apparently
valid URLs to be marked as errors, which is not good.
This filter allows disabling the storage of such pages as either error or links.
@param \bool $shouldCollectZeroStatusUrls
@return \bool
@since 5.1.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/crawler.php
@line 1243
forseo_crawler_plugins_to_disable
Crawler filter
Filter the list of plugins that should be disabled on crawler requests.
Full page cache plugins should be disabled as they prevent onContentPrepare
and similar events to be fired.
@param array $plugins List of plugins, grouped by plugin group.
@return array
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/platform.php
@line 101
Group: Cron
forseo_cron
Cron filter
Execute actions ran over cron. Each job can update the request response to reflect
success or otherwise.
type => image | cron
@param array $data API response data array: [[]data, int count, int total [,int status][,callable runAfterResponse]] @param array $options Some options:
@return Request
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/api/controller/cron.php
@line 136
forseo_delete_last_crawl_on_reset
Cron filter
Filter whether the last completed crawl data (namely the sitemap)
should be deleted when resetting analysis data.
Off by default, meaning any existing sitemap will keep being served
until the new analysis has completed.
@param bool $deleteLastCompletedCrawl
@return bool
@since 4.6.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/crawler.php
@line 254
forseo_disable_cron_pixel
Cron filter
Filter whether the cron pixel should be removed from current page.
@param bool $disableCronPixel
@return bool
@since 1.3.2
in /plugins/system/forseo/vendor/weeblr/forseo/controller/triggers.php
@line 117
Group: Customfields
forseo_cf_get_value_by_id
Customfields filter
Filter the value of a custom field for the current page request.
@param mixed $customFieldValue @param int $customFieldId Id of custom field in platform table @param string $fieldContext The context of the content being passed to the plugin. @param array $contentData The main page content array, to which the custom fields has been attached.
@return mixed
@since 2.1.1
in /plugins/system/forseo/vendor/weeblr/forseo/helper/customfields.php
@line 211
Group: Error
forseo_on_404_error_check_com_redirect
Error filter
Whether to check Joomla user-defined redirects on 404s. The check happens
before searching any applicable 4SEO error rule, so that we can have
error rules and also check redirects.
However, this does not work on J3 as the redirect plugin triggers a 404
if no redirect is found. So we disable com_redirect check on J3, with
this filter allowing user to enable it back if needed.
@param \bool $checkComRedirects
@return void
@since 4.5.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/error.php
@line 203
Group: Events
forseo_onPrivacyCollectAdminCapabilities
Events filter
Hook to run the registered onAfterInitialise handlers.
@since 1.0.0
in /plugins/system/forseo/forseo.php
@line 227
Group: Features
forseo_features_overrides
Features filter
Filter features overrides
@param array $featuresOverrides
@return array
@since 4.1.2
in /plugins/system/forseo/vendor/weeblr/forseo/view/admin.php
@line 132
Group: Frontend\collection
forseo_after_render_page_data
Frontend\collection filter
Filter the data collected at onAfterRender about the current request.
Setting the ignore field to true will cause the data gathering process to stop
and the page data will not be stored any further.
@param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pagedatacollector.php
@line 1241
forseo_after_route_page_data
Frontend\collection filter
Filter the data collected at onAfterRoute about the current request.
Setting the ignore field to true will cause the data gathering process to stop
and the page data will not be stored any further.
@param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pagedatacollector.php
@line 1223
forseo_clean_query_vars_to_strip
Frontend\collection filter
Removes common unwanted vars from a URL, before it's used.
@param array $link
@return array
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/linkscollector.php
@line 257
forseo_collected_images
Frontend\collection filter
Filter the list of images collected on the current page.
@param bool $collectedImages @param Data\Page $pageData
@return bool
@since 1.4.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/imagescollector.php
@line 203
forseo_extract_images
Frontend\collection filter
Filter to extract images from the current page.
Will be passed the current page DOMContent and an empty array of images.
Should return an array of images records to be used as is
(hence possibly empty) or null to indicate the handler does not handle the request.
An image is defined by an array:
$image = [
'url' => URL of the image, relative to root || FQDN if another site,
'title' => title attr,
'alt' => alt attr,
'el_width' => width attr of the HTML element, may be different from image intrinsic width,
'el_height' => height attr of the HTML element, may be different from image intrinsic height,
'data' => key/value array of all data-xxxx attributes.
]
@param array $extractedImages @param string $buffer @param \DOMDocument $dom @param \DOMNodeList $imgTags @param array $options @param Data\Page $pageData
@return null|array
@since 1.4.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/imagescollector.php
@line 157
forseo_image_extraction_src_data_attributes
Frontend\collection filter
Filter configuration right after creating it.
@param array $dataAttrToReadFrom
@return array
@since 5.2.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/imagescollector.php
@line 79
forseo_page_build_content_hash
Frontend\collection filter
Ask plugins to build a content hash when possible.
@param string $hash @param array $contentData @param null|Data\Page $pageData
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pagedatacollector.php
@line 309
forseo_should_check_robots_txt_before_collecting
Frontend\collection filter
Filter whether 4SEO should check robots.txt rules before crawling a page.
@param array $links @param array $originalLinks
@return array
@since 1.0.4
in /plugins/system/forseo/vendor/weeblr/forseo/helper/linkscollector.php
@line 197
forseo_should_collect_error
Frontend\collection filter
Filter whether data for the current error should be collected.
@parma \Exception $error
@param bool $shouldCollectPageData @param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pagedatacollector.php
@line 1027
forseo_should_collect_images
Frontend\collection filter
Filter whether images collection should happen on the current page.
@param bool $shouldCollectImages @param Data\Page $pageData
@return bool
@since 1.4.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/imagescollector.php
@line 255
forseo_should_collect_page_data
Frontend\collection filter
Filter whether data for the current page should be collected.
@param bool $shouldCollectPageData @param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pagedatacollector.php
@line 1192
forseo_should_collect_url
Frontend\collection filter
Filter whether a single URL should be added to the collected link table.
@param bool $shouldCollectUrl @param Data\Collected $collectedUrl
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/linkscollector.php
@line 323
forseo_should_collect_urls
Frontend\collection filter
Filter whether links collection should happen on the current page.
@param bool $shouldCollectUrls @param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/linkscollector.php
@line 202
forseo_should_collect_urls_found_on_page
Frontend\collection filter
Filter whether a single URL should be added to the collected link table.
Preliminary test based only on the raw URL.
We pass in a copy of the original list of links to filter so that plugins can
override links exclusion that may have been decided by other plugins before them.
@param array $links @param array $originalLinks
@return array
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/linkscollector.php
@line 166
Group: Frontend\error
forseo_error_page_max_similar_pages
Frontend\error filter
Filter the max number of similar pages candidates to be suggested on error pages.
@param int $maxSimilar
@return int
@since 1.5.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/similar.php
@line 218
forseo_error_page_ranked_candidates
Frontend\error filter
Filter the list of ranked similar pages candidates to be suggested on error pages.
@param array $ranked An ordered list of similar pages URLs. @param string $requestedUrl The URL requested which caused a 404.
@return array
@since 1.5.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/similar.php
@line 194
Group: Frontend\features
forseo_*
Frontend\features filter
Filter whether a specific feature, identified by a filter name, is allowed for this request.
@param bool $shouldRunFeature @param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 1321
forseo_disable_generator_tag
Frontend\features filter
Filter whether the 4SEO generator meta should be disabled.
@param bool $disableGeneratorTag
@return bool
@since 4.8.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/injector/meta.php
@line 81
forseo_ogp_data
Frontend\features filter
Filter the data array used to build the OGP meta tags.
@param array $ogpData Computed OpenGraph Data as a key/value array @param Requestinfo $requestInfo Instance of the current request details.
@return array
@since 4.7.1
in /plugins/system/forseo/vendor/weeblr/forseo/model/injector/ogp.php
@line 128
forseo_should_inject_ogp
Frontend\features filter
Filter whether OGP tags should be injected for this request.
@param bool $injectData @param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 761
forseo_should_inject_seo_data
Frontend\features filter
Filter whether SEO Data (Structured data, OGP tags, Twitter Cards) should be injected for this request.
@param bool $injectData @param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 739
forseo_should_inject_structured_data
Frontend\features filter
Filter whether structured data should be injected for this request.
@param bool $injectData @param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 674
forseo_should_inject_tcards
Frontend\features filter
Filter whether Twitter Cards tags should be injected for this request.
@param bool $injectData @param Data\Page $pageData
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 785
forseo_tcards_data
Frontend\features filter
Filter the data array used to build the Twitter Cards meta tags.
@param array $tcardsData Computed Twitter Cards Data as a key/value array @param Requestinfo $requestInfo Instance of the current request details.
@return array
@since 4.7.1
in /plugins/system/forseo/vendor/weeblr/forseo/model/injector/tcards.php
@line 95
Group: Frontend\meta
forseo_auto_build_description
Frontend\meta filter
Filter an automatically computed meta description for a piece of content.
@param string $autoDescription @param string $context An option string representing the context, the content type. @param string|Object $content Either a string or an object holding the content data. @param Data\Page $pageData Collected request information. @param Data\Meta $pageMeta Collected meta data about the request.
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 501
forseo_extract_page_images_from_content_data
Frontend\meta filter
Filter automatically detected images from content data object.
@param array $extractedImages @param string $context An option string representing the context, the content type. @param string $content Rendered content. @param Object $contentObject Data object holding the content data. @param Data\Page $pageData Collected request information. @param Data\Meta $pageMeta Collected meta data about the request.
@return array
@since 1.3.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 207
Group: Frontend\page
forseo_components_support_plugins
Frontend\page filter
Filter the list of built-in components support plugins. This allows 3rd-party to disable
native support and replace by their own.
Remove an item from the list to disable native support. Better provide your own then.
@param array $componentsPlugins List of natively supported component.
@return bool
@since 1.0.0
in /plugins/system/forseo/platform/hooks.php
@line 98
Group: Frontend\pages
forseo_pages_dynamic_canonical
Frontend\pages filter
Filter a dynamically generated canonical link for the current page.
@param bool $dynamicCanonical @param Data\Page $pageData Collected request information.
@return string
@since 2.1.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/page.php
@line 344
forseo_pages_insert_auto_canonical
Frontend\pages filter
Filter whether to insert an automatically computed canonical link in the current page.
@param bool $insertAutoCanonical @param Data\Page $pageData Collected request information. @param Data\Meta $pageMeta Collected meta data about the request.
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 870
Group: Frontend\privacy
forseo_analytics_cookies_allowed
Frontend\privacy filter
Filter whether using cookies from analytics providers is allowed for this request.
@param bool $cookiesAllowed @param Data\Requestinfo $requestInfo
@return bool
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 1098
Group: Gsc
forseo_gsc_http_client_options
Gsc filter
Filter options used by the HTTP client used in communicating with the Google API.
@param array $options An array of options to pass to the HTTP client.
@return array
@since 4.2.2
in /plugins/system/forseo/vendor/weeblr/forseo/model/integrations/google/searchconsoledata.php
@line 93
Group: Import
forseo_sh404sef_import_before_store_alias
Import filter
Filter the result of importing an sh404SEF alias object, before it is stored to 4SEO database.
@param array $alias @param array $source
@return array
@since 2.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/extensions/sh404sef.php
@line 467
forseo_sh404sef_import_before_store_meta
Import filter
Filter the result of importing an sh404SEF meta object, before it is stored to 4SEO database.
@param Data\Meta $meta @param array $source
@return Data\Meta
@since 2.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/extensions/sh404sef.php
@line 346
Group: Meta
forseo_auto_description_cleanup_expressions
Meta filter
Filter regular expressions to apply to content to remove unwanted codes and markers.
@param array $descCleanupExpressions
@return array
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/meta.php
@line 94
forseo_auto_description_recommended_length
Meta filter
Filter the recommended number of characters in automatically computed description.
@param int $metaAutoDescRecommendedLength
@return int
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/meta.php
@line 71
Group: Output
forseo_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/forseo/forseo.php
@line 709
forseo_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/forseo/forseo.php
@line 653
Group: Pages
forseo_page_build_content_id
Pages filter
Filter the content id of a page.
@param array $contentIdBits Array of key/values pairs @param Data\Page $pageData The page object to describe with the content id.
@return string
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/page.php
@line 59
forseo_page_canonical_or_duplicate
Pages filter
Whether passed page should be considered canonical or duplicate (automatically). Presence of a duplicate
(ie with same content_id) has already been checked.
@param int $urlType Data\Page::CANONICAL | Data\Page::DUPLICATE @param Data\Page $pageData The page object.
@return int
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/page.php
@line 511
forseo_page_is_archived
Pages filter
Filter whether the current request is for an archived page.
@param bool $isArchived @param Data\Page $pageData The page object to find whether it's archived.
@return array
@since 1.1.2
in /plugins/system/forseo/vendor/weeblr/forseo/helper/page.php
@line 652
forseo_page_modified_at
Pages filter
Filters a Page modified_at date time. Use MYSQL format (Y-m-d H:i:s), assumes UTC.
@param string $lastMod @param Data\Page $pageData The page object to find the modified_at date for.
@return string
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/page.php
@line 294
forseo_pages_auto_canonical_link
Pages filter
Filter automatically generated canonical link before it's inserted in the page.
@param string $link @param Data\Page $pageData
@return array
@since 4.8.0
in /plugins/system/forseo/vendor/weeblr/forseo/controller/pageprocessor.php
@line 932
Group: Platform
forseo_plugins_to_configure
Platform filter
Filter the list of plugins that should be re-configured, either on crawler requests or always.
$def is an array defining which plugins and what options should be modified:
[
'PlgSystemCache' => [
'key_1' => $value1,
'key_2' => $value2,
'key_3' => $value3
]
]
@param array $defs Definition of reconfiguration, keyed on plugin class name. @param bool $isCrawlerRequest Whether current request is from 4SEO crawler.
@return array
@since 1.5.1
in /plugins/system/forseo/vendor/weeblr/forseo/model/platform.php
@line 163
Group: Request
forseo_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/forseo/vendor/weeblr/forseo/data/requestinfo.php
@line 256
Group: Route
forseo_run_on_after_route_first
Route filter
Decide whether to run the onAfterRoute handler
before other plugins handlers have been run. Only has
any effect on Joomla 4. Joomla 3 does not have the required
priority system.
@param bool $runFirst
@since 4.9.0
in /plugins/system/forseo/forseo.php
@line 174
Group: Routing
forseo_rule_expansion_replacement_direction
Routing filter
Filter replacement direction of wildcard characters if there are less placeholders in expansion target than in expansion source.
@param string $replacementDirection The direction to use when doing wildcard replacement. @param array $ruleSpec The rule definition that triggered the expansion. @param array $matches Result of running the rule urlSpecifiction against the current requested URL.
@return int
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/rules.php
@line 292
Group: Rules
forseo_current_request_category
Rules filter
Filter the list of default, built-in WAF block rules URL specifications.
@param array $wafRulesSpecs An array of URL specifications, such as /{*} or /blog/{*}.
@return array
@since 1.0.0
in /plugins/system/forseo/platform/components/common.php
@line 83
forseo_default_block_rules
Rules filter
Filter the list of default, built-in WAF block rules URL specifications.
@param array $wafRulesSpecs An array of URL specifications, such as /{*} or /blog/{*}.
@return array
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/ruleslegacy.php
@line 177
Group: Sd
forseo_sd_auto_data
Sd filter
Filter the automatically built values of a given type of structured data.
@param array $autoFieldsData @param array $autoFields @param array $spec @param Data\Requestinfo $requestInfo @param Data\Page $pageData
@return array
@since 1.3.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/sd/base.php
@line 507
forseo_sd_breadcrumb
Sd filter
Filter the current page data used to build the structured data breadcrumb.
@since 1.0.0
in /plugins/system/forseo/platform/helpers/breadcrumb.php
@line 42
forseo_sd_can_run_rule
Sd filter
Whether the assigned rule can be run on this page.
By default is null.
If a plugin can support, it sets it to true.
If a plugin says this SD type cannot exist on this page, it sets it to false.
Else leave as is.
In the end, returned value must be true (ie at least one plugin can support and no other
contradict) for the rule to run.
@param bool $canRun @param array $spec @param Data\Requestinfo $requestInfo @param Data\Page $pageData
@return bool|null
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/sd/base.php
@line 547
forseo_sd_sitelinks_search_url
Sd filter
Filter the search URL used in website sitelinks structured data.
@since 1.0.0
in /plugins/system/forseo/platform/helpers/site.php
@line 43
forseo_structured_data
Sd filter
Filter the raw data to be inserted as json-ld.
@param array $data Array of structured data.
@return array
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/injector/sd.php
@line 227
forseo_structured_data_cleanup_patterns
Sd filter
Filter the list of regular expressions to be used when cleaning up a page
of existing microdata after inserting 4SEO structured data.
@param array $patterns List of regular expressions for cleaning microdata in content. @param Data\Page $pageData Data on the current page.
@return array
@since 1.3.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/injector/sd.php
@line 284
Group: Sitemap
forseo_page_should_include_in_sitemap
Sitemap filter
Whether current page should be included (automatically) in a sitemap. Presence of a duplicate
(ie with same content_id) has already been checked.
@param int $inclusionStatus Data\Page::INCLUDED | Data\Page::EXCLUDED @param Data\Page $pageData The page object to find the modified_at date for. @param int $sitemapType @see Data\Sitemap
@return int
@since 1.0.0
in /plugins/system/forseo/vendor/weeblr/forseo/helper/page.php
@line 825
forseo_sitemap_se_ping_list
Sitemap filter
Filter the list of fully qualified sitemaps URLs to be submitted to search engines
when 4SEO creates/updates the site main sitemap.
Can be used to include extra sitemaps such as additional languages ones for instance
when using some 3rd-party multilingual extensions.
You should not urlencode the URL, this will be done automatically when pinging the search engines.
@param array $sitemapUrls Array of fully qualified URLs of sitemaps to ping. Prefilled with 4SEO own.
@return int
@since 1.4.0
in /plugins/system/forseo/vendor/weeblr/forseo/model/sitemaps.php
@line 1544
forseo_sitemap_stylesheet_url
Sitemap filter
Filter the URL of a stylesheet to be applied to a sitemap. Return an empty string to
disabling including a stylesheet with your sitemap.
@param string $stylesheetUrl Fully qualified URL of a sitemap stylesheet. @param string $type index | partial the sitemap type the stylesheet applies to.
@return int
@since 1.5.2
in /plugins/system/forseo/vendor/weeblr/forseo/model/sitemaps.php
@line 936
forseo_sitemap_submit
Sitemap filter
Filter the result of submitting the provided sitemap URL to the speficied search engine.
@param string $searchEngine The search engine to ping. @param string $sitemapUrl The fully qualified URL of the sitemap to ping.
@return bool | \Exception
@since 5.2.1
in /plugins/system/forseo/vendor/weeblr/forseo/model/sitemaps.php
@line 1582