TYPO3 10 языков SOLR и базовые варианты сайтов config.yaml

#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)%'