getSummary'; # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # // register search components \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'access', \WapplerSystems\Meilisearch\Search\AccessComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'relevance', \WapplerSystems\Meilisearch\Search\RelevanceComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'sorting', \WapplerSystems\Meilisearch\Search\SortingComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'debug', \WapplerSystems\Meilisearch\Search\DebugComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'analysis', \WapplerSystems\Meilisearch\Search\AnalysisComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'highlighting', \WapplerSystems\Meilisearch\Search\HighlightingComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'spellchecking', \WapplerSystems\Meilisearch\Search\SpellcheckingComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'faceting', \WapplerSystems\Meilisearch\Search\FacetingComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'statistics', \WapplerSystems\Meilisearch\Search\StatisticsComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'lastSearches', \WapplerSystems\Meilisearch\Search\LastSearchesComponent::class ); \WapplerSystems\Meilisearch\Search\SearchComponentManager::registerSearchComponent( 'elevation', \WapplerSystems\Meilisearch\Search\ElevationComponent::class ); # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # // adding scheduler tasks $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\WapplerSystems\Meilisearch\Task\ReIndexTask::class] = [ 'extension' => 'meilisearch', 'title' => 'LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:reindex_title', 'description' => 'LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:reindex_description', 'additionalFields' => \WapplerSystems\Meilisearch\Task\ReIndexTaskAdditionalFieldProvider::class ]; $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\WapplerSystems\Meilisearch\Task\IndexQueueWorkerTask::class] = [ 'extension' => 'meilisearch', 'title' => 'LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:indexqueueworker_title', 'description' => 'LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:indexqueueworker_description', 'additionalFields' => \WapplerSystems\Meilisearch\Task\IndexQueueWorkerTaskAdditionalFieldProvider::class ]; if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\TYPO3\CMS\Scheduler\Task\TableGarbageCollectionTask::class]['options']['tables']['tx_meilisearch_statistics'])) { $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\TYPO3\CMS\Scheduler\Task\TableGarbageCollectionTask::class]['options']['tables']['tx_meilisearch_statistics'] = [ 'dateField' => 'tstamp', 'expirePeriod' => 180 ]; } # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # // registering the eID scripts // TODO move to suggest form modifier $GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['tx_meilisearch_api'] = 'EXT:meilisearch/Classes/Eid/Api.php'; # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # // add custom meilisearch content objects $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects'][\WapplerSystems\Meilisearch\ContentObject\Multivalue::CONTENT_OBJECT_NAME] = \WapplerSystems\Meilisearch\ContentObject\Multivalue::class; $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects'][\WapplerSystems\Meilisearch\ContentObject\Content::CONTENT_OBJECT_NAME] = \WapplerSystems\Meilisearch\ContentObject\Content::class; $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects'][\WapplerSystems\Meilisearch\ContentObject\Relation::CONTENT_OBJECT_NAME] = \WapplerSystems\Meilisearch\ContentObject\Relation::class; $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects'][\WapplerSystems\Meilisearch\ContentObject\Classification::CONTENT_OBJECT_NAME] = \WapplerSystems\Meilisearch\ContentObject\Classification::class; # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # // Register cache for frequent searches if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch'])) { $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch'] = []; } // Caching framework meilisearch if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch_configuration'])) { $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch_configuration'] = []; } if (!isset($GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch_configuration']['backend'])) { $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch_configuration']['backend'] = \TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend::class; } if (!isset($GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch_configuration']['options'])) { // default life time one day $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch_configuration']['options'] = ['defaultLifetime' => 60 * 60 * 24]; } if (!isset($GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch_configuration']['groups'])) { $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['tx_meilisearch_configuration']['groups'] = ['all']; } # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # /* @var \WapplerSystems\Meilisearch\System\Configuration\ExtensionConfiguration $extensionConfiguration */ $extensionConfiguration = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance( \WapplerSystems\Meilisearch\System\Configuration\ExtensionConfiguration::class ); # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # if (!isset($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['searchResultClassName '])) { $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['searchResultClassName '] = \WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result\SearchResult::class; } if (!isset($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['searchResultSetClassName '])) { $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['searchResultSetClassName '] = \WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet::class; } if (!isset($GLOBALS['TYPO3_CONF_VARS']['LOG']['WapplerSystems']['Meilisearch']['writerConfiguration'])) { $context = \TYPO3\CMS\Core\Utility\GeneralUtility::getApplicationContext(); if ($context->isProduction()) { $logLevel = \TYPO3\CMS\Core\Log\LogLevel::ERROR; } elseif ($context->isDevelopment()) { $logLevel = \TYPO3\CMS\Core\Log\LogLevel::DEBUG; } else { $logLevel = \TYPO3\CMS\Core\Log\LogLevel::INFO; } $GLOBALS['TYPO3_CONF_VARS']['LOG']['WapplerSystems']['Meilisearch']['writerConfiguration'] = [ $logLevel => [ \TYPO3\CMS\Core\Log\Writer\FileWriter::class => [ 'logFileInfix' => 'meilisearch' ] ], ]; } # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # ----- # \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'WapplerSystems.meilisearch', 'pi_results', [ 'Search' => 'results,form,detail' ], [ 'Search' => 'results' ] ); \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'WapplerSystems.meilisearch', 'pi_search', [ 'Search' => 'form' ] ); \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'WapplerSystems.meilisearch', 'pi_frequentlySearched', [ 'Search' => 'frequentlySearched' ], [ 'Search' => 'frequentlySearched' ] ); \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'WapplerSystems.meilisearch', 'pi_suggest', [ 'Suggest' => 'suggest' ], [ 'Suggest' => 'suggest' ] ); // add tsconfig \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('@import \'EXT:meilisearch/Configuration/TSconfig/Page/Mod/Wizards/NewContentElement.tsconfig\''); // register the Fluid namespace 'meilisearch' globally $GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces']['meilisearch'] = ['WapplerSystems\\Meilisearch\\ViewHelpers']; })(); $isComposerMode = defined('TYPO3_COMPOSER_MODE') && TYPO3_COMPOSER_MODE; if (!$isComposerMode) { // we load the autoloader for our libraries $dir = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('meilisearch'); require $dir . '/Resources/Private/Php/ComposerLibraries/vendor/autoload.php'; }