Locate - Identify users by IP and/or browser language

Extension key

locate

Version

12.0

Language

en

Copyright

2013-2023

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.

Additional Packages

Static Info Tables

If you want to use the geo blocking feature for your pages, you need to to install the static info tables extension as well. It is enough to install just the basic version. Additional country-specific versions are not required by this extension. If you are using a composer setup you can execute following command:

composer req sjbr/static-info-tables
Copied!

Detect Crawler

If you want to exclude bots such as the Google search bot from being assigned specific website versions, you must require the composer package jaybizzle/crawler-detect. This feature is only available in composer setups. If your TYPO3 is not running in composer mode, you have to provide this functions on your own.

composer req jaybizzle/crawler-detect
Copied!

Updating the IP Database

We try to update the supplied IP database every quarter. For this update we provide a new patchlevel release of this extension. 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.

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 corresponding Composer package 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.

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
{
    browserAcceptLanguage = Leuchtfeuer\Locate\FactProvider\BrowserAcceptedLanguage
    countryByIP = Leuchtfeuer\Locate\FactProvider\IP2Country
}
Copied!
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.

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.

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
    # 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.
        300 = Leuchtfeuer\Locate\Judge\Condition
        300 {
            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 Leuchtfeuer\Locate\FactProvider\AbstractFactProvider. 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 Leuchtfeuer\Locate\Verdict\AbstractVerdict.

    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 v12 Support TYPO3 v11 Support TYPO3 v10 Support TYPO3 v9 Support
12.x 🙋️ 🙅️ 🙅️️ 🙅️️
11.x 🙅️️ 🙋️ 🙋️ 🙅️️
10.x 🙅️️ 🙅️️ 🙋️ 🙋️

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 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 Action\Exception was marked as deprecated since it is not used anymore
  • Class FactProvider\Constants was marked as deprecated since it is not used anymore
  • Class FactProvider\Exception 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

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 12.0.4 - 2025/04/29

This release is regular maintenance release.

Changed

  • Update required packages

All Changes

This is a list of all changes in this release:

2025-04-29 [TASK] Update required version of symfony/console (Commit 72b952b by dkranz)
Copied!