indexed_search_autocomplete

Die Extension indexed_search_autocomplete, gibt es nicht offiziell für die TYPO3 Version 11. Ich habe eine Version gefunden bei dem Entwickler ingeniumdesign https://github.com/ingeniumdesign/indexed_search_autocomplete/tree/typo3-11 die jedoch nicht funktioniert hat und seit einem Jahr auch keine Aktivität mehr zu verzeichnen ist. Ich habe einige Zeit verbracht Anpassungen vorzunehmen, bis sie nun mit der Version 11 funktioniert.

Das use TYPO3\CMS\Extbase\Annotation\Inject; funktioniert bei V11 nicht mehr. Es ist im Controller/SearchController.php. Ich habe es also ersetzt mit:

use ID\IndexedSearchAutocomplete\Service\SearchService;
use TYPO3\CMS\IndexedSearch\Domain\Repository\IndexSearchRepository;

und einen Constructor hinzugefügt:

 /**
  * Search functions
  *
  * @var SearchService
  */
protected $searchService = null;

public function __construct(IndexSearchRepository $searchRepository, SearchService $searchService)
{
    $this->searchRepository = $searchRepository;
    $this->searchService = $searchService;
}

Ebenso in Classes/Service/SearchService.php in searchAWord() und searchASite():

$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
        $configurationManager = $objectManager->get('TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManagerInterface');

ersetzt mit:

$configurationManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManagerInterface');

Dann noch die Datei Configuration/Services.yaml angelegt mit folgenden Inhalt:

services:
  _defaults:
    autowire: true
    autoconfigure: true
    public: false

  ID\IndexedSearchAutocomplete\:
    resource: '../Classes/*'

Dann noch in der ext_localconf.php:

// Register Application
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'ID.indexed_search_autocomplete',
    'Search',
    [
        'Search' => 'search',
    ],
    [
        'Search' => 'search',
    ]
);

ersetzt mit:

// Register Application
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'ID.indexed_search_autocomplete',
    'Search',
    [
        \ID\IndexedSearchAutocomplete\Controller\SearchController::class => 'search',
    ],
    [
        \ID\IndexedSearchAutocomplete\Controller\SearchController::class => 'search',
    ]
);

So läuft die Extension dann unter TYPO3 V11.

Erstellt: 03/2023| Geändert: 03/2023