#solr #typo3 #typo3-10.x
Вопрос:
Как написать в TYPO3 конфигурацию сайтов.yaml для расширения SOLR:
2 языка, Приемка и производство.
Я получаю с веб-хостинга:
solr_host_read: solrprod02.xx.io
solr_core_read:
- x_acc_nl
- x_acc_en
- x_prod_nl
- x_prod_en
Начиная с EXT:solr 11, кажется, что условия typoscript больше не разрешены для соединений (устаревший режим).
Итак, как настроить для каждого базового варианта и каждого языка ядро?
Пример в документации содержит только подсказку для языков, а не для базовых переменных https://docs.typo3.org/p/apache-solr-for-typo3/solr/11.1/en-us/Backend/ConnectionManager.html
Ответ №1:
Очень простой способ — использовать typo3conf/AdditionalConfiguration.php
файл и проверить контекст там:
<?php
$context = (string)TYPO3CMSCoreCoreEnvironment::getContext();
if ($context === 'Production/Staging') {
putenv('SOLR_ENABLED_READ=true');
putenv('SOLR_HOST=solr');
putenv('SOLR_PATH=/solr/');
putenv('SOLR_PORT=8983');
putenv('SOLR_SCHEME=http');
putenv('SOLR_CORE_NAME_DE=core_de');
putenv('SOLR_USER=');
putenv('SOLR_PWD=');
}
и в конфигурации вашего сайта
solr_enabled_read: true
solr_host_read: '%env(SOLR_HOST)%'
solr_password_read: '%env(SOLR_PWD)%'
solr_path_read: '%env(SOLR_PATH)%'
solr_port_read: '%env(SOLR_PORT)%'
solr_scheme_read: '%env(SOLR_SCHEME)%'
solr_use_write_connection: false
solr_username_read: '%env(SOLR_USER)%'
languages:
-
title: Deutsch
enabled: true
languageId: '0'
base: /
typo3Language: de
locale: de
iso-639-1: de
navigationTitle: Deutsch
hreflang: de-de
direction: ''
flag: at
solr_core_read: '%env(SOLR_CORE_NAME_DE)%'