Locate - Identify users by IP and/or browser language 

Extension key

locate

Version

main

Language

en

Copyright

2013-2026

Authors

Devs @ Leuchtfeuer Digital Marketing

Email

dev@Leuchtfeuer.com

License

This extension documentation is published under the CC BY-NC-SA 4.0 (Creative Commons) license.

The users country, preferred language and other facts will be detected. Depending on configurable rules the user can be redirected to other languages or pages. Locate also provides geo blocking for configurable pages in configurable countries.

To figure out which extension version is supported by your TYPO3 instance, take a quick look at our version matrix.

TYPO3

The content of this document is related to TYPO3 CMS, a GNU/GPL CMS/Framework available from typo3.org.

Community Documentation

This documentation is community documentation for the TYPO3 extension {extension.name}

It is maintained as part of this third party extension.

If you find an error or something is missing, please: Report a Problem

Extension Manual

This documentation is for the TYPO3 extension locate.

For Contributors

You are welcome to help improve this guide. Just click on "Edit on GitHub" on the top right to submit your change request.

Sitemap

For Administrators 

Installation 

There are several ways to require and install this extension. We recommend to get this extension via composer.

Via Composer 

If your TYPO3 instance is running in composer mode, you can simply require the extension by running:

composer req leuchtfeuer/locate
Copied!

Via Extension Manager 

Open the extension manager module of your TYPO3 instance and select "Get Extensions" in the select menu above the upload button. There you can search for locate and simply install the extension. Please make sure you are using the latest version of the extension by updating the extension list before installing the locate extension.

Via ZIP File 

You need to download the locate extension from the TYPO3 Extension Repository and upload the zip file to the extension manager of your TYPO3 instance and activate the extension afterwards.

Updating the IP Database 

We try to update the supplied IP database at least every major update. After this new version has been installed, you can update your local database via the Extension Manager module in your TYPO3 backend as shown below.

Update the provided IP database

You can update your local IP tables via the Extension Manager module.

You also can update the IP database automatically via console command or scheduler task.

Get Download-Token from ip2location.com 

To update the IP database automatically, you have to generate a Download-Token from https://lite.ip2location.com/. Frist, sign up at https://lite.ip2location.com/sign-up. After creating an account, you can login and access the page https://lite.ip2location.com/database-download. There you can find the Download-Token.

Download-Token from ip2location.com

Update database via console command 

You can update the IP database via console command.

vendor/bin/typo3 locate:updateIpDatabase TOKEN [static_ip2country_v4|static_ip2country_v6]
Copied!

Replace "TOKEN" with your own Download-Token and choose a database table you want to update. You can choose between "static_ip2country_v4" for IPv4 or "static_ip2country_v6" for IPv6.

Update database via scheduler task 

You also can add a scheduler task to update the IP database periodically. Add a scheduler task in the TYPO3 backend:

Add Scheduler Task

Set "token" with your own Download-Token and choose a database "table" you want to update. You can choose between "static_ip2country_v4" for IPv4 or "static_ip2country_v6" for IPv6.

Enabling this Extension 

If you want to activate the language assignment, you have to add the following TypoScript line after you have installed locate and included the TypoScript. This function is disabled by default.

config.tx_locate = 1
Copied!

If you do not want to activate the language assignment on every page, you can simply put the activation into a condition.

[page["uid"] == 1]
    config.tx_locate = 1
[end]
Copied!

Logging 

All critical errors will be logged into a dedicated logfile which is located in the TYPO3 log directory (e.g. var/logs) and contains the phrase locate in its name. If you want to increase the loglevel, you must overwrite the log configuration, for example like this:

$GLOBALS['TYPO3_CONF_VARS']['LOG']['Leuchtfeuer']['Locate'] = [
    'writerConfiguration' => [
        \TYPO3\CMS\Core\Log\LogLevel::DEBUG => [
            \TYPO3\CMS\Core\Log\Writer\FileWriter::class => [
                'logFileInfix' => 'locate',
            ],
        ],
    ],
];
Copied!

For further configuration options and more examples take a look at the official TYPO3 documentation.

Functions 

Assign Website Version to User 

You can redirect a user to a specific page or page translation based on certain criteria (browser language, IP address, ...). There is also the possibility to save this decision, so that the criteria are not evaluated on every page request.

Restrict Access to Pages 

You can block pages (and page translations) for access from certain countries. Your server will respond with an 451 HTTP status code when the page is not available in your country.

Assign Website Version 

How This Extension Works 

Assigning a website version to the user works like a trial: the website user is accused of being guilty of one of the existing charges. A judge then decides which verdict should be pronounced and executes it.

Facts 

A fact is a property that applies to the website user. This extension comes up with two different facts build in by default. The extension can be extended with more facts.

Browser Accept Language 

This fact reads the languages supported by the user's browser. Technically, it processes the HTTP_ACCEPT_LANGUAGE header that is sent along with the user's request. This fact is available for judges under the name browserAcceptLanguage.

Country by IP Address 

This fact reads the user's IP address and compares it with an internal database to determine from which country the request originates. The IP is not cached or used for any other purpose. This fact is available for judges under the name countryByIP.

Judges 

Judges check whether a configured fact applies to the current web page request and make a judgment if it does. It also prioritizes the judgments if multiple Facts apply to the query. The prioritization is based on the occurrence of the first hit. A few examples:

  1. The browser of the user accepts multiple languages

    In this case, the priority of the judges is based on the priority of the browser language. So if a browser supports the languages German, French and English (accept-language: de-DE,fr,en;q=0.9,de;q=0.8,en-US;q=0.7) and there is the following TypoScript configuration, then the redirectToPageDE verdict is enforced, although the redirection to the English language version is higher prioritized (lower key).

    config.tx_locate.judges {
        100 = Leuchtfeuer\Locate\Judge\Condition
        100 {
            verdict = redirectToPageEN
            fact = browserAcceptLanguage
            prosecution = en
        }
    
        200 = Leuchtfeuer\Locate\Judge\Condition
        200 {
            verdict = redirectToPageAT
            fact = browserAcceptLanguage
            prosecution = de-at
        }
    
        300 = Leuchtfeuer\Locate\Judge\Condition
        300 {
            verdict = redirectToPageDE
            fact = browserAcceptLanguage
            prosecution = de
        }
    }
    Copied!
  2. The browser of the user accepts multiple languages (with region)

    Like the first example, the browser supports multiple languages again, but we changed the ordering in the settings of the web browser so that the header looks like this: de-DE,fr,en-US;q=0.9,de,en;q=0.8. We also changed the TypoScript so that American-English browsers should be directed to a separate page. In this case, the order of delivered verdicts would be: redirectToPageUS, redirectToPageDE, redirectToPageEN. Therefore, verdict redirectToPageUS is enforced.

    config.tx_locate.judges {
        100 = Leuchtfeuer\Locate\Judge\Condition
        100 {
            verdict = redirectToPageUS
            fact = browserAcceptLanguage
            prosecution = en-us
        }
    
        150 = Leuchtfeuer\Locate\Judge\Condition
        150 {
            verdict = redirectToPageEN
            fact = browserAcceptLanguage
            prosecution = en
        }
    
        200 = Leuchtfeuer\Locate\Judge\Condition
        200 {
            verdict = redirectToPageAT
            fact = browserAcceptLanguage
            prosecution = de-at
        }
    
        300 = Leuchtfeuer\Locate\Judge\Condition
        300 {
            verdict = redirectToPageDE
            fact = browserAcceptLanguage
            prosecution = de
        }
    }
    Copied!
  3. A user from mainland China accesses the page

    In this case, a user from mainland China is supposed to access the site and should be redirected to a special page. All other users who operate their browser in Chinese, but do not access the page from mainland China, should not be redirected. The accept-language header looks like this: zh-chs,de,en-US;q=0.9,zh-sg,en;q=0.8,zh;q=0.7.

    config.tx_locate.judges {
        100 = Leuchtfeuer\Locate\Judge\Condition
        100 {
            verdict = redirectToPageCNMainland
            fact = countryByIP
            prosecution = cn
        }
    
        200 = Leuchtfeuer\Locate\Judge\Condition
        200 {
            verdict = redirectToPageDE
            fact = browserAcceptLanguage
            prosecution = de
        }
    
        300 = Leuchtfeuer\Locate\Judge\Condition
        300 {
            verdict = redirectToPageCN
            fact = browserAcceptLanguage
            prosecution = zh-chs
        }
    }
    Copied!

Verdicts 

A verdict can be a redirect to a specific page / language version of the website, or simply a mechanism that stores data of the user in a session. Each verdict has additional, specific settings.

Configuration 

The basic configuration of locate consists of only five different options, which are shown below.

Root Configuration 

Dry Run 

Property
config.tx_locate.dryRun
Data type
integer
Default
0
Description
This will prevent the verdict to be called.

Exclude Bots 

Property
config.tx_locate.excludeBots
Data type
integer
Default
1
Description
Whether bots should be excluded from the behavior of the extension. This option only takes effect if the admin-additionalpackages-detectcrawler has been installed.

Simulate IP Address 

Property
config.tx_locate.simulateIp
Data type
string
Default
empty
Description
Simulate an IP address for countryByIP fact provider. This is meant to be for test purposes only. It works with IPv4 and IPv6 addresses.

Override Query Parameter 

Property
config.tx_locate.overrideQueryParameter
Data type
string
Default
setLang
Description

URL Parameter which has to be true when overrideSessionValue is allowed within action and sessionHandling is enabled. If you change the overrideQueryParameter from its default value, you need to add the query parameter to excludedParameters to make it work. For example in your ext_localconf.php of your site extension:

$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'yourQueryParameter';
Copied!

Verdicts 

Property
config.tx_locate.verdicts
Data type
array
Default
unset
Description
This collection contains the configuration of the verdicts. Each verdict can provide its own configuration. This extension provides one judgment by default, the redirect verdict.

Facts 

Property
config.tx_locate.facts
Data type
array
Default
unset
Description

This array contains the facts. The key is the name of the fact used in the judges section and the value is the php class that should take care about the trial. Example:

{
    browserAcceptLanguage = Leuchtfeuer\Locate\FactProvider\BrowserAcceptedLanguage
    countryByIP = Leuchtfeuer\Locate\FactProvider\IP2Country
}
Copied!

Judges 

Property
config.tx_locate.judges
Data type
array
Default
unset
Description
This array contains the judges. Each judge may have specific configuration depending on the type of judge. This extension provides two different types of judges by default: The conditional judge and the fixed judge.

Conditional Judge 

The conditional judge makes his judgement based on the configured fact. Only if the prosecution is true, the verdict is pronounced. Otherwise, the next judge tries to pass verdict.

Configuration 

Verdict 

Property
config.tx_locate.judges.[0].verdict
Data type
string
Default
unset
Description
The name of the verdict to be enforced.

Fact 

Property
config.tx_locate.judges.[0].fact
Data type
string
Default
unset
Description
The name of the fact to be checked.

Prosecution 

Property
config.tx_locate.judges.[0].prosecution
Data type
string
Default
unset
Description
The Prosecution. Only if this value is present in the fact, a verdict can be pronounced.

Example 

config.tx_locate.judges {
    100 = Leuchtfeuer\Locate\Judge\Condition
    100 {
        verdict = redirectToPageDE
        fact = browserAcceptLanguage
        prosecution = de
    }
}
Copied!

Fixed Judge 

The fixed judge always speaks a firmly defined judgment. It should have the lowest priority of all judges since it should only be called if no other judge comes to a verdict.

Example 

config.tx_locate.judges {

    # other judges should be called prior to the fixed judge

    999999 = Leuchtfeuer\Locate\Judge\Fixed
    999999.verdict = redirectToPageEN
}
Copied!

Redirect Verdict 

The redirect verdict redirects the user to a specific page in a specific language. So that the check does not have to be repeated for each page access, the result can be cached in the user's session.

Configuration 

Language ID 

Property
config.tx_locate.verdicts.[name].sys_language
Data type
integer
Default
unset
Description
The ID of the language the user should be redirected to.

Page ID 

Property
config.tx_locate.verdicts.[name].page
Data type
integer
Default
unset
Description
The ID of the page the user should be redirected to. If unset, the user will stay on the current page or will be redirected to an other language version of the current page.

URL 

Property
config.tx_locate.verdicts.[name].url
Data type
string
Default
unset
Description
This option only applies if no information has been entered for both sys-language-functions-assignlanguage-verdicts-redirect-configuration-languageid-and-refpage <functions-assignLanguage-verdicts-redirect-configuration-pageId>`. The user is then redirected to this configured URL.

Session Handling 

Property
config.tx_locate.verdicts.[name].sessionHandling
Data type
integer
Default
0
Description
If this option is enabled, the verdict will be saved in a session and will not be evaluated again.

Override Session Value 

Property
config.tx_locate.verdicts.[name].overrideSessionValue
Data type
integer
Default
0
Description
If this option is enabled, it is possible to overwrite the verdict stored in the session. For this, a URL query parameter is mandatory.

Override Query Parameter 

Property
config.tx_locate.verdicts.[name].overrideQueryParameter
Data type
string
Default
setLang
Description
If session overwriting is enabled and this parameter is present in the URL, the session data will be overwritten with the current request. Thus, it is possible for a user who was originally directed to the English language version to be directed to the German language version of the page e.g. by clicking in the language menu. The language menu must then generate all links with the query parameter attached (/de/?setLang). The value of the parameter does not matter.

Allow Fallback 

Property
config.tx_locate.verdicts.[name].allowFallback
Data type
integer
Default
0
Description
If the option is enabled, redirection to a non-localized page is allowed. In this case, the page is accessed under the corresponding language URL, even if it does not exist. The displayed content corresponds to the defined fallback page of your site configuration.

Example 

config.tx_locate {
    sessionHandling = 1
    overrideSessionValue = 1

    verdicts {
        # Redirect the user to the default language version of the current page
        redirectToPageEN = Leuchtfeuer\Locate\Verdict\Redirect
        redirectToPageEN {
            sys_language = 0
        }

        # Redirect the user to the default language version of page 29
        redirectToPageUS = Leuchtfeuer\Locate\Verdict\Redirect
        redirectToPageUS {
            sys_language = 0
            page = 29
        }

        # Redirect the user to the default language version of page 29 and disable session handling
        redirectToPageUSNC = Leuchtfeuer\Locate\Verdict\Redirect
        redirectToPageUSNC {
            sys_language = 0
            page = 29
            sessionHandling = 0
        }

        # Redirect the user to a specific URL
        redirectToPageXX = Leuchtfeuer\Locate\Verdict\Redirect
        redirectToPageXX {
            url = https://www.Leuchtfeuer.com
        }
    }
}
Copied!

Example 

This is a complete example that redirects the user according to the following criteria in the following order:

  1. Users from mainland China should be redirected to a specific URL.
  2. Users using American English as browser language should be redirected to the US language version of the current page.
  3. Users using German as browser language should be redirected to the German language version of the current page.
  4. Users using French as browser language should be redirected to the French language version of another page.
  5. All other users should be redirected to the English language version of the current page.
config.tx_locate = 1
config.tx_locate {
    excludeBots = 1
    sessionHandling = 1
    overrideSessionValue = 1
    # URL Parameter which has to be true when overrideSessionValue is allowed within action and sessionHandling is enabled
    overrideQueryParameter = setLang
    # Simulate your IP address for countryByIP fact provider (for test purposes only), e.g. 109.10.163.98 is a french IP address
    simulateIp =

    verdicts {
        redirectToMainlandChina = Leuchtfeuer\Locate\Verdict\Redirect
        redirectToMainlandChina.url = https://www.example.cn

        redirectToUS = Leuchtfeuer\Locate\Verdict\Redirect
        redirectToUS.sys_language = 12

        redirectToDE = Leuchtfeuer\Locate\Verdict\Redirect
        redirectToDE.sys_language = 29

        redirectToPageFR = Leuchtfeuer\Locate\Verdict\Redirect
        redirectToPageFR {
            sys_language = 19
            page = 89
        }

        redirectToEN = Leuchtfeuer\Locate\Verdict\Redirect
        redirectToEN.sys_language = 0
    }

    judges {
        # Users from mainland China should be redirected to a specific URL.
        100 = Leuchtfeuer\Locate\Judge\Condition
        100 {
            verdict = redirectToMainlandChina
            fact = countryByIP
            prosecution = cn
        }

        # Users with the American English browser language should be redirected to a specific language version of the current page.
        200 = Leuchtfeuer\Locate\Judge\Condition
        200 {
            verdict = redirectToUS
            fact = browserAcceptLanguage
            prosecution = en-us
        }

        # Users with the browser language German shall be redirected to the German language version of the current page.
        300 = Leuchtfeuer\Locate\Judge\Condition
        300 {
            verdict = redirectToDE
            fact = browserAcceptLanguage
            prosecution = de
        }

        # Users with the French browser language should be redirected to the French language version of another page.
        400 = Leuchtfeuer\Locate\Judge\Condition
        400 {
            verdict = redirectToPageFR
            fact = browserAcceptLanguage
            prosecution = fr
        }

        # All other users should be redirected to the English language version of the current page.
        999999 = Leuchtfeuer\Locate\Judge\Fixed
        999999.verdict = redirectToEN
    }
}
Copied!

Geo Blocking 

You can block pages (and page translations) for access from certain countries.

Regions 

So that you do not have to select individual countries every time you want to block a group of countries, individual countries may be combined into regions. You can create this groups as a record in the list module of your TYPO3 backend.

Create a new collection of countries

Each region (collection of countries) can contain multiple countries and has a title.

Assign Regions 

After you have created the regions you need, you can assign these regions to a page (or a page translation). This web page will then be available in the defined regions only. The access to the page from all other countries will be restricted and a 451 HTTP status code will be returned, which you can process e.g. via a site error handler.

Block page for specified regions

Assign regions to pages.

Outlier 

You can also assign the value "Apply when no IP matches" to the selection. This case occurs when the IP address cannot be determined or is not stored in the IP database.

For Developers 

Add a Fact 

This example will show you how to add a custom fact that looks up some environment variables.

  1. Add your own FactProvider

    Your fact provider has to extend the abstract class LeuchtfeuerLocateFactProviderAbstractFactProvider. The value of the PROVIDER_NAME constant has to match the TypoScript key you will use for your fact.

    class Environment extends AbstractFactProvider
    {
        const PROVIDER_NAME = 'environment';
    
        public function getBasename(): string
        {
            return self::PROVIDER_NAME;
        }
    
        public function process(): self
        {
            foreach (GeneralUtility::getIndpEnv('_ARRAY') as $key => $value) {
                $this->facts[$this->getFactPropertyName($key)] = $value;
            }
    
            return $this;
        }
    
        public function isGuilty($prosecution): bool
        {
            $subject = array_keys($prosecution);
            $subject = array_shift($subject);
            $value = $prosecution[$subject];
            LocateUtility::mainstreamValue($subject);
    
            return ($this->getSubject()[$subject] ?? false) == $value;
        }
    }
    Copied!
  2. Register fact via TypoScript:

    Next, you need to register this PHP class as a fact in TypoScript.

    config.tx_locate.facts {
        environment = Leuchtfeuer\Locate\FactProvider\Environment
    }
    Copied!
  3. Setup a Judge

    Now you are all set and use your fact in a judge. Here is an example that will redirect the user to the english page if the HTTP host matches www.Leuchtfeuer.com:

    config.tx_locate.judges {
        10 = Leuchtfeuer\Locate\Judge\Condition
        100 {
            verdict = redirectToPageEN
            fact = environment
            prosecution {
                HTTP_HOST = www.Leuchtfeuer.com
            }
        }
    }
    Copied!

Add a Verdict 

This example will show you how to add a custom verdict that adds some data to the user session.

  1. Add your own verdict class

    Your verdict has to extend the abstract class LeuchtfeuerLocateVerdictAbstractVerdict.

    class StoreSessionData extends AbstractVerdict
    {
        public function execute(): ?ResponseInterface
        {
            $sessionStore = new \Leuchtfeuer\Locate\Store\SessionStore('dummy');
            $sessionStore->set('foo', $this->configuration['foo']);
    
            return null;
        }
    }
    Copied!
  2. Register the verdict in TypoScript

    Now you can register this verdict in your TypoScript setup and add a configuration key foo that contains the data that should be stored in the session.

    config.tx_locate.verdicts {
        storeSessionData = Vendor\Extension\Verdict\StoreSessionData
        storeSessionData {
            foo = bar
        }
    }
    Copied!

About 

The users country and preferred language and other facts will be detected. Depending on configurable rules the user can be redirected to other languages or pages. It is also possible to deny access to configurable pages for configurable countries.

Compatibility 

We are currently supporting following TYPO3 versions:

Extension Version TYPO3 v13 Support TYPO3 v12 Support
13.x yes no
12.x no yes

Outdated Versions 

For all other versions no more free bug fixes and new features will be provided by the authors.

IP Database 

This site or product includes IP2Location LITE data available from https://lite.ip2location.com.

Contributing 

You can contribute by making a pull request to the master branch of the extension repository on GitHub. Or just send us some beers 🍻...

Documentation 

You are welcome to help improve this guide. Just click on "Edit on GitHub" on the top right to submit your change request.

Changelog 

This chapter provides an overview of changes. Take a deeper look on a version listed below, to see which bugs have been fixed, which new features have been introduced, and what you should not use anymore.

List of Versions 

Version 14.0.0 - 2026/03/12 

This release is a major release.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Added 

  • Add support for TYPO3 v14
  • Add site sets to disable locate for certain scenarios

Changed 

Deprecated 

Removed 

  • Drop support for TYPO3 v13

All Changes 

This is a list of all changes in this release:

2026-03-11 [TASK] Introduce site sets for disabling locate automatically in some scenarios [TER-403] [TER-404] (Commit 5394ca7 by Niklas Grieger)
2026-03-11 [TASK] Breaking #108054: Add AsAllowedCallable attribute to CountryHelper::selectItemsTCA [TER-403] [TER-404] (Commit b6f99c3 by Niklas Grieger)
2026-03-10 [TASK] Modernize tests and make the compatible with PHP 8.2 [TER-403] [TER-404] (Commit 9998a4b by Niklas Grieger)
2026-03-10 [TASK] Update dev-dependencies [TER-403] [TER-404] (Commit 0f1ef44 by Niklas Grieger)
2026-03-10 [TASK] Fix DI in functional tests [TER-403] [TER-404] (Commit d0da85d by Niklas Grieger)
2026-03-10 [TASK] Make redirect verdict instantiation in court work [TER-403] [TER-404] (Commit 195f97e by Niklas Grieger)
2026-03-10 [TASK] Breaking #108310: Update CI workflow to test against TYPO3 ^14.0 [TER-403] [TER-404] (Commit 3dd6f1d by Niklas Grieger)
2026-03-10 [TASK] Breaking #108310: Update TYPO3 version constraints to ^14.0 [TER-403] [TER-404] (Commit f4fb765 by Niklas Grieger)
2026-03-10 [TASK] Breaking #108113: Replace $GLOBALS['TYPO3_REQUEST'] with proper request injection [TER-403] [TER-404] (Commit ade4f3a by Niklas Grieger)
2026-03-10 [TASK] Breaking #106972: Remove searchFields from TCA ctrl [TER-403] [TER-404] (Commit 1dbf36e by Niklas Grieger)
2026-03-10 [TASK] Run rector for TYPO3 14 [TER-403] [TER-404] (Commit 1c7d8c5 by Niklas Grieger)
Copied!

Contributors 

Following people have contributed to this release:

  • Niklas Grieger

Version 13.0.3 - 2026/03/03 

This release is a maintenance release.

Updates 

Add missing changelog files. Update internal CI configuration.

All Changes 

This is a list of all changes in this release:

2026-03-03 Merge pull request #72 from Leuchtfeuer/feature/TER-397 (Commit 4f153ec by bmheins)
2026-03-03 [TASK] Upgrade actions/cache to v4 in CI workflow [TER-397] [TER-398] (Commit 7519399 by Oliver Heins)
2026-03-03 [TASK] Upgrade actions/checkout to v4 in CI workflow [TER-397] [TER-398] (Commit 44e5492 by Oliver Heins)
2026-03-03 [TASK] Drop PHP 8.1 and 8.2 support from CI matrix [TER-397] [TER-398] (Commit 7a6306b by Oliver Heins)
2026-03-03 [TASK] Release Version 13.0.2 [TER-397] [TER-398] (Commit 84e1862 by Oliver Heins)
Copied!

Version 13.0.2 - 2026/03/02 

This release is a bugfix release.

Updates 

Security hardening fix preventing session fixation or injection via a crafted cookie value, combined with a correctness fix for the session status check.

All Changes 

This is a list of all changes in this release:

2026-03-02 Merge pull request #71 from Leuchtfeuer/bugfix/BD-2827 (Commit a46f114 by AkhmedSagitov)
2026-02-27 [BUGFIX] extending condition and adding regex logic into initSession method [BD-2827] [BD-2882] (Commit d187f82 by sagitov)
Copied!

Version 13.0.1 - 2025/10/06 

This release is a maintenance release.

All Changes 

This is a list of all changes in this release:

2025-06-06 Merge pull request #69 from Leuchtfeuer/feature/YODA-2297 (Commit 796d399 by mkauschmann)
2025-06-04 [TASK] Added @extensionScannerIgnoreLine for false positives. [YODA-2297] (Commit cf45d62 by kauschmann)
Copied!

Version 13.0.0 - 2025/01/13 

This release is a major release. We added support for TYPO3 v13 and PHP >=8.3 and dropped support for TYPO3 v12.

Added 

  • Support for TYPO3 v13 and PHP >=8.3
  • Add console command to update IP database automatically
  • Use TYPO3 Country API for geo-blocking functionality
  • Add jaybizzle/crawler-detect as requirement to exclude bots and crawler from language detection
  • Add config 'allowFallback' allowing redirect to a site that will cause a language fallback (thanks to Andreas Sommer)

Updates 

  • Initial IP database updated

Removed 

  • Drop support for TYPO3 v12 and PHP <8.3
  • Drop usage of EXT:static-info-tables

All Changes 

This is a list of all changes in this release:

2025-01-09 [TASK] Move parameter assignment out of initialize method, use request object in Court class (Commit 2585192 by dkranz)
2025-01-09 [TASK] Update version matrix (Commit 69e55ec by dkranz)
2025-01-06 [TASK] Move argument assignment out of initialize method (Commit 5d84514 by dkranz)
2025-01-06 [TASK] Add own overlay icon for geo-blocked pages (Commit d49168c by dkranz)
2025-01-06 [TASK] Adapt command for updating IP database automatically to create transient directory if not existing, update static IP database SQL file, update documentation (Commit b201b29 by dkranz)
2025-01-03 [TASK] Change command for updating IP database automatically by downloading new IP tables from ip2location.com (Commit 3e0e446 by dkranz)
2025-01-03 [BREAKING] Remove static-info-tables usage for geo-blocking and use TYPO3 country API instead (Commit 8365c02 by dkranz)
2025-01-03 [TASK] Introduce jaybizzle/crawler-detect as required package to detect crawler by default (Commit ab0e326 by dkranz)
2025-01-03 [TASK] Update test configs and ci workflow, add composer scripts to run tests (Commit c3b0da8 by dkranz)
2025-01-03 [TASK] Move excludedParameters config to ext_localconf.php, update documentation and TypoScript, format ext_tables.sql (Commit fe8fa18 by dkranz)
2025-01-03 [TASK] Change the way to fetch TypoScript due to caching problems, fix some errors (Commit 42548e0 by dkranz)
2025-01-03 [TASK] Code style fixes (Commit ae20e8a by dkranz)
2025-01-03 [TASK] Changes by fractor (Commit be03411 by dkranz)
2025-01-03 [TASK] Changes by rector (Commit 68e89b3 by dkranz)
2025-01-02 [TASK] Code style fixes (Commit d3373d8 by dkranz)
2025-01-02 [TASK] Replace deprecated hook with event listener, code style fixes (Commit 20683ae by dkranz)
2025-01-02 [TASK] Fix PHPStan errors on level 9, updates for PHP 8.3 and TYPO3 13 (Commit 0e51e4b by dkranz)
2024-12-29 Change parameter name redirectEvenInFallbackMode to allowFallback and update documentation (Commit 89c5aa2 by Andreas Sommer)
2024-12-27 [TASK] Introduce phpstan, rector and fractor, adapt php-cs-fixer configs, update composer.json and ext_emconf.php for TYPO3 13 (Commit e3383db by dkranz)
2024-12-09 Add config redirectEvenInFallbackMode allowing redirect to a site that will cause a language fallback (Commit 370db8d by Andreas Sommer)
2024-11-20 Make LocateUtility publicly available (for constructor injection) [BDU-63] (Commit bc04e3d by bmheins)
Copied!

Version 12.0.0 - 2023/08/18 

This release is a major release. We added support for TYPO3 v12 and PHP 8.1 & 8.2 and dropped support for TYPO3 v11.

Added 

  • Support for TYPO3 v12 and PHP 8.1 & 8.2

All Changes 

This is a list of all changes in this release:

2023-08-16 [TASK] Update documentation (Commit 207a5f1 by dkranz)
2023-08-16 [TASK] Update method to get typoscript settings (Commit 075ddec by dkranz)
2023-08-16 [TASK] Update method to get typoscript settings (Commit 3864b1d by dkranz)
2023-08-16 [TASK] Update README.md (Commit 1b9a15e by dkranz)
2023-08-16 [TASK] Update tests and fix errors and warnings (Commit f5c2ea6 by dkranz)
2023-08-10 [TASK] Updates for TYPO3 12 and PHP 8.1 (Commit a1657de by dkranz)
Copied!

Version 11.0.2 - 2023/08/18 

This release is regular maintenance release. Contains some fixes and updated tests.

All Changes 

This is a list of all changes in this release:

2023-01-26 [BUGFIX] Fix PHP warnings on undefined array keys (Commit 776a781 by David Kranz)
2023-01-26 [TASK] Add composer requirement for newer doctrine/dbal versions (Commit b2d7d78 by David Kranz)
2023-03-05 [BUGFIX] Avoid exception cause of nautice (Commit 62cc3fb by Georg Ringer)
2023-05-15 [TASK] Allow empty decision in Court (Commit b5f2f05 by Stefan Neufeind)
2023-05-15 [TASK] Allow judge without additional configuration (Commit 6e9a83a by Stefan Neufeind)
2023-08-08 [DOC] Add missing information for simulateIp configuration (Commit e9c4bbe by David Kranz)
2023-08-11 [TASK] Update GitHub CI workflow for correct php-cs-fixer version, code style fixes (Commit d6ae2fb by David Kranz)
2023-08-11 [TASK] Add separate function test config for DDEV, changes for GitHub CI workflow (Commit e9a5474 by David Kranz)
2023-08-11 [TASK] Changes for GitHub CI workflow (Commit a34109a by David Kranz)
2023-08-11 [TASK] Fix typo3/testing-framework version for GitHub CI workflow (Commit bf6d711 by David Kranz)
2023-08-16 [BUGFIX] Fix unit tests (Commit c23a0fb by David Kranz)
Copied!

Contributors 

Following people have contributed to this release:

Thank you very much for your support.

Version 11.0.1 - 2022/04/26 

This release is regular maintenance release.

All Changes 

This is a list of all changes in this release:

2022-04-26 [RELEASE] Release version 11.0.1 (Commit 776a781 by Max Rösch)
Copied!

Contributors 

Following people have contributed to this release:

  • Max Rösch

Thank you very much for your support.

Version 11.0.0 - 2022/04/26 

This release is a major release. We added support for TYPO3 v11 and PHP 8.0 & 8.1 and dropped support for TYPO3 v9.

Added 

  • Support for TYPO3 v11 and PHP 8.0 & 8.1
  • Added support for testing IP addresses (config.tx_locate.simulateIp)

All Changes 

2022-04-26 [TASK] Update ci pipeline parameters (Commit 767d81c by Max Rösch) 2022-04-22 [TASK] Add documentation for simulating IP address (Commit 0bbf121 by kranz) 2022-04-12 [TASK] Adapt git workflow config (Commit 546394d by kranz) 2022-04-10 [TASK] Add PHP version to require constraint (Commit 0a6c48a by kranz) 2022-04-10 [TASK] Add option to simulate IP address for test purposes, bugfix for multiple IP judges (Commit 30f830a by kranz) 2022-04-10 [TASK] Change "cookie" namings to "session" (Commit 6465cd8 by kranz) 2022-03-30 [TASK] Deprecated functions replaced, minor code style changes, README changes (Commit 008e24e by kranz) 2022-03-28 [TASK] Initial commit for TYPO3 11 development branch (Commit e9faf29 by kranz) 2021-11-03 [BUGFIX] Select on empty UID returns 0 (Commit 44a0344 by Max Rösch) 2021-11-03 [TASK] Add PHPStorm folder to gitignore (Commit 3d3e7d0 by Max Rösch) 2021-10-13 [TASK] Add frontend functional tests (Commit 06475d2 by Helmut Hummel) 2021-10-12 [TASK] Use UnitTestCase::getAccessibleMock for setting internal state (Commit 008e459 by Helmut Hummel) 2021-10-12 [TASK] Remove now unused and previously only internally used method (Commit 6909c5d by Helmut Hummel) 2021-10-12 [TASK] Add unit tests to CI workflow and streamline CI and testing config (Commit 2fd2de7 by Helmut Hummel) 2021-10-12 [BUGFIX] Fix BrowserAcceptedLanguage and add tests (Commit d46c8ca by Helmut Hummel) 2021-10-12 [BUGFIX] Fix IP2Country facts provider and add test (Commit 03fb63b by Helmut Hummel) 2021-10-12 [TASK] Add dev dependencies (Commit d0d3971 by Helmut Hummel) 2021-10-12 [TASK] Add PHP version constraint (Commit 869baf7 by Helmut Hummel) 2021-10-12 [TASK] Reformat composer.json (Commit 549a396 by Helmut Hummel) 2021-10-12 [TASK] Add .gitignore (again) (Commit 44fa953 by Helmut Hummel) 2021-09-01 [TASK] Remove obsolete showRecordFieldList from TCA (Commit 9f7c5a1 by Max Rösch) 2021-09-01 [DOC] Fix typo in documentation (Commit 5cff7a5 by Max Rösch) 2021-08-30 [TASK] Add TER release script (Commit d4eadb5 by Max Rösch) 2021-07-27 [BUGFIX] Check whether page has expected identifier (Commit 792f45a by Florian Wessels) 2021-06-28 [TASK] Soften URI check (Commit 0b9e1df by Florian Wessels) 2021-06-25 [TASK] Remove obsolete condition (Commit 3ef19dc by Florian Wessels) 2021-06-25 [TASK] Introduce static fact provider (Commit c81da30 by Florian Wessels) 2021-06-24 [TASK] Force redirect when target is of type URL (Commit 437084b by Florian Wessels) 2021-06-24 [TASK] Force template parsing (Commit c114ab2 by Florian Wessels) 2021-06-24 [DOC] Add information about logging (Commit 018a982 by Florian Wessels)

Contributors 

Following people have contributed to this release:

  • David Kranz
  • Florian Wessels
  • Helmut Hummel
  • Max Rösch

Thank you very much for your support.

Version 10.0.2 - 2020/12/01 

This release is regular maintenance release. It contains bug fixes and updates the IP database.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Added 

  • Dedicated command for updating IP data

All Changes 

This is a list of all changes in this release:

2020-12-01 [RELEASE] Release of version 10.0.2 (Commit 3a1bf72 by Florian Wessels)
2020-12-01 [TASK] Update php CS (Commit 1595344 by Florian Wessels)
2020-12-01 [TASK] Run court directly (Commit 2d8bead by Florian Wessels)
2020-12-01 [TASK] Update IP database (Commit 4f52b7e by Florian Wessels)
2020-12-01 [TASK] Introduce command for updating IP tables (Commit 73708ba by Florian Wessels)
2020-12-01 [TASK] Raise composer dependencies (Commit a98c1bb by Florian Wessels)
2020-12-01 [BUGFIX] Force TypoScript to be loaded (Commit b62338b by Florian Wessels)
2020-11-27 [TASK] Add link to ip2location.com (Commit 8eeda9d by Florian Wessels)
2020-09-18 [TASK] Use unique class names within svg files (Commit b08d211 by Florian Wessels)
2020-09-18 [BUGFIX] Prevent execution on every request (Commit 4bda346 by Florian Wessels)
Copied!

Version 10.0.1 - 2020/06/02 

This release provides an updated IP database.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Changed 

  • Composer package was changed from bitmotion/locate to leuchtfeuer/locate
  • IP database updated

All Changes 

This is a list of all changes in this release:

2020-06-02 [RELEASE] Release of version 10.0.1 (Commit d628cbe by Florian Wessels)
2020-06-02 [TASK] Update IP database (Commit 3d99cdb by Florian Wessels)
2020-06-02 [TASK] Update funding file (Commit 14c62ee by Florian Wessels)
2020-06-02 [TASK] Rename composer package (Commit a21a960 by Florian Wessels)
2020-06-02 [TASK] Raise version to 10.0.1-dev (Commit 5bcc514 by Florian Wessels)
Copied!

Version 10.0.0 - 2020/04/22 

This release is a new major release. It contains breaking changes since it removes several classes and methods that were marked as deprecated in prio versions. Also it introduces support for TYPO3 v10 as well as support vor IPv6 addresses.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Added 

  • GitHub files
  • Cookie lifetime is now configurable in config.tx_locate.cookieLifetime
  • Class LocateUtility that contains the used methods from former class IP
  • Support for TYPO3 v10 LTS
  • Support for IPv6
  • Support for PHP 7.3 and 7.4

Changed 

  • README was translated to english language
  • Static tables for IPv4 was renamed from static_ip2country to static_ip2country_v4
  • The IP database was updated

Deprecated 

  • Class AndCondition is now deprecated and will be removed with version 11. You should use class Condition instead.

Removed 

  • Deprecations introduced with version 9.1.0

All Changes 

This is a list of all changes in this release:

2020-04-22 [RELEASE] Release of version 10.0.0 (Commit d1102ad by Florian Wessels)
2020-04-22 [TASK] Adapt example (Commit 7500905 by Florian Wessels)
2020-04-22 [TASK] Translate README (Commit 7f3e7e5 by Florian Wessels)
2020-04-22 [TASK] Add GitHub files (Commit 593eee6 by Florian Wessels)
2020-04-22 [TASK] Move repository from bitmotion to Leuchtfeuer (Commit 89b3958 by Florian Wessels)
2020-04-22 [TASK] Add license file (Commit 198f8c4 by Florian Wessels)
2020-04-22 [TASK] Apply cs (Commit 8fd1542 by Florian Wessels)
2019-12-09 [BREAKING] Use dedicated utility for retrieving IP address (Commit 3459927 by Florian Wessels)
2019-12-09 [DOC] Add example for handling IPs (Commit 7cd46a1 by Florian Wessels)
2019-12-09 [FOLLOW-UP] Fix spelling mistakes (Commit 74ea65e by Florian Wessels)
2019-12-09 [FEATURE] Introduce TYPO3 v10.2 compatibility (Commit bf8e9f0 by Florian Wessels)
2019-12-09 [TASK] Remove obsolete language file (Commit e65ffc7 by Florian Wessels)
2019-12-09 [TASK] Add introducing php docs (Commit 98ac24c by Florian Wessels)
2019-12-09 [TASK] Update dependencies (Commit 3515754 by Florian Wessels)
2019-12-09 [BUGFIX] Fix spelling mistakes (Commit df5e38c by Florian Wessels)
2019-12-09 [TASK] Apply CS (Commit 494b36e by Florian Wessels)
2019-12-09 [FEATURE] Support IPv6 (Commit d712d21 by Florian Wessels)
2019-12-09 [TASK] Continue when class does not exists (Commit 4c666b0 by Florian Wessels)
2019-12-09 [TASK] Call user function in ext_localconf.php file (Commit 25e85a8 by Florian Wessels)
2019-12-09 [TASK] Remove unused CSV file (Commit adda2d8 by Florian Wessels)
2019-12-09 [TASK] Remove obsolete TCA (Commit c993dcc by Florian Wessels)
2019-12-09 [TASK] Exchange extension icon (Commit 3ab4d7c by Florian Wessels)
2019-11-01 Fix wrong example typoscript condition "countrycode" (#18) (Commit 8a52555 by Daniel Koether)
2019-09-11 [FEATURE] Make cookie lifetime configurable (Commit e26e5d6 by Florian Wessels)
2019-09-11 [BUGFIX] Use proper class (Commit a29b85f by Florian Wessels)
2019-09-11 [TASK] Set version to 10.0.0-dev (Commit 504b4cd by Florian Wessels)
2019-09-11 [DOC] Update example (Commit 7363cee by Florian Wessels)
2019-09-11 [BREAKING] Refactor conditional handling (Commit 2d0077a by Florian Wessels)
2019-09-11 [FEATURE] Introduce priority for decisions (Commit dce6fba by Florian Wessels)
2019-09-11 [BREAKING] Get rid of deprecated classes, methods and properties (Commit 50b8323 by Florian Wessels)

Copied!

Contributors 

Following people have contributed to this release:

  • Daniel Koether
  • Florian Wessels

Thank you very much for your support. The next beer is on us! 🍻

Version 9.1.0 - 2019/09/11 

This release contains bug fixes as well as improvements in documentation. It introduces also a bunch of deprecations which will be removed with version 10 of this extension.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Deprecations 

  • Class ActionInterface was marked as deprecated since it is not used anymore
  • Class ActionException was marked as deprecated since it is not used anymore
  • Class FactProviderConstants was marked as deprecated since it is not used anymore
  • Class FactProviderException was marked as deprecated since it is not used anymore
  • Class FactProviderInterface was marked as deprecated since it is not used anymore
  • Class JudgeInterface was marked as deprecated since it is not used anymore
  • Class IP was marked as deprecated since it is not used anymore

All Changes 

This is a list of all changes in this release:

2019-09-11 [RELEASE] Release of version 9.1.0 (Commit c8f7c4b by Florian Wessels)
2019-09-11 [TASK] Remove server information from environment fact (Commit 293f550 by Florian Wessels)
2019-09-11 [DOC] Update documentation (Commit b215577 by Florian Wessels)
2019-09-11 [TASK] Mark getFacts() as deprecated as it is no longer in use (Commit a3a75a9 by Florian Wessels)
2019-09-11 [TASK] Use sprintf() (Commit 68e7419 by Florian Wessels)
2019-09-11 [TASK] Mark specification as deprecated as it is no longer in use (Commit 4c17a74 by Florian Wessels)
2019-09-11 [BUGFIX] Handle action name as string (Commit 1869dc8 by Florian Wessels)
2019-09-11 [CLEAN-UP] Remove obsolete comments, properties and methods (Commit 5ea4412 by Florian Wessels)
2019-09-11 [TASK] Use lowerCamelCase (Commit 9393ad6 by Florian Wessels)
2019-09-11 [CLEAN-UP] Remove obsolete comment (Commit 67487fe by Florian Wessels)
2019-09-11 [TASK] Mark constant provider as deprecated and remove it from doc (Commit b5b2f11 by Florian Wessels)
2019-09-11 [TASK] Do not use deprecated IP class (Commit b14ed26 by Florian Wessels)
2019-09-11 [TASK] Mark IP class as deprecated (Commit 37d37e7 by Florian Wessels)
2019-09-11 [TASK] Do not throw deprecated exceptions (Commit 71bacf9 by Florian Wessels)
2019-09-11 [TASK] Mark exceptions as deprecated (Commit 24b3ded by Florian Wessels)
2019-09-11 [BUGFIX] Use proper class (Commit 7e2022f by Florian Wessels)
2019-09-11 [TASK] Do not use deprecated interfaces (Commit eb4bcff by Florian Wessels)
2019-09-11 [TASK] Mark interfaces as deprecated (Commit c6a3733 by Florian Wessels)
2019-09-11 [CLEAN-UP] Remove unused constant (Commit d86855c by Florian Wessels)
2019-09-11 [TASK] Use proper icon file (Commit c41e4b9 by Florian Wessels)
2019-09-11 [BUGFIX] Respect dryRan parameter (Commit 0411356 by Florian Wessels)
2019-09-11 [CLEAN-UP] Remove obsolete PHP docs (Commit 78b73f1 by Florian Wessels)
2019-07-12 [BUGFIX] Use dynamic override param (Commit a967edd by Florian Wessels)
2019-07-12 [BUGFIX] Return redirect language when no cookie value is set (Commit 6b38893 by Florian Wessels)
Copied!

Version 9.0.0 - 2019/05/13 

This release is a new major release that contains breaking changes. The TypoScript configuration was moved from plugin.tx_locate_pi1 to config.tx_locate. Also the support for TYPO3 v8 was dropped.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Added 

  • PHP CS fixer
  • Member constants of class Redirect: COOKIE_NAME, OVERRIDE_PARAMETER, HTTP_RESPONSE_CODE
  • Full support for PSR Logger
  • PHP strict mode
  • PSR Middleware for handling redirects

Deprecations 

  • TypoScript was moved from plugin.tx_locate_pi1 to config.tx_locate.

Removed 

  • Support for TYPO3 v8

All Changes 

This is a list of all changes in this release:

2019-05-13 [RELEASE] Release of version 9.0.0 (Commit f736b57 by Florian Wessels)
2019-05-13 [TASK] Enable TypoScript (Commit 2c2adad by Florian Wessels)
2019-05-06 [BREAKING] Use PSR-15 middleware and get rid of obsolete plugin and user funcs (Commit cfcc8a6 by Florian Wessels)
2019-05-06 [TASK] Update documentation (Commit af4cf24 by Florian Wessels)
2019-05-06 [TASK] Add logging and add return types (Commit aa9368d by Florian Wessels)
2019-05-06 [TASK] Refactor code and remove TYPO3 8 compatibility (Commit c75bb65 by Florian Wessels)
2019-05-06 [TASK] Update configuration example (Commit 3404261 by Florian Wessels)
2019-05-06 [TASK] Add check whether class exists (Commit a8f1dbc by Florian Wessels)
2019-05-06 [TASK] Remove reviewer (Commit b120a2c by Florian Wessels)
2019-05-06 [TASK] Add return types (Commit 12ded25 by Florian Wessels)
2019-05-06 [TASK] Use LoggerAwareTrait (Commit c0168cf by Florian Wessels)
2019-05-06 [BUGFIX] Use boolean (Commit de62232 by Florian Wessels)
2019-05-06 [TASK] Update dependencies (Commit 7d487ce by Florian Wessels)
2019-05-06 [TASK] Apply CS (Commit 4aa1ba4 by Florian Wessels)
Copied!

Version 8.0.4 - 2019/09/11 

This release is a regular maintenance release and contains bug fixes only.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

All Changes 

This is a list of all changes in this release:

2019-09-11 [RELEASE] Release of version 8.0.4 (Commit 41ff4e8 by Florian Wessels)
2019-09-11 Merge pull request #17 from bitmotionAE/TYPO3_8 (Commit c997d03 by Florian Wessels)
2019-09-10 [BUGFIX] Fix handling of rules for language uid 0 when target page is current page (Commit 5a68c24 by Andreas Engel)

Copied!

Contributors 

Following people have contributed to this release:

  • Andreas Engel
  • Florian Wessels

Thank you very much for your support. The next beer is on us! 🍻

Version 8.0.3 - 2019/07/12 

This release is a regular maintenance release and contains bug fixes only.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

All Changes 

This is a list of all changes in this release:

2019-07-12 [RELEASE] Release of version 8.0.3 (Commit ffbee55 by Florian Wessels)
2019-07-12 [BUGFIX] Return redirect language when no cookie value is set (Commit 3037720 by Florian Wessels)
2019-07-12 [TASK] Unset parameter only if set (Commit ae97160 by Florian Wessels)
2019-07-12 [TASK] Add logger notice (Commit b09c446 by Florian Wessels)
Copied!

Version 8.0.2 - 2019/05/13 

This release contains bug fixes only.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

All Changes 

This is a list of all changes in this release:

2019-05-13 [RELEASE] Release of Version 8.0.2 (Commit 1e64498 by Florian Wessels)
2018-12-20 [BUGFIX] Remove deleted information from TCA (Commit ca26023 by Florian Wessels)
Copied!

Version 8.0.1 - 2018/12/02 

This release contains bug fixes only.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

All Changes 

This is a list of all changes in this release:

2018-12-02 [RELEASE] Release of version 8.0.1 (Commit f26ee65 by Florian Wessels)
2018-12-02 [ BUGFIX ] Remove sql key (Commit 54df5f8 by Florian Wessels)
Copied!

Version 8.0.0 - 2018/11/23 

This release is the first release that supports TYPO3 v9.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Added 

  • Support for TYPO3 v9

Removed 

  • Support for TYPO3 v7
  • Support for PHP < 7.2

All Changes 

This is a list of all changes in this release:

2018-11-23 [RELEASE] Release of version 8.0.0 (Commit cdefc87 by Florian Wessels)
2018-11-22 [TASK] Mark plugin as USER_INT (Commit 972beb9 by Florian Wessels)
2018-11-22 [TASK] Remove obsolete key from sql file (Commit 55bc475 by Florian Wessels)
2018-11-22 [TASK] Remove obsolete end of sql file (Commit b9b1702 by Florian Wessels)
2018-11-22 [TASK] Adapt redirect action for TYPO3 9 LTS (Commit f7cf015 by Florian Wessels)
2018-11-22 [TASK] Remove obsolete icon (Commit 39eee39 by Florian Wessels)
2018-11-22 [TASK] Add tt_content TCA overrides (Commit c63652c by Florian Wessels)
2018-11-22 [TASK] Make sql table static (Commit 9aac2b1 by Florian Wessels)
2018-11-22 [TASK] Rename TypoScript setup file (Commit 619901b by Florian Wessels)
2018-11-22 [TASK] Shorten expression and use utf8 by default (Commit 5c2486b by Florian Wessels)
2018-11-22 [TASK] Turn off logging by default (Commit ea259cc by Florian Wessels)
2018-11-22 [TASK] Use Context for getting language uid (Commit d72c417 by Florian Wessels)
2018-11-22 [TASK] Log critical instead of error (Commit d886674 by Florian Wessels)
2018-11-22 [TASK] Add autoload information to ext_emconf.php file (Commit 8ec7e59 by Florian Wessels)
2018-11-22 [TASK] Move extension icon (Commit 8a52ff7 by Florian Wessels)
2018-11-22 [TASK] Adapt dependencies and version number (Commit 8a410ff by Florian Wessels)
2018-07-20 Merge pull request #16 from majernik/hotfix/empty-http-get-vars (Commit 0071775 by Florian Wessels)
2018-05-17 [BUGFIX] Replace empty global HTTP_GET_VARS with GeneralUtility::_GET (Commit 500c5a0 by majernik)
2018-05-04 [TASK] Use XLF file for translations (Commit a3e7733 by Florian Wessels)
2018-05-04 [TASK] Drop PHP 5.x support (Commit c1d2ffc by Florian Wessels)
2018-05-04 [TASK] Use lowerCamelCase (Commit 3e023ce by Florian Wessels)
2018-05-04 [BUGFIX] Fix TypoScript (Commit 213bb18 by Florian Wessels)
2018-05-04 [TASK] Get rid of obsolete TYPO3_DB stuff (Commit a57d7f3 by Florian Wessels)
2018-05-04 [WIP] Drop PHP 5.x support (Commit 2fab734 by Florian Wessels)
2018-05-04 [TASK] Get rid of Zend Logger and use TYPO3 Logger instead (Commit 7da1787 by Florian Wessels)
2018-05-04 [TASK] Add description to composer.json and update information (Commit aaa2dfb by Florian Wessels)
2018-05-04 [TASK] Use proper decleration for category in ext_emconf.php (Commit db6a60f by Florian Wessels)
2018-05-04 [TASK] Remove obsolete comment from typoscript file (Commit f10d3ba by Florian Wessels)
2018-05-04 [TASK] Unify class descriptions (Commit 48420cd by Florian Wessels)
2018-05-04 [TASK] Add .htaccess file (Commit 81f487e by Florian Wessels)
Copied!

Version 7.6.6 - 2018/04/13 

This release contains mostly bug fixes and improvements regarding the code quality.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

All Changes 

This is a list of all changes in this release:

2018-04-13 [RELEASE] Release of version 7.6.6 (Commit 46e1ba1 by Florian Wessels)
2018-04-13 [TASK] Update TCA (Commit 33ed9c5 by Florian Wessels)
2018-04-13 [TASK] Add Todo for further refactoring (Commit 30df351 by Florian Wessels)
2018-04-13 [TASK] Add missing php doc (Commit a55736d by Florian Wessels)
2018-04-13 [BUGFIX] Set proper cookie value if we are in cookie mode (Commit 2fe5b7d by Florian Wessels)
2018-04-13 [TASK] Rewrite condition (Commit fc9f8ff by Florian Wessels)
2018-04-13 [DOC] Add inline documentation (Commit 5ecfa30 by Florian Wessels)
2018-04-13 Merge pull request #4 from bitmotionAE/master (Commit 559b747 by Florian Wessels)
2018-04-12 [BUGFIX] Remove current pid from urls parameters when redirecting to specific page (Commit e89c15d by Andreas Engel)

Copied!

Contributors 

Following people have contributed to this release:

  • Andreas Engel
  • Florian Wessels

Thank you very much for your support. The next beer is on us! 🍻

Version 7.6.5 - 2018/04/06 

This release contains bug fixes only.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

All Changes 

This is a list of all changes in this release:

2018-04-06 [RELEASE] Release of version 7.6.5 (Commit 41b2a8f by Florian Wessels)
2018-04-06 [BUGFIX] Use array_merge instead of array_combine (Commit b852c9b by Florian Wessels)
2018-04-06 [TASK] Add requirements to composer.json (Commit f01545b by Florian Wessels)
Copied!

Version 7.6.4 - 2018/02/08 

This release contains improvements regarding the documentation.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Added 

  • Brief documentation
  • Dedicated extension icon

All Changes 

This is a list of all changes in this release:

2018-02-08 [RELEASE] Release of version 7.6.4 (Commit d399c23 by Florian Wessels)
2018-02-08 [TASK] Replace GPL-2.0+ by GPL-2.0-or-later in composer.json (Commit 9ccc93c by Florian Wessels)
2018-02-08 [BUGFIX] Combine arrays only if exists (Commit ccae123 by Florian Wessels)
2018-02-08 [CLEAN-UP] Remove unnecessary use statement (Commit d56978b by Florian Wessels)
2017-12-28 [TASK] Exchange ext_icon (Commit 7d185a1 by Florian Wessels)
2017-09-26 [TASK] Set version to 7.6.4-dev (Commit 6cda97c by Florian Wessels)
2017-09-26 Merge pull request #1 from pniederlag/hotfix/ease-of-use (Commit 964dce9 by Florian Wessels)
2017-09-21 [TASK] improve documentation for installation/usage (Commit 347dc4b by Peter Niederlag)
2017-09-21 [TASK] no RediretcToPage  Action (Commit 177c388 by Peter Niederlag)
2017-09-21 [BUGFIX] SetCookie Action is gone, implemented by cookieHandling=1 (Commit f435770 by Peter Niederlag)
2017-09-21 [TASK] add proper userFunc to typoscript examples (Commit 9808973 by Peter Niederlag)
2017-09-21 [TASK] fix doc bug (Commit 9742be9 by Peter Niederlag)

Copied!

Contributors 

Following people have contributed to this release:

  • Peter Niederlag
  • Florian Wessels

Thank you very much for your support. The next beer is on us! 🍻

Version 7.6.3 - 2017/09/20 

This release removes the dependency to EXT:static_info_tables which will be readded with version 10.1.0.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Removed 

  • Dependency to EXT:static_info_tables

All Changes 

This is a list of all changes in this release:

2017-09-20 [RELEASE] Release of version 7.6.3 (Commit 4125066 by Florian Wessels)
2017-09-20 Initial commit (Commit badd587 by Florian Wessels)
Copied!

Version 7.6.2 - 2017/05/31 

This release contains bug fixes and improvements regarding the cookie handling only.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Changed 

  • The type prefix was removed from variables.
  • Cookie handling was improved.

All Changes 

This is a list of all changes in this release:

2017-05-31 [TASK] Refactor cookie use (Commit 54b3598 by Florian Wessels)
Copied!

Version 7.6.1 - 2017/05/23 

This release contains bug fixes only.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

All Changes 

This is a list of all changes in this release:

2017-05-23 [RELEASE] Release of version 7.6.1 (Commit 6ccfbf0 by Florian Wessels)
2017-05-23 [TASK] Update composer.json (Commit 1d7fca0 by Florian Wessels)
2017-05-23 [TASK] Rename method (Commit 195551e by Florian Wessels)
Copied!

Version 7.6.0 - 2017/05/23 

This release is the first release for TYPO3 v7.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

Added 

  • Cookie mode for persisting language selection

All Changes 

This is a list of all changes in this release:

2017-05-23 [TASK] Add composer.json (Commit 618ca49 by Florian Wessels)
2017-05-23 [TASK] Remove module (Commit 8a9779c by Florian Wessels)
2017-05-23 [TASK] Use locate exception (Commit d7105da by Florian Wessels)
2017-05-23 [TASK] Remove TicTacToe action (Commit 1dcf7f9 by Florian Wessels)
2017-05-23 Merge branch 'BMIMPROVE-16' (Commit ec8f500 by Florian Wessels)
2017-05-23 [TASK] Add support for TYPO3 8 LTS (Commit e26c780 by Florian Wessels)
2017-04-24 [BUGFIX] Adding Path to setCookie due to error with realurl (Commit fc22d97 by Gerald Jelitto)
2017-04-19 getIndpEnv now using GeneralUtility (Commit c55e9f4 by Gerald Jelitto)
2017-04-19 Using namespace for :: (Commit 9f791c9 by Gerald Jelitto)
2017-02-08 Remove autoload.php (Commit 30286f8 by Florian Wessels)
2017-02-01 Fix array syntax (Commit 275eaf2 by Florian Wessels)
2017-02-01 Do not exclude page id and l param in url (Commit 22c3339 by Florian Wessels)
2017-01-31 Add existing GET parameters to the redirect url. [FIXES #20170130238115] (Commit f123684 by Oliver Heins)
2017-01-26 BMIMPROVE-16 - If no L-Parameter is set (default language) set cookie too (Commit 231908c by Daniel Koether)
2017-01-25 Fixed corrupt ext_emconf (Commit d98dbce by Daniel Koether)
2017-01-25 Fixed corrupt ext_emconf (Commit c223f65 by Daniel Koether)
2017-01-25 Implement feature from old 4.x version --> Cookie Handling (Commit 3ed911d by Florian Wessels)
2016-10-11 [TASK] Add compatibility for TYPO3 7 (Commit 1bcc446 by Florian Wessels)

Copied!

Contributors 

Following people have contributed to this release:

  • Oliver Heins
  • Gerald Jelitto
  • Daniel Koether
  • Florian Wessels

Thank you very much for your support. The next beer is on us! 🍻

Version 1.1.2 - 2017/01/25 

This is the initial public relase of this extension.

Download 

Download this version from the TYPO3 extension repository or from GitHub.

All Changes 

This is a list of all changes in this release:

2017-01-25 Release Version 1.1.2 (Commit 7b0df01 by Florian Wessels)
2017-01-25 Use isset for condition (Commit 32adff8 by Florian Wessels)
2017-01-25 Finalize (Commit 5a30fc6 by Florian Wessels)
2017-01-25 BMIMPORVE-16 - TYPO3 4.5 Compatibility (Commit 773831f by Daniel Koether)
2017-01-25 Add possibility to force new language (Commit 99bdd88 by Florian Wessels)
2017-01-23 BMIMPROVE-16 - Added else case for redirect process" (Commit 2f37419 by Daniel Koether)
2017-01-20 Set version to 1.1.1 (Commit 793f655 by Daniel Koether)
2017-01-19 BMIMPROVE-16 - Added cookie and Language parameter handling by browser language" (Commit 2889db2 by Daniel Koether)
2015-11-17 Merge branch 'master' of ssh://git.bitmotion.de/projects/Extensions/locate (Commit e8dcdce by Oliver Heins)
2015-11-17 remove debugging statements (Commit 4d6e0b1 by Oliver Heins)
2015-06-03 Added some info in README. (Commit 9eac316 by Olle Haerstedt)
2014-11-19 changes for avt relaunch (Commit 34241ea by Oliver Heins)
2014-07-17 Outsourced the Ip2Country and Ip2Long function (Commit b5bbdcf by Florian Wessels)
2013-07-03 Add static sql data and disable csv import (Commit bdadd0c by Rene Fritz)
2013-07-03 Add _SERVER stuff to facts (Commit 8a61792 by Rene Fritz)
2013-07-01 Remove var_dump (Commit aba9556 by Rene Fritz)
2013-07-01 Fix PHPDoc (Commit 39b3c83 by Rene Fritz)
2013-07-01 Fix constructor problem with php 5.3.2 (Commit 65e6ff1 by Rene Fritz)
2013-07-01 Fix namespace (Commit 77008ec by Rene Fritz)
2013-07-01 add php version 5.3 dependency (Commit eade4bf by Rene Fritz)
2013-06-28 New Version (Commit eb7dd32 by Andreas Schütte)
2013-06-28 Fix namespaces (Commit e9a201a by Andreas Schütte)
2013-06-28 Use t3lib_utility_Debug::viewArray (Commit a551968 by Andreas Schütte)
2013-06-28 Use t3lib_div::getIndpEnv('REMOTE_ADDR') (Commit 8bcf511 by Andreas Schütte)
2013-06-26 Add Tic Tac Toe action (Commit b1c511e by Rene Fritz)
2013-06-26 First version but already working (Commit d047555 by Rene Fritz)
2013-04-01 Add gitignore file (Commit b0ef24a by Helmut Hummel)

Copied!

Contributors 

Following people have contributed to this release:

  • Rene Fritz
  • Olle Haerstedt
  • Oliver Heins
  • Helmut Hummel
  • Daniel Koether
  • Andreas Schütte
  • Florian Wessels

Thank you very much for your support. The next beer is on us! 🍻

Sitemap