Developer manual

Usage of hooks

You can modify the behaviour of some tasks using hooks. There are several HookInterfaces that make your life easier. You can find them in Classes/Hooks/. They are described in this manual.

ApiService hooks

The first step is to add your class to the hook object array in your ext_localconf.php. You can use Your\Extension\Hooks\YourCustomAvalexHook::class for newer TYPO3 versions if you want. Now you can proceed with adding the specific interfaces shown below.

Example:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['avalex'][\JWeiland\Avalex\Service\ApiService::class][] = \Your\Extension\Hooks\YourCustomAvalexHook::class;

Modify the configuration before sending the request

You can use the JWeiland\Avalex\Hooks\ApiService\PreApiRequestHookInterface in your extension to modify the configuration array that contains the api_key and the domain before sending the request to avalex.

Modify the content before caching and rendering it

You can use the JWeiland\Avalex\Hooks\ApiService\PostApiRequestHookInterface in your extension to modify the content API returned. Please make sure to take a look at the public functions of the ApiService which will be passed to the hook as second parameter. The first parameter $content is a reference so you can modify the output completely.

<?php
namespace Your\Extension\Hooks;

use JWeiland\Avalex\Hooks\ApiService\PostApiRequestHookInterface;
use JWeiland\Avalex\Service\ApiService;

class ModifyContentHook implements PostApiRequestHookInterface
{
    public function postApiRequest(&$content, ApiService $apiService)
    {
        if ($apiService->getCurlInfo()['http_code'] === 200) {
            // add class to p tags
            $content = str_replace('<p>', '<p class="privacy">', $content);
        }
    }
}